diff --git a/src/libcalamaresui/modulesystem/CppJobModule.cpp b/src/libcalamaresui/modulesystem/CppJobModule.cpp index c6571dbf6..2eddeda86 100644 --- a/src/libcalamaresui/modulesystem/CppJobModule.cpp +++ b/src/libcalamaresui/modulesystem/CppJobModule.cpp @@ -86,7 +86,6 @@ CppJobModule::jobs() const void CppJobModule::initFrom( const QVariantMap& moduleDescriptor ) { - Module::initFrom( moduleDescriptor ); QDir directory( location() ); QString load; if ( !moduleDescriptor.value( "load" ).toString().isEmpty() ) diff --git a/src/libcalamaresui/modulesystem/Module.cpp b/src/libcalamaresui/modulesystem/Module.cpp index 799da941e..4bc759cb1 100644 --- a/src/libcalamaresui/modulesystem/Module.cpp +++ b/src/libcalamaresui/modulesystem/Module.cpp @@ -48,8 +48,24 @@ static const char EMERGENCY[] = "emergency"; namespace Calamares { +Module::Module() + : m_loaded( false ) +{ +} + Module::~Module() {} +void +Module::initFrom( const QVariantMap& moduleDescriptor, const QString& id ) +{ + m_name = moduleDescriptor.value( "name" ).toString(); + m_instanceId = id; + if ( moduleDescriptor.contains( EMERGENCY ) ) + { + m_maybe_emergency = moduleDescriptor[ EMERGENCY ].toBool(); + } +} + Module* Module::fromDescriptor( const QVariantMap& moduleDescriptor, const QString& instanceId, @@ -131,8 +147,7 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor, return nullptr; } - m->m_instanceId = instanceId; - + m->initFrom( moduleDescriptor, instanceId ); m->initFrom( moduleDescriptor ); try { @@ -290,22 +305,6 @@ Module::configurationMap() } -Module::Module() - : m_loaded( false ) -{ -} - - -void -Module::initFrom( const QVariantMap& moduleDescriptor ) -{ - m_name = moduleDescriptor.value( "name" ).toString(); - if ( moduleDescriptor.contains( EMERGENCY ) ) - { - m_maybe_emergency = moduleDescriptor[ EMERGENCY ].toBool(); - } -} - RequirementsList Module::checkRequirements() { diff --git a/src/libcalamaresui/modulesystem/Module.h b/src/libcalamaresui/modulesystem/Module.h index e4101b767..03eb09cb0 100644 --- a/src/libcalamaresui/modulesystem/Module.h +++ b/src/libcalamaresui/modulesystem/Module.h @@ -173,7 +173,12 @@ public: protected: explicit Module(); - virtual void initFrom( const QVariantMap& moduleDescriptor ); + + /// @brief For subclasses to read their part of the descriptor + virtual void initFrom( const QVariantMap& moduleDescriptor ) = 0; + /// @brief Generic part of descriptor reading (and instance id) + void initFrom( const QVariantMap& moduleDescriptor, const QString& id ); + QVariantMap m_configurationMap; bool m_loaded = false; diff --git a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp index fc4b5f254..405d9efd8 100644 --- a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp +++ b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp @@ -63,7 +63,6 @@ ProcessJobModule::jobs() const void ProcessJobModule::initFrom( const QVariantMap& moduleDescriptor ) { - Module::initFrom( moduleDescriptor ); QDir directory( location() ); m_workingPath = directory.absolutePath(); diff --git a/src/libcalamaresui/modulesystem/PythonJobModule.cpp b/src/libcalamaresui/modulesystem/PythonJobModule.cpp index 46ec1dff1..c9e90a707 100644 --- a/src/libcalamaresui/modulesystem/PythonJobModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonJobModule.cpp @@ -64,7 +64,6 @@ PythonJobModule::jobs() const void PythonJobModule::initFrom( const QVariantMap& moduleDescriptor ) { - Module::initFrom( moduleDescriptor ); QDir directory( location() ); m_workingPath = directory.absolutePath(); diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp index 08e4c5c08..b59126eaa 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp @@ -174,7 +174,6 @@ PythonQtViewModule::jobs() const void PythonQtViewModule::initFrom( const QVariantMap& moduleDescriptor ) { - Module::initFrom( moduleDescriptor ); QDir directory( location() ); m_workingPath = directory.absolutePath(); diff --git a/src/libcalamaresui/modulesystem/ViewModule.cpp b/src/libcalamaresui/modulesystem/ViewModule.cpp index 7506e5348..02c771ee2 100644 --- a/src/libcalamaresui/modulesystem/ViewModule.cpp +++ b/src/libcalamaresui/modulesystem/ViewModule.cpp @@ -91,7 +91,6 @@ ViewModule::jobs() const void ViewModule::initFrom( const QVariantMap& moduleDescriptor ) { - Module::initFrom( moduleDescriptor ); QDir directory( location() ); QString load; if ( !moduleDescriptor.value( "load" ).toString().isEmpty() )