calamares/src/modules/tracking/TrackingPage.cpp

106 lines
3.8 KiB
C++
Raw Normal View History

2017-08-29 14:00:37 +02:00
/* === This file is part of Calamares - <http://github.com/calamares> ===
*
* Copyright 2017, Adriaan de Groot <groot@kde.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Calamares is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
*/
#include "TrackingPage.h"
#include "ui_page_trackingstep.h"
#include "Branding.h"
2017-08-29 14:00:37 +02:00
#include "JobQueue.h"
#include "GlobalStorage.h"
#include "utils/Logger.h"
#include "utils/CalamaresUtilsGui.h"
#include "utils/Retranslator.h"
#include "ViewManager.h"
#include <QApplication>
#include <QBoxLayout>
#include <QDesktopServices>
#include <QFocusEvent>
#include <QLabel>
#include <QComboBox>
#include <QMessageBox>
TrackingPage::TrackingPage(QWidget *parent)
: QWidget( parent )
, ui( new Ui::TrackingPage )
{
using StringEntry = Calamares::Branding::StringEntry;
2017-08-29 14:00:37 +02:00
ui->setupUi( this );
CALAMARES_RETRANSLATE(
ui->installExplanation->setText( tr( "Installation tracking helps %1 count how many people use it. If you enable install-tracking, at the end of the installation, information about your hardware will be sent <b>one time only</b> to our servers. To see what will be sent, click on the help-icon." ).arg( *StringEntry::ShortProductName ) );
ui->machineExplanation->setText( tr( "Machine tracking helps %1 count how many people use it on an ongoing basis. If you enable machine-tracking, the system will send limited information about your hardware and installed software <b>periodically</b> to our servers. For information about the kind of information being sent, click on the help icon." ).arg( *StringEntry::ShortProductName ) );
ui->userExplanation->setText( tr( "User tracking helps %1 understand how people use the system and the applications. If you enable user-tracking, the system will send information about your use of the installed software <b>regularly</b> to our servers. For information about the kind of information being sent and the policies that apply, click on the help icon." ).arg( *StringEntry::ShortProductName ) );
)
2017-08-29 14:00:37 +02:00
}
void TrackingPage::setTrackingOption(TrackingType t, bool setting, bool user)
{
QGroupBox* group = nullptr;
QCheckBox* check = nullptr;
switch ( t )
{
case TrackingType::InstallTracking:
group = ui->installTrackingBox;
check = ui->installCheckBox;
break;
case TrackingType::MachineTracking:
group = ui->machineTrackingBox;
check = ui->machineCheckBox;
break;
case TrackingType::UserTracking:
group = ui->userTrackingBox;
check = ui->userCheckBox;
break;
}
if ( (group != nullptr) && (check != nullptr))
{
if ( setting )
group->show();
else
group->hide();
check->setChecked( user );
}
else
cDebug() << " .. unknown option" << int(t);
}
bool TrackingPage::getTrackingOption(TrackingType t)
{
QCheckBox* check = nullptr;
switch ( t )
{
case TrackingType::InstallTracking:
check = ui->installCheckBox;
break;
case TrackingType::MachineTracking:
check = ui->machineCheckBox;
break;
case TrackingType::UserTracking:
check = ui->userCheckBox;
break;
}
return (check != nullptr) && check->isChecked();
}