From 1dfb25372bd8f9a8df3e74624ef7fa2eac9181b4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 23 Jun 2020 13:37:56 +0200 Subject: [PATCH] [tracking] Warnings-reduction - Give classes a virtual destructor that need them - Remove spurious ; - Refactor addJobs() because that doesn't need to be in a class - Remove redundant intermediate base-classes --- src/modules/tracking/Config.cpp | 6 + src/modules/tracking/Config.h | 5 +- src/modules/tracking/TrackingJobs.cpp | 128 +++++++++++----------- src/modules/tracking/TrackingJobs.h | 36 ++---- src/modules/tracking/TrackingViewStep.cpp | 6 +- 5 files changed, 87 insertions(+), 94 deletions(-) diff --git a/src/modules/tracking/Config.cpp b/src/modules/tracking/Config.cpp index 6d9dbb10b..9e8179905 100644 --- a/src/modules/tracking/Config.cpp +++ b/src/modules/tracking/Config.cpp @@ -112,6 +112,8 @@ InstallTrackingConfig::InstallTrackingConfig( QObject* parent ) setObjectName( "InstallTrackingConfig" ); } +InstallTrackingConfig::~InstallTrackingConfig() {} + void InstallTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap ) { @@ -127,6 +129,8 @@ MachineTrackingConfig::MachineTrackingConfig( QObject* parent ) setObjectName( "MachineTrackingConfig" ); } +MachineTrackingConfig::~MachineTrackingConfig() {} + /** @brief Is @p s a valid machine-tracking style. */ static bool isValidMachineTrackingStyle( const QString& s ) @@ -151,6 +155,8 @@ UserTrackingConfig::UserTrackingConfig( QObject* parent ) setObjectName( "UserTrackingConfig" ); } +UserTrackingConfig::~UserTrackingConfig() {} + static bool isValidUserTrackingStyle( const QString& s ) { diff --git a/src/modules/tracking/Config.h b/src/modules/tracking/Config.h index fb279ea93..ad7d1d4f2 100644 --- a/src/modules/tracking/Config.h +++ b/src/modules/tracking/Config.h @@ -55,7 +55,7 @@ public: DisabledByUser, EnabledByUser }; - Q_ENUM( TrackingState ); + Q_ENUM( TrackingState ) public Q_SLOTS: TrackingState tracking() const { return m_state; } @@ -106,6 +106,7 @@ class InstallTrackingConfig : public TrackingStyleConfig { public: InstallTrackingConfig( QObject* parent ); + ~InstallTrackingConfig() override; void setConfigurationMap( const QVariantMap& configurationMap ); QString installTrackingUrl() { return m_installTrackingUrl; } @@ -125,6 +126,7 @@ class MachineTrackingConfig : public TrackingStyleConfig { public: MachineTrackingConfig( QObject* parent ); + ~MachineTrackingConfig() override; void setConfigurationMap( const QVariantMap& configurationMap ); QString machineTrackingStyle() { return m_machineTrackingStyle; } @@ -146,6 +148,7 @@ class UserTrackingConfig : public TrackingStyleConfig { public: UserTrackingConfig( QObject* parent ); + ~UserTrackingConfig() override; void setConfigurationMap( const QVariantMap& configurationMap ); QString userTrackingStyle() { return m_userTrackingStyle; } diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 2087804ec..00ef06e10 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -78,41 +78,7 @@ TrackingInstallJob::exec() return Calamares::JobResult::ok(); } -void -TrackingInstallJob::addJob( Calamares::JobList& list, InstallTrackingConfig* config ) -{ - if ( config->isEnabled() ) - { - const auto* s = CalamaresUtils::System::instance(); - QHash< QString, QString > map { std::initializer_list< std::pair< QString, QString > > { - { QStringLiteral( "CPU" ), s->getCpuDescription() }, - { QStringLiteral( "MEMORY" ), QString::number( s->getTotalMemoryB().first ) }, - { QStringLiteral( "DISK" ), QString::number( s->getTotalDiskB() ) } } }; - QString installUrl = KMacroExpander::expandMacros( config->installTrackingUrl(), map ); - - cDebug() << Logger::SubEntry << "install-tracking URL" << installUrl; - - list.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) ); - } -} - -void -TrackingMachineJob::addJob( Calamares::JobList& list, MachineTrackingConfig* config ) -{ - if ( config->isEnabled() ) - { - const auto style = config->machineTrackingStyle(); - if ( style == "updatemanager" ) - { - list.append( Calamares::job_ptr( new TrackingMachineUpdateManagerJob() ) ); - } - else - { - cWarning() << "Unsupported machine tracking style" << style; - } - } -} - +TrackingMachineUpdateManagerJob::~TrackingMachineUpdateManagerJob() {} QString TrackingMachineUpdateManagerJob::prettyName() const @@ -163,39 +129,14 @@ TrackingMachineUpdateManagerJob::exec() } } -void -TrackingUserJob::addJob( Calamares::JobList& list, UserTrackingConfig* config ) -{ - if ( config->isEnabled() ) - { - const auto* gs = Calamares::JobQueue::instance()->globalStorage(); - static const auto key = QStringLiteral( "username" ); - QString username = ( gs && gs->contains( key ) ) ? gs->value( key ).toString() : QString(); - - if ( username.isEmpty() ) - { - cWarning() << "No username is set in GlobalStorage, skipping user-tracking."; - return; - } - - const auto style = config->userTrackingStyle(); - if ( style == "kuserfeedback" ) - { - list.append( Calamares::job_ptr( new TrackingKUserFeedbackJob( username, config->userTrackingAreas() ) ) ); - } - else - { - cWarning() << "Unsupported user tracking style" << style; - } - } -} - TrackingKUserFeedbackJob::TrackingKUserFeedbackJob( const QString& username, const QStringList& areas ) : m_username( username ) , m_areas( areas ) { } +TrackingKUserFeedbackJob::~TrackingKUserFeedbackJob() {} + QString TrackingKUserFeedbackJob::prettyName() const { @@ -246,3 +187,66 @@ FeedbackLevel=16 return Calamares::JobResult::ok(); } + +void +addJob( Calamares::JobList& list, InstallTrackingConfig* config ) +{ + if ( config->isEnabled() ) + { + const auto* s = CalamaresUtils::System::instance(); + QHash< QString, QString > map { std::initializer_list< std::pair< QString, QString > > { + { QStringLiteral( "CPU" ), s->getCpuDescription() }, + { QStringLiteral( "MEMORY" ), QString::number( s->getTotalMemoryB().first ) }, + { QStringLiteral( "DISK" ), QString::number( s->getTotalDiskB() ) } } }; + QString installUrl = KMacroExpander::expandMacros( config->installTrackingUrl(), map ); + + cDebug() << Logger::SubEntry << "install-tracking URL" << installUrl; + + list.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) ); + } +} + +void +addJob( Calamares::JobList& list, MachineTrackingConfig* config ) +{ + if ( config->isEnabled() ) + { + const auto style = config->machineTrackingStyle(); + if ( style == "updatemanager" ) + { + list.append( Calamares::job_ptr( new TrackingMachineUpdateManagerJob() ) ); + } + else + { + cWarning() << "Unsupported machine tracking style" << style; + } + } +} + + +void +addJob( Calamares::JobList& list, UserTrackingConfig* config ) +{ + if ( config->isEnabled() ) + { + const auto* gs = Calamares::JobQueue::instance()->globalStorage(); + static const auto key = QStringLiteral( "username" ); + QString username = ( gs && gs->contains( key ) ) ? gs->value( key ).toString() : QString(); + + if ( username.isEmpty() ) + { + cWarning() << "No username is set in GlobalStorage, skipping user-tracking."; + return; + } + + const auto style = config->userTrackingStyle(); + if ( style == "kuserfeedback" ) + { + list.append( Calamares::job_ptr( new TrackingKUserFeedbackJob( username, config->userTrackingAreas() ) ) ); + } + else + { + cWarning() << "Unsupported user tracking style" << style; + } + } +} diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index c65c8f621..38349515a 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -58,53 +58,28 @@ public: QString prettyStatusMessage() const override; Calamares::JobResult exec() override; - static void addJob( Calamares::JobList& list, InstallTrackingConfig* config ); - private: const QString m_url; }; -/** @brief Base class for machine-tracking jobs - * - * Machine-tracking configuraiton depends on the distro / style of machine - * being tracked, so it has subclasses to switch on the relevant kind - * of tracking. A machine is tracked persistently. - */ -class TrackingMachineJob : public Calamares::Job -{ -public: - static void addJob( Calamares::JobList& list, MachineTrackingConfig* config ); -}; - /** @brief Tracking machines, update-manager style * * The machine has a machine-id, and this is sed(1)'ed into the * update-manager configuration, to report the machine-id back * to distro servers. */ -class TrackingMachineUpdateManagerJob : public TrackingMachineJob +class TrackingMachineUpdateManagerJob : public Calamares::Job { Q_OBJECT public: + ~TrackingMachineUpdateManagerJob() override; + QString prettyName() const override; QString prettyDescription() const override; QString prettyStatusMessage() const override; Calamares::JobResult exec() override; }; -/** @brief Base class for user-tracking jobs - * - * User-tracking configuration depends on the distro / style of user - * tracking being implemented, so there are subclasses to switch on the - * relevant kind of tracking. Users are tracked persistently (the user - * can of course configure the tracking again once the system is restarted). - */ -class TrackingUserJob : public Calamares::Job -{ -public: - static void addJob( Calamares::JobList& list, UserTrackingConfig* config ); -}; - /** @brief Turn on KUserFeedback in target system * * This writes suitable files for turning on KUserFeedback for the @@ -115,6 +90,7 @@ class TrackingKUserFeedbackJob : public Calamares::Job { public: TrackingKUserFeedbackJob( const QString& username, const QStringList& areas ); + ~TrackingKUserFeedbackJob() override; QString prettyName() const override; QString prettyDescription() const override; @@ -126,4 +102,8 @@ private: QStringList m_areas; }; +void addJob( Calamares::JobList& list, InstallTrackingConfig* config ); +void addJob( Calamares::JobList& list, MachineTrackingConfig* config ); +void addJob( Calamares::JobList& list, UserTrackingConfig* config ); + #endif diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 8a80b2b57..da5d9108d 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -109,9 +109,9 @@ TrackingViewStep::jobs() const cDebug() << "Creating tracking jobs .."; Calamares::JobList l; - TrackingInstallJob::addJob( l, m_config->installTracking() ); - TrackingMachineJob::addJob( l, m_config->machineTracking() ); - TrackingUserJob::addJob( l, m_config->userTracking() ); + addJob( l, m_config->installTracking() ); + addJob( l, m_config->machineTracking() ); + addJob( l, m_config->userTracking() ); cDebug() << Logger::SubEntry << l.count() << "jobs queued."; return l; }