[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
This commit is contained in:
Adriaan de Groot 2020-06-23 13:37:56 +02:00
parent 0bede0692a
commit 1dfb25372b
5 changed files with 87 additions and 94 deletions

View File

@ -112,6 +112,8 @@ InstallTrackingConfig::InstallTrackingConfig( QObject* parent )
setObjectName( "InstallTrackingConfig" ); setObjectName( "InstallTrackingConfig" );
} }
InstallTrackingConfig::~InstallTrackingConfig() {}
void void
InstallTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap ) InstallTrackingConfig::setConfigurationMap( const QVariantMap& configurationMap )
{ {
@ -127,6 +129,8 @@ MachineTrackingConfig::MachineTrackingConfig( QObject* parent )
setObjectName( "MachineTrackingConfig" ); setObjectName( "MachineTrackingConfig" );
} }
MachineTrackingConfig::~MachineTrackingConfig() {}
/** @brief Is @p s a valid machine-tracking style. */ /** @brief Is @p s a valid machine-tracking style. */
static bool static bool
isValidMachineTrackingStyle( const QString& s ) isValidMachineTrackingStyle( const QString& s )
@ -151,6 +155,8 @@ UserTrackingConfig::UserTrackingConfig( QObject* parent )
setObjectName( "UserTrackingConfig" ); setObjectName( "UserTrackingConfig" );
} }
UserTrackingConfig::~UserTrackingConfig() {}
static bool static bool
isValidUserTrackingStyle( const QString& s ) isValidUserTrackingStyle( const QString& s )
{ {

View File

@ -55,7 +55,7 @@ public:
DisabledByUser, DisabledByUser,
EnabledByUser EnabledByUser
}; };
Q_ENUM( TrackingState ); Q_ENUM( TrackingState )
public Q_SLOTS: public Q_SLOTS:
TrackingState tracking() const { return m_state; } TrackingState tracking() const { return m_state; }
@ -106,6 +106,7 @@ class InstallTrackingConfig : public TrackingStyleConfig
{ {
public: public:
InstallTrackingConfig( QObject* parent ); InstallTrackingConfig( QObject* parent );
~InstallTrackingConfig() override;
void setConfigurationMap( const QVariantMap& configurationMap ); void setConfigurationMap( const QVariantMap& configurationMap );
QString installTrackingUrl() { return m_installTrackingUrl; } QString installTrackingUrl() { return m_installTrackingUrl; }
@ -125,6 +126,7 @@ class MachineTrackingConfig : public TrackingStyleConfig
{ {
public: public:
MachineTrackingConfig( QObject* parent ); MachineTrackingConfig( QObject* parent );
~MachineTrackingConfig() override;
void setConfigurationMap( const QVariantMap& configurationMap ); void setConfigurationMap( const QVariantMap& configurationMap );
QString machineTrackingStyle() { return m_machineTrackingStyle; } QString machineTrackingStyle() { return m_machineTrackingStyle; }
@ -146,6 +148,7 @@ class UserTrackingConfig : public TrackingStyleConfig
{ {
public: public:
UserTrackingConfig( QObject* parent ); UserTrackingConfig( QObject* parent );
~UserTrackingConfig() override;
void setConfigurationMap( const QVariantMap& configurationMap ); void setConfigurationMap( const QVariantMap& configurationMap );
QString userTrackingStyle() { return m_userTrackingStyle; } QString userTrackingStyle() { return m_userTrackingStyle; }

View File

@ -78,41 +78,7 @@ TrackingInstallJob::exec()
return Calamares::JobResult::ok(); return Calamares::JobResult::ok();
} }
void TrackingMachineUpdateManagerJob::~TrackingMachineUpdateManagerJob() {}
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;
}
}
}
QString QString
TrackingMachineUpdateManagerJob::prettyName() const 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 ) TrackingKUserFeedbackJob::TrackingKUserFeedbackJob( const QString& username, const QStringList& areas )
: m_username( username ) : m_username( username )
, m_areas( areas ) , m_areas( areas )
{ {
} }
TrackingKUserFeedbackJob::~TrackingKUserFeedbackJob() {}
QString QString
TrackingKUserFeedbackJob::prettyName() const TrackingKUserFeedbackJob::prettyName() const
{ {
@ -246,3 +187,66 @@ FeedbackLevel=16
return Calamares::JobResult::ok(); 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;
}
}
}

View File

@ -58,53 +58,28 @@ public:
QString prettyStatusMessage() const override; QString prettyStatusMessage() const override;
Calamares::JobResult exec() override; Calamares::JobResult exec() override;
static void addJob( Calamares::JobList& list, InstallTrackingConfig* config );
private: private:
const QString m_url; 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 /** @brief Tracking machines, update-manager style
* *
* The machine has a machine-id, and this is sed(1)'ed into the * The machine has a machine-id, and this is sed(1)'ed into the
* update-manager configuration, to report the machine-id back * update-manager configuration, to report the machine-id back
* to distro servers. * to distro servers.
*/ */
class TrackingMachineUpdateManagerJob : public TrackingMachineJob class TrackingMachineUpdateManagerJob : public Calamares::Job
{ {
Q_OBJECT Q_OBJECT
public: public:
~TrackingMachineUpdateManagerJob() override;
QString prettyName() const override; QString prettyName() const override;
QString prettyDescription() const override; QString prettyDescription() const override;
QString prettyStatusMessage() const override; QString prettyStatusMessage() const override;
Calamares::JobResult exec() 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 /** @brief Turn on KUserFeedback in target system
* *
* This writes suitable files for turning on KUserFeedback for the * This writes suitable files for turning on KUserFeedback for the
@ -115,6 +90,7 @@ class TrackingKUserFeedbackJob : public Calamares::Job
{ {
public: public:
TrackingKUserFeedbackJob( const QString& username, const QStringList& areas ); TrackingKUserFeedbackJob( const QString& username, const QStringList& areas );
~TrackingKUserFeedbackJob() override;
QString prettyName() const override; QString prettyName() const override;
QString prettyDescription() const override; QString prettyDescription() const override;
@ -126,4 +102,8 @@ private:
QStringList m_areas; 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 #endif

View File

@ -109,9 +109,9 @@ TrackingViewStep::jobs() const
cDebug() << "Creating tracking jobs .."; cDebug() << "Creating tracking jobs ..";
Calamares::JobList l; Calamares::JobList l;
TrackingInstallJob::addJob( l, m_config->installTracking() ); addJob( l, m_config->installTracking() );
TrackingMachineJob::addJob( l, m_config->machineTracking() ); addJob( l, m_config->machineTracking() );
TrackingUserJob::addJob( l, m_config->userTracking() ); addJob( l, m_config->userTracking() );
cDebug() << Logger::SubEntry << l.count() << "jobs queued."; cDebug() << Logger::SubEntry << l.count() << "jobs queued.";
return l; return l;
} }