[tracking] Drop configuration fields from ViewStep
- All the configuration lives in the Config object (or the tracking objects that it exposes). - Get data from the config object for the jobs; TODO: give the jobs a less-clunky interface. The UI isn't hooked up to the Config object yet, though.
This commit is contained in:
parent
5763799ba9
commit
309b2f872d
@ -159,6 +159,8 @@ class Config : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY( QString generalPolicy READ generalPolicy NOTIFY generalPolicyChanged FINAL )
|
Q_PROPERTY( QString generalPolicy READ generalPolicy NOTIFY generalPolicyChanged FINAL )
|
||||||
Q_PROPERTY( TrackingStyleConfig* installTracking READ installTracking FINAL )
|
Q_PROPERTY( TrackingStyleConfig* installTracking READ installTracking FINAL )
|
||||||
|
Q_PROPERTY( TrackingStyleConfig* machineTracking READ machineTracking FINAL )
|
||||||
|
Q_PROPERTY( TrackingStyleConfig* userTracking READ userTracking FINAL )
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Config( QObject* parent = nullptr );
|
Config( QObject* parent = nullptr );
|
||||||
@ -166,7 +168,10 @@ public:
|
|||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
QString generalPolicy() const;
|
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:
|
signals:
|
||||||
void generalPolicyChanged( QString );
|
void generalPolicyChanged( QString );
|
||||||
|
@ -105,12 +105,9 @@ TrackingViewStep::isAtEnd() const
|
|||||||
void
|
void
|
||||||
TrackingViewStep::onLeave()
|
TrackingViewStep::onLeave()
|
||||||
{
|
{
|
||||||
m_installTracking.userEnabled = m_widget->getTrackingOption( TrackingType::InstallTracking );
|
cDebug() << "Install tracking:" << m_config->installTracking()->isEnabled();
|
||||||
m_machineTracking.userEnabled = m_widget->getTrackingOption( TrackingType::MachineTracking );
|
cDebug() << "Machine tracking:" << m_config->machineTracking()->isEnabled();
|
||||||
m_userTracking.userEnabled = m_widget->getTrackingOption( TrackingType::UserTracking );
|
cDebug() << " User tracking:" << m_config->userTracking()->isEnabled();
|
||||||
cDebug() << "Install tracking:" << m_installTracking.enabled();
|
|
||||||
cDebug() << "Machine tracking:" << m_machineTracking.enabled();
|
|
||||||
cDebug() << " User tracking:" << m_userTracking.enabled();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -120,10 +117,10 @@ TrackingViewStep::jobs() const
|
|||||||
Calamares::JobList l;
|
Calamares::JobList l;
|
||||||
|
|
||||||
cDebug() << "Creating tracking jobs ..";
|
cDebug() << "Creating tracking jobs ..";
|
||||||
if ( m_installTracking.enabled() && !m_installTrackingUrl.isEmpty() )
|
if ( m_config->installTracking()->isEnabled() )
|
||||||
{
|
{
|
||||||
QString installUrl = m_installTrackingUrl;
|
QString installUrl = m_config->installTracking()->installTrackingUrl();
|
||||||
const auto s = CalamaresUtils::System::instance();
|
const auto* s = CalamaresUtils::System::instance();
|
||||||
|
|
||||||
QString memory, disk;
|
QString memory, disk;
|
||||||
memory.setNum( s->getTotalMemoryB().first );
|
memory.setNum( s->getTotalMemoryB().first );
|
||||||
@ -136,58 +133,25 @@ TrackingViewStep::jobs() const
|
|||||||
l.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) );
|
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 ) );
|
const auto style = m_config->machineTracking()->machineTrackingStyle();
|
||||||
if ( m_machineTrackingStyle == "neon" )
|
if ( style == "neon" )
|
||||||
{
|
{
|
||||||
l.append( Calamares::job_ptr( new TrackingMachineNeonJob() ) );
|
l.append( Calamares::job_ptr( new TrackingMachineNeonJob() ) );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cWarning() << "Unsupported machine tracking style" << style;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return l;
|
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
|
void
|
||||||
TrackingViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
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 );
|
m_config->setConfigurationMap( configurationMap );
|
||||||
|
|
||||||
bool ok;
|
bool ok;
|
||||||
|
@ -57,43 +57,8 @@ public:
|
|||||||
void setConfigurationMap( const QVariantMap& configurationMap ) override;
|
void setConfigurationMap( const QVariantMap& configurationMap ) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QVariantMap setTrackingOption( const QVariantMap& configurationMap, const QString& key, TrackingType t );
|
|
||||||
|
|
||||||
Config* m_config;
|
Config* m_config;
|
||||||
TrackingPage* m_widget;
|
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 )
|
CALAMARES_PLUGIN_FACTORY_DECLARATION( TrackingViewStepFactory )
|
||||||
|
Loading…
Reference in New Issue
Block a user