diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index f41142b6a..8abcf7035 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -43,6 +43,7 @@ #include "jobs/ResizePartitionJob.h" #include "jobs/ResizeVolumeGroupJob.h" #include "jobs/SetPartitionFlagsJob.h" +#include "utils/CalamaresUtils.h" #include "Typedefs.h" #include "utils/Logger.h" @@ -760,6 +761,32 @@ PartitionCoreModule::setBootLoaderInstallPath( const QString& path ) m_bootLoaderInstallPath = path; } +void +PartitionCoreModule::initLayout() +{ + m_partLayout = new PartitionLayout(); + + m_partLayout->addEntry( QString("/"), QString("100%") ); +} + +void +PartitionCoreModule::initLayout( const QVariantList& config ) +{ + m_partLayout = new PartitionLayout(); + + for ( const auto& r : config ) + { + QVariantMap pentry = r.toMap(); + + m_partLayout->addEntry( CalamaresUtils::getString( pentry, "name" ), + CalamaresUtils::getString( pentry, "mountPoint" ), + CalamaresUtils::getString( pentry, "filesystem" ), + CalamaresUtils::getString( pentry, "size" ), + CalamaresUtils::getString( pentry, "minSize" ) + ); + } +} + void PartitionCoreModule::revert() { diff --git a/src/modules/partition/core/PartitionCoreModule.h b/src/modules/partition/core/PartitionCoreModule.h index 15dadc7f5..55961ce58 100644 --- a/src/modules/partition/core/PartitionCoreModule.h +++ b/src/modules/partition/core/PartitionCoreModule.h @@ -20,6 +20,7 @@ #ifndef PARTITIONCOREMODULE_H #define PARTITIONCOREMODULE_H +#include "core/PartitionLayout.h" #include "core/PartitionModel.h" #include "Typedefs.h" @@ -155,6 +156,9 @@ public: void setBootLoaderInstallPath( const QString& path ); + void initLayout(); + void initLayout( const QVariantList& config ); + /** * @brief jobs creates and returns a list of jobs which can then apply the changes * requested by the user. @@ -246,6 +250,7 @@ private: bool m_hasRootMountPoint = false; bool m_isDirty = false; QString m_bootLoaderInstallPath; + PartitionLayout* m_partLayout; void doInit(); void updateHasRootMountPoint(); diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index 0152f8bec..9c94e87d7 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -610,6 +610,15 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap ) QFuture< void > future = QtConcurrent::run( this, &PartitionViewStep::initPartitionCoreModule ); watcher->setFuture( future ); + + if ( configurationMap.contains( "partitionLayout" ) ) + { + m_core->initLayout( configurationMap.values( "partitionLayout" ).at(0).toList() ); + } + else + { + m_core->initLayout(); + } }