diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index 1a451e5ce..bd9ba520e 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -159,6 +159,8 @@ class Config : public QObject Q_OBJECT Q_PROPERTY( QString generalPolicy READ generalPolicy NOTIFY generalPolicyChanged FINAL ) Q_PROPERTY( TrackingStyleConfig* installTracking READ installTracking FINAL ) + Q_PROPERTY( TrackingStyleConfig* machineTracking READ machineTracking FINAL ) + Q_PROPERTY( TrackingStyleConfig* userTracking READ userTracking FINAL ) public: Config( QObject* parent = nullptr ); @@ -166,7 +168,10 @@ public: public Q_SLOTS: QString generalPolicy() const; - TrackingStyleConfig* installTracking() const { return m_installTracking; } + + InstallTrackingConfig* installTracking() const { return m_installTracking; } + MachineTrackingConfig* machineTracking() const { return m_machineTracking; } + UserTrackingConfig* userTracking() const { return m_userTracking; } signals: void generalPolicyChanged( QString ); diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 6da292242..98685bfc8 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -105,12 +105,9 @@ TrackingViewStep::isAtEnd() const void TrackingViewStep::onLeave() { - m_installTracking.userEnabled = m_widget->getTrackingOption( TrackingType::InstallTracking ); - m_machineTracking.userEnabled = m_widget->getTrackingOption( TrackingType::MachineTracking ); - m_userTracking.userEnabled = m_widget->getTrackingOption( TrackingType::UserTracking ); - cDebug() << "Install tracking:" << m_installTracking.enabled(); - cDebug() << "Machine tracking:" << m_machineTracking.enabled(); - cDebug() << " User tracking:" << m_userTracking.enabled(); + cDebug() << "Install tracking:" << m_config->installTracking()->isEnabled(); + cDebug() << "Machine tracking:" << m_config->machineTracking()->isEnabled(); + cDebug() << " User tracking:" << m_config->userTracking()->isEnabled(); } @@ -120,10 +117,10 @@ TrackingViewStep::jobs() const Calamares::JobList l; cDebug() << "Creating tracking jobs .."; - if ( m_installTracking.enabled() && !m_installTrackingUrl.isEmpty() ) + if ( m_config->installTracking()->isEnabled() ) { - QString installUrl = m_installTrackingUrl; - const auto s = CalamaresUtils::System::instance(); + QString installUrl = m_config->installTracking()->installTrackingUrl(); + const auto* s = CalamaresUtils::System::instance(); QString memory, disk; memory.setNum( s->getTotalMemoryB().first ); @@ -136,58 +133,25 @@ TrackingViewStep::jobs() const l.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) ); } - if ( m_machineTracking.enabled() && !m_machineTrackingStyle.isEmpty() ) + if ( m_config->machineTracking()->isEnabled() ) { - Q_ASSERT( isValidStyle( m_machineTrackingStyle ) ); - if ( m_machineTrackingStyle == "neon" ) + const auto style = m_config->machineTracking()->machineTrackingStyle(); + if ( style == "neon" ) { l.append( Calamares::job_ptr( new TrackingMachineNeonJob() ) ); } + else + { + cWarning() << "Unsupported machine tracking style" << style; + } } return l; } -QVariantMap -TrackingViewStep::setTrackingOption( const QVariantMap& configurationMap, const QString& key, TrackingType t ) -{ - bool settingEnabled = false; - - bool success = false; - auto config = CalamaresUtils::getSubMap( configurationMap, key, success ); - - if ( success ) - { - settingEnabled = CalamaresUtils::getBool( config, "enabled", false ); - } - - TrackingEnabled& trackingConfiguration = tracking( t ); - trackingConfiguration.settingEnabled = settingEnabled; - trackingConfiguration.userEnabled = false; - - m_widget->enableTrackingOption( t, settingEnabled ); - m_widget->setTrackingPolicy( t, CalamaresUtils::getString( config, "policy" ) ); - - return config; -} - void TrackingViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { - QVariantMap config; - - config = setTrackingOption( configurationMap, "install", TrackingType::InstallTracking ); - m_installTrackingUrl = CalamaresUtils::getString( config, "url" ); - - config = setTrackingOption( configurationMap, "machine", TrackingType::MachineTracking ); - auto s = CalamaresUtils::getString( config, "style" ); - if ( isValidStyle( s ) ) - { - m_machineTrackingStyle = s; - } - - setTrackingOption( configurationMap, "user", TrackingType::UserTracking ); - m_config->setConfigurationMap( configurationMap ); bool ok; diff --git a/src/modules/tracking/TrackingViewStep.h b/src/modules/tracking/TrackingViewStep.h index a342dc498..b05f1b053 100644 --- a/src/modules/tracking/TrackingViewStep.h +++ b/src/modules/tracking/TrackingViewStep.h @@ -57,43 +57,8 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ) override; private: - QVariantMap setTrackingOption( const QVariantMap& configurationMap, const QString& key, TrackingType t ); - Config* m_config; TrackingPage* m_widget; - QString m_installTrackingUrl; - QString m_machineTrackingStyle; - - struct TrackingEnabled - { - bool settingEnabled; // Enabled in config file - bool userEnabled; // User checked "yes" - - TrackingEnabled() - : settingEnabled( false ) - , userEnabled( false ) - { - } - - bool enabled() const { return settingEnabled && userEnabled; } - }; - TrackingEnabled m_installTracking, m_machineTracking, m_userTracking; - - inline TrackingEnabled& tracking( TrackingType t ) - { - if ( t == TrackingType::UserTracking ) - { - return m_userTracking; - } - else if ( t == TrackingType::MachineTracking ) - { - return m_machineTracking; - } - else - { - return m_installTracking; - } - } }; CALAMARES_PLUGIN_FACTORY_DECLARATION( TrackingViewStepFactory )