[tracking] Enable policy websites

Each kind of tracking has an associated webpage / URL describing
the policy for that tracking. The Calamares User Guide has some
generic information. When the user clicks on the Help (?) button
in a tracking-option block, go to that URL.
main
Adriaan de Groot 7 years ago
parent 7a7e2b16cb
commit a0e8f76348

@ -44,6 +44,7 @@ TrackingPage::TrackingPage(QWidget *parent)
ui->setupUi( this );
CALAMARES_RETRANSLATE(
ui->retranslateUi( this );
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 ) );
@ -81,7 +82,7 @@ void TrackingPage::setTrackingOption(TrackingType t, bool setting, bool user)
check->setChecked( user );
}
else
cDebug() << " .. unknown option" << int(t);
cDebug() << "WARNING: unknown tracking option" << int(t);
}
bool TrackingPage::getTrackingOption(TrackingType t)
@ -103,3 +104,31 @@ bool TrackingPage::getTrackingOption(TrackingType t)
return (check != nullptr) && check->isChecked();
}
void TrackingPage::setTrackingPolicy(TrackingType t, QString url)
{
QToolButton *button = nullptr;
switch( t )
{
case TrackingType::InstallTracking:
button = ui->installPolicyButton;
break;
case TrackingType::MachineTracking:
button = ui->machinePolicyButton;
break;
case TrackingType::UserTracking:
button = ui->userPolicyButton;
break;
}
if ( button != nullptr )
if ( url.isEmpty() )
button->hide();
else
{
connect( button, &QToolButton::clicked, [url]{ QDesktopServices::openUrl( url ); } );
cDebug() << "Tracking policy" << int(t) << "set to" << url;
}
else
cDebug() << "WARNING: unknown tracking option" << int(t);
}

@ -46,6 +46,8 @@ public:
*/
bool getTrackingOption( TrackingType t );
void setTrackingPolicy( TrackingType t, QString url );
private:
Ui::TrackingPage* ui;
};

@ -24,6 +24,7 @@
#include "TrackingViewStep.h"
#include "TrackingPage.h"
#include <QDesktopServices>
#include <QVariantMap>
CALAMARES_PLUGIN_FACTORY_DEFINITION( TrackingViewStepFactory, registerPlugin<TrackingViewStep>(); )
@ -116,7 +117,7 @@ TrackingViewStep::jobs() const
}
void TrackingViewStep::setTrackingOption(const QVariantMap& configurationMap, const QString& key, TrackingType t)
QVariantMap TrackingViewStep::setTrackingOption(const QVariantMap& configurationMap, const QString& key, TrackingType t)
{
cDebug() << "Tracking configuration" << key;
@ -138,6 +139,9 @@ void TrackingViewStep::setTrackingOption(const QVariantMap& configurationMap, co
trackingConfiguration.userEnabled = userEnabled;
m_widget->setTrackingOption(t, settingEnabled, userEnabled);
m_widget->setTrackingPolicy(t, CalamaresUtils::getString( config, "policy" ) );
return config;
}

@ -59,7 +59,7 @@ public:
void setConfigurationMap( const QVariantMap& configurationMap ) override;
private:
void setTrackingOption( const QVariantMap& configurationMap, const QString& key, TrackingType t );
QVariantMap setTrackingOption( const QVariantMap& configurationMap, const QString& key, TrackingType t );
struct TrackingEnabled
{

@ -62,7 +62,7 @@
</widget>
</item>
<item>
<widget class="QToolButton" name="toolButton">
<widget class="QToolButton" name="installPolicyButton">
<property name="text">
<string>...</string>
</property>
@ -132,7 +132,7 @@
</widget>
</item>
<item>
<widget class="QToolButton" name="toolButton_2">
<widget class="QToolButton" name="machinePolicyButton">
<property name="text">
<string>...</string>
</property>
@ -199,7 +199,7 @@
</widget>
</item>
<item>
<widget class="QToolButton" name="toolButton_3">
<widget class="QToolButton" name="userPolicyButton">
<property name="text">
<string>...</string>
</property>

@ -33,6 +33,12 @@
# checkbox is set to the value of *default*. Both keys default to
# "off", disabling all tracking-configuration through Calamares.
#
# Each area has a key *policy*, which is a Url to be opened when
# the user clicks on the corresponding Help button for an explanation
# of the details of that particular kind of tracking. If no policy
# is set, the help button is hidden. The example policy links
# go to Calamares' generic user manual.
#
# Each area may have other configuration keys, depending on the
# area and how it needs to be configured.
---
@ -51,7 +57,8 @@
install:
enabled: false
default: false
url:
policy: "https://github.com/calamares/calamares/wiki/Users-Guide#installation-tracking"
# url: "https://example.com/install.php"
# The machine area has one specific configuration key:
# style: This string specifies what kind of tracking configuration

Loading…
Cancel
Save