mirror of
https://github.com/parchlinux/calamares.git
synced 2025-02-24 10:55:46 -05:00
[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
3 changed files with 19 additions and 85 deletions
|
@ -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 );
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 )
|
||||
|
|
Loading…
Add table
Reference in a new issue