From f2960366c86ecbb251380d2c3890b812e49b328d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Sat, 20 Jun 2020 00:37:17 -0400 Subject: [PATCH 01/12] [partition] Remove unused addEntry method - The method addEntry with PartitionEntry appears to be unused since its always. Drop it! --- src/modules/partition/core/PartitionLayout.cpp | 14 -------------- src/modules/partition/core/PartitionLayout.h | 1 - 2 files changed, 15 deletions(-) diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index d42e7b568..2fb4b9966 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -62,20 +62,6 @@ PartitionLayout::PartitionLayout( const PartitionLayout& layout ) PartitionLayout::~PartitionLayout() {} -bool -PartitionLayout::addEntry( PartitionLayout::PartitionEntry entry ) -{ - if ( !entry.isValid() ) - { - cError() << "Partition size is invalid or has min size > max size"; - return false; - } - - m_partLayout.append( entry ); - - return true; -} - PartitionLayout::PartitionEntry::PartitionEntry() : partAttributes( 0 ) { diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index 79dff1697..29f2cd609 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -63,7 +63,6 @@ public: PartitionLayout( const PartitionLayout& layout ); ~PartitionLayout(); - bool addEntry( PartitionEntry entry ); bool addEntry( const QString& mountPoint, const QString& size, const QString& min = QString(), From eae1e90dcef217b1450fbbc75f43b71343422c7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Mon, 22 Jun 2020 09:59:30 -0400 Subject: [PATCH 02/12] [partition] Remove unused PartitionLayout constructor - The constructor PartitionLayout with PartitionEntry appears to be unused since its always. Drop it! --- src/modules/partition/core/PartitionLayout.cpp | 6 ------ src/modules/partition/core/PartitionLayout.h | 1 - 2 files changed, 7 deletions(-) diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 2fb4b9966..007808910 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -48,12 +48,6 @@ PartitionLayout::PartitionLayout() { } -PartitionLayout::PartitionLayout( PartitionLayout::PartitionEntry entry ) - : PartitionLayout() -{ - m_partLayout.append( entry ); -} - PartitionLayout::PartitionLayout( const PartitionLayout& layout ) : m_defaultFsType( layout.m_defaultFsType ) , m_partLayout( layout.m_partLayout ) diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index 29f2cd609..329a181bb 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -59,7 +59,6 @@ public: }; PartitionLayout(); - PartitionLayout( PartitionEntry entry ); PartitionLayout( const PartitionLayout& layout ); ~PartitionLayout(); From d6ea30b23e72c20d71bf9356efb43000df0374c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Fri, 19 Jun 2020 23:06:38 -0400 Subject: [PATCH 03/12] [partition] Move initLayout logic to object PartitionLayout - The logic of the method initLayout belongs to the object PartitionLayout. Move logic to that object. - Use a single method initLayout in object PartitionCoreModule. - Member m_partLayout in object PartitionCoreModule is no longer allocated. --- .../partition/core/PartitionCoreModule.cpp | 76 +------------------ .../partition/core/PartitionCoreModule.h | 5 +- .../partition/core/PartitionLayout.cpp | 75 ++++++++++++++++++ src/modules/partition/core/PartitionLayout.h | 1 + .../partition/gui/PartitionViewStep.cpp | 9 +-- 5 files changed, 81 insertions(+), 85 deletions(-) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index 3327eb50b..e97aff9fa 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -860,82 +860,10 @@ 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 ) { - bool ok; - QString sizeString; - QString minSizeString; - QString maxSizeString; - - m_partLayout = new PartitionLayout(); - - for ( const auto& r : config ) - { - QVariantMap pentry = r.toMap(); - - if ( !pentry.contains( "name" ) || !pentry.contains( "mountPoint" ) || !pentry.contains( "filesystem" ) - || !pentry.contains( "size" ) ) - { - cError() << "Partition layout entry #" << config.indexOf( r ) - << "lacks mandatory attributes, switching to default layout."; - delete ( m_partLayout ); - initLayout(); - break; - } - - if ( pentry.contains( "size" ) && CalamaresUtils::getString( pentry, "size" ).isEmpty() ) - { - sizeString.setNum( CalamaresUtils::getInteger( pentry, "size", 0 ) ); - } - else - { - sizeString = CalamaresUtils::getString( pentry, "size" ); - } - - if ( pentry.contains( "minSize" ) && CalamaresUtils::getString( pentry, "minSize" ).isEmpty() ) - { - minSizeString.setNum( CalamaresUtils::getInteger( pentry, "minSize", 0 ) ); - } - else - { - minSizeString = CalamaresUtils::getString( pentry, "minSize" ); - } - - if ( pentry.contains( "maxSize" ) && CalamaresUtils::getString( pentry, "maxSize" ).isEmpty() ) - { - maxSizeString.setNum( CalamaresUtils::getInteger( pentry, "maxSize", 0 ) ); - } - else - { - maxSizeString = CalamaresUtils::getString( pentry, "maxSize" ); - } - - if ( !m_partLayout->addEntry( CalamaresUtils::getString( pentry, "name" ), - CalamaresUtils::getString( pentry, "uuid" ), - CalamaresUtils::getString( pentry, "type" ), - CalamaresUtils::getUnsignedInteger( pentry, "attributes", 0 ), - CalamaresUtils::getString( pentry, "mountPoint" ), - CalamaresUtils::getString( pentry, "filesystem" ), - CalamaresUtils::getSubMap( pentry, "features", ok ), - sizeString, - minSizeString, - maxSizeString ) ) - { - cError() << "Partition layout entry #" << config.indexOf( r ) << "is invalid, switching to default layout."; - delete ( m_partLayout ); - initLayout(); - break; - } - } + m_partLayout.init( config ); } void @@ -947,7 +875,7 @@ PartitionCoreModule::layoutApply( Device* dev, const PartitionRole& role ) { bool isEfi = PartUtils::isEfiSystem(); - QList< Partition* > partList = m_partLayout->execute( dev, firstSector, lastSector, luksPassphrase, parent, role ); + QList< Partition* > partList = m_partLayout.execute( dev, firstSector, lastSector, luksPassphrase, parent, role ); // Partition::mountPoint() tells us where it is mounted **now**, while // PartitionInfo::mountPoint() says where it will be mounted in the target system. diff --git a/src/modules/partition/core/PartitionCoreModule.h b/src/modules/partition/core/PartitionCoreModule.h index 1e4179b97..46feb5f94 100644 --- a/src/modules/partition/core/PartitionCoreModule.h +++ b/src/modules/partition/core/PartitionCoreModule.h @@ -156,8 +156,7 @@ public: /// @brief Set the path where the bootloader will be installed void setBootLoaderInstallPath( const QString& path ); - void initLayout(); - void initLayout( const QVariantList& config ); + void initLayout( const QVariantList& config = QVariantList() ); void layoutApply( Device* dev, qint64 firstSector, qint64 lastSector, QString luksPassphrase ); void layoutApply( Device* dev, @@ -256,7 +255,7 @@ private: bool m_hasRootMountPoint = false; bool m_isDirty = false; QString m_bootLoaderInstallPath; - PartitionLayout* m_partLayout; + PartitionLayout m_partLayout; OsproberEntryList m_osproberLines; diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 007808910..7c00a48b2 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -21,6 +21,8 @@ #include "core/PartitionActions.h" #include "core/PartitionInfo.h" +#include "utils/Variant.h" + #include #include #include @@ -135,6 +137,79 @@ PartitionLayout::addEntry( const QString& label, return true; } +void +PartitionLayout::init( const QVariantList& config ) +{ + bool ok; + QString sizeString; + QString minSizeString; + QString maxSizeString; + + m_partLayout.clear(); + + for ( const auto& r : config ) + { + QVariantMap pentry = r.toMap(); + + if ( !pentry.contains( "name" ) || !pentry.contains( "mountPoint" ) || !pentry.contains( "filesystem" ) + || !pentry.contains( "size" ) ) + { + cError() << "Partition layout entry #" << config.indexOf( r ) + << "lacks mandatory attributes, switching to default layout."; + m_partLayout.clear(); + break; + } + + if ( pentry.contains( "size" ) && CalamaresUtils::getString( pentry, "size" ).isEmpty() ) + { + sizeString.setNum( CalamaresUtils::getInteger( pentry, "size", 0 ) ); + } + else + { + sizeString = CalamaresUtils::getString( pentry, "size" ); + } + + if ( pentry.contains( "minSize" ) && CalamaresUtils::getString( pentry, "minSize" ).isEmpty() ) + { + minSizeString.setNum( CalamaresUtils::getInteger( pentry, "minSize", 0 ) ); + } + else + { + minSizeString = CalamaresUtils::getString( pentry, "minSize" ); + } + + if ( pentry.contains( "maxSize" ) && CalamaresUtils::getString( pentry, "maxSize" ).isEmpty() ) + { + maxSizeString.setNum( CalamaresUtils::getInteger( pentry, "maxSize", 0 ) ); + } + else + { + maxSizeString = CalamaresUtils::getString( pentry, "maxSize" ); + } + + if ( !addEntry( CalamaresUtils::getString( pentry, "name" ), + CalamaresUtils::getString( pentry, "uuid" ), + CalamaresUtils::getString( pentry, "type" ), + CalamaresUtils::getUnsignedInteger( pentry, "attributes", 0 ), + CalamaresUtils::getString( pentry, "mountPoint" ), + CalamaresUtils::getString( pentry, "filesystem" ), + CalamaresUtils::getSubMap( pentry, "features", ok ), + sizeString, + minSizeString, + maxSizeString ) ) + { + cError() << "Partition layout entry #" << config.indexOf( r ) << "is invalid, switching to default layout."; + m_partLayout.clear(); + break; + } + } + + if ( !m_partLayout.count() ) + { + addEntry( QString( "/" ), QString( "100%" ) ); + } +} + QList< Partition* > PartitionLayout::execute( Device* dev, qint64 firstSector, diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index 329a181bb..b3c317d50 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -62,6 +62,7 @@ public: PartitionLayout( const PartitionLayout& layout ); ~PartitionLayout(); + void init( const QVariantList& config ); bool addEntry( const QString& mountPoint, const QString& size, const QString& min = QString(), diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index 63227e3b7..0431e1107 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -596,14 +596,7 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap ) QFuture< void > future = QtConcurrent::run( this, &PartitionViewStep::initPartitionCoreModule ); m_future->setFuture( future ); - if ( configurationMap.contains( "partitionLayout" ) ) - { - m_core->initLayout( configurationMap.value( "partitionLayout" ).toList() ); - } - else - { - m_core->initLayout(); - } + m_core->initLayout( configurationMap.value( "partitionLayout" ).toList() ); } From db7cf74034ea265eaba9aa1796ec1276d3ffb4db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Sun, 21 Jun 2020 18:20:26 -0400 Subject: [PATCH 04/12] [partition] Remove the call the method contains - The variant helper getString() calls contains() already. --- src/modules/partition/core/PartitionLayout.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 7c00a48b2..aa08aebb9 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -160,7 +160,7 @@ PartitionLayout::init( const QVariantList& config ) break; } - if ( pentry.contains( "size" ) && CalamaresUtils::getString( pentry, "size" ).isEmpty() ) + if ( CalamaresUtils::getString( pentry, "size" ).isEmpty() ) { sizeString.setNum( CalamaresUtils::getInteger( pentry, "size", 0 ) ); } @@ -169,7 +169,7 @@ PartitionLayout::init( const QVariantList& config ) sizeString = CalamaresUtils::getString( pentry, "size" ); } - if ( pentry.contains( "minSize" ) && CalamaresUtils::getString( pentry, "minSize" ).isEmpty() ) + if ( CalamaresUtils::getString( pentry, "minSize" ).isEmpty() ) { minSizeString.setNum( CalamaresUtils::getInteger( pentry, "minSize", 0 ) ); } @@ -178,7 +178,7 @@ PartitionLayout::init( const QVariantList& config ) minSizeString = CalamaresUtils::getString( pentry, "minSize" ); } - if ( pentry.contains( "maxSize" ) && CalamaresUtils::getString( pentry, "maxSize" ).isEmpty() ) + if ( CalamaresUtils::getString( pentry, "maxSize" ).isEmpty() ) { maxSizeString.setNum( CalamaresUtils::getInteger( pentry, "maxSize", 0 ) ); } From 3f2dd516d3da43525cb733951aef3d78dfba113e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Sun, 21 Jun 2020 18:16:07 -0400 Subject: [PATCH 05/12] [partition] Simplify the retrieval of the size attributes - The variant helper toString() takes a default value since commit c9f942ad6 ([libcalamares] Add default value to variant helpers). - Set the default value to 0 and simplify the retreival of size values by calling the helper toString() and removing the temporary variables. --- .../partition/core/PartitionLayout.cpp | 36 ++----------------- 1 file changed, 3 insertions(+), 33 deletions(-) diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index aa08aebb9..b87f8c0ca 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -141,9 +141,6 @@ void PartitionLayout::init( const QVariantList& config ) { bool ok; - QString sizeString; - QString minSizeString; - QString maxSizeString; m_partLayout.clear(); @@ -160,33 +157,6 @@ PartitionLayout::init( const QVariantList& config ) break; } - if ( CalamaresUtils::getString( pentry, "size" ).isEmpty() ) - { - sizeString.setNum( CalamaresUtils::getInteger( pentry, "size", 0 ) ); - } - else - { - sizeString = CalamaresUtils::getString( pentry, "size" ); - } - - if ( CalamaresUtils::getString( pentry, "minSize" ).isEmpty() ) - { - minSizeString.setNum( CalamaresUtils::getInteger( pentry, "minSize", 0 ) ); - } - else - { - minSizeString = CalamaresUtils::getString( pentry, "minSize" ); - } - - if ( CalamaresUtils::getString( pentry, "maxSize" ).isEmpty() ) - { - maxSizeString.setNum( CalamaresUtils::getInteger( pentry, "maxSize", 0 ) ); - } - else - { - maxSizeString = CalamaresUtils::getString( pentry, "maxSize" ); - } - if ( !addEntry( CalamaresUtils::getString( pentry, "name" ), CalamaresUtils::getString( pentry, "uuid" ), CalamaresUtils::getString( pentry, "type" ), @@ -194,9 +164,9 @@ PartitionLayout::init( const QVariantList& config ) CalamaresUtils::getString( pentry, "mountPoint" ), CalamaresUtils::getString( pentry, "filesystem" ), CalamaresUtils::getSubMap( pentry, "features", ok ), - sizeString, - minSizeString, - maxSizeString ) ) + CalamaresUtils::getString( pentry, "size", QStringLiteral( "0" ) ), + CalamaresUtils::getString( pentry, "minSize", QStringLiteral( "0" ) ), + CalamaresUtils::getString( pentry, "maxSize", QStringLiteral( "0" ) ) ) ) { cError() << "Partition layout entry #" << config.indexOf( r ) << "is invalid, switching to default layout."; m_partLayout.clear(); From 81bec68b3daa1f4758130973e1912dd1784c63ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Sun, 21 Jun 2020 18:02:04 -0400 Subject: [PATCH 06/12] [partition] Introduce new constructors for PartitionEntry - Introduces new constructors for PartitionEntry: copy constructory and constructor with all attributes. - Use the new constructor in method addEntry(). --- .../partition/core/PartitionLayout.cpp | 116 ++++++++---------- src/modules/partition/core/PartitionLayout.h | 35 +++--- src/modules/partition/partition.conf | 14 ++- .../partition/tests/CreateLayoutsTests.cpp | 10 +- 4 files changed, 88 insertions(+), 87 deletions(-) diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index b87f8c0ca..397d64c85 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -63,74 +63,60 @@ PartitionLayout::PartitionEntry::PartitionEntry() { } -PartitionLayout::PartitionEntry::PartitionEntry( const QString& size, const QString& min, const QString& max ) +PartitionLayout::PartitionEntry::PartitionEntry( const QString& mountPoint, const QString& size, const QString& minSize, const QString& maxSize ) : partAttributes( 0 ) + , partMountPoint( mountPoint ) , partSize( size ) - , partMinSize( min ) - , partMaxSize( max ) + , partMinSize( minSize ) + , partMaxSize( maxSize ) { } -bool -PartitionLayout::addEntry( const QString& mountPoint, const QString& size, const QString& min, const QString& max ) +PartitionLayout::PartitionEntry::PartitionEntry( const QString& label, + const QString& uuid, + const QString& type, + quint64 attributes, + const QString& mountPoint, + const QString& fs, + const QVariantMap& features, + const QString& size, + const QString& minSize, + const QString& maxSize ) + : partLabel( label ) + , partUUID( uuid ) + , partType( type ) + , partAttributes( attributes ) + , partMountPoint( mountPoint ) + , partFeatures( features ) + , partSize( size ) + , partMinSize( minSize ) + , partMaxSize( maxSize ) { - PartitionLayout::PartitionEntry entry( size, min, max ); - - if ( !entry.isValid() ) - { - cError() << "Partition size" << size << "is invalid or" << min << ">" << max; - return false; - } - if ( mountPoint.isEmpty() || !mountPoint.startsWith( QString( "/" ) ) ) - { - cError() << "Partition mount point" << mountPoint << "is invalid"; - return false; - } - - entry.partMountPoint = mountPoint; - entry.partFileSystem = m_defaultFsType; - - m_partLayout.append( entry ); - - return true; + PartUtils::findFS( fs, &partFileSystem ); } -bool -PartitionLayout::addEntry( const QString& label, - const QString& uuid, - const QString& type, - quint64 attributes, - const QString& mountPoint, - const QString& fs, - const QVariantMap& features, - const QString& size, - const QString& min, - const QString& max ) +PartitionLayout::PartitionEntry::PartitionEntry( const PartitionEntry& e ) + : partLabel( e.partLabel ) + , partUUID( e.partUUID ) + , partType( e.partType ) + , partAttributes( e.partAttributes ) + , partMountPoint( e.partMountPoint ) + , partFileSystem( e.partFileSystem ) + , partFeatures( e.partFeatures ) + , partSize( e.partSize ) + , partMinSize( e.partMinSize ) + , partMaxSize( e.partMaxSize ) { - PartitionLayout::PartitionEntry entry( size, min, max ); +} + +bool +PartitionLayout::addEntry( const PartitionEntry& entry ) +{ if ( !entry.isValid() ) { - cError() << "Partition size" << size << "is invalid or" << min << ">" << max; return false; } - if ( mountPoint.isEmpty() || !mountPoint.startsWith( QString( "/" ) ) ) - { - cError() << "Partition mount point" << mountPoint << "is invalid"; - return false; - } - - entry.partLabel = label; - entry.partUUID = uuid; - entry.partType = type; - entry.partAttributes = attributes; - entry.partMountPoint = mountPoint; - PartUtils::findFS( fs, &entry.partFileSystem ); - if ( entry.partFileSystem == FileSystem::Unknown ) - { - entry.partFileSystem = m_defaultFsType; - } - entry.partFeatures = features; m_partLayout.append( entry ); @@ -157,16 +143,16 @@ PartitionLayout::init( const QVariantList& config ) break; } - if ( !addEntry( CalamaresUtils::getString( pentry, "name" ), - CalamaresUtils::getString( pentry, "uuid" ), - CalamaresUtils::getString( pentry, "type" ), - CalamaresUtils::getUnsignedInteger( pentry, "attributes", 0 ), - CalamaresUtils::getString( pentry, "mountPoint" ), - CalamaresUtils::getString( pentry, "filesystem" ), - CalamaresUtils::getSubMap( pentry, "features", ok ), - CalamaresUtils::getString( pentry, "size", QStringLiteral( "0" ) ), - CalamaresUtils::getString( pentry, "minSize", QStringLiteral( "0" ) ), - CalamaresUtils::getString( pentry, "maxSize", QStringLiteral( "0" ) ) ) ) + if ( !addEntry( { CalamaresUtils::getString( pentry, "name" ), + CalamaresUtils::getString( pentry, "uuid" ), + CalamaresUtils::getString( pentry, "type" ), + CalamaresUtils::getUnsignedInteger( pentry, "attributes", 0 ), + CalamaresUtils::getString( pentry, "mountPoint" ), + CalamaresUtils::getString( pentry, "filesystem" ), + CalamaresUtils::getSubMap( pentry, "features", ok ), + CalamaresUtils::getString( pentry, "size", QStringLiteral( "0" ) ), + CalamaresUtils::getString( pentry, "minSize", QStringLiteral( "0" ) ), + CalamaresUtils::getString( pentry, "maxSize", QStringLiteral( "0" ) ) } ) ) { cError() << "Partition layout entry #" << config.indexOf( r ) << "is invalid, switching to default layout."; m_partLayout.clear(); @@ -176,7 +162,7 @@ PartitionLayout::init( const QVariantList& config ) if ( !m_partLayout.count() ) { - addEntry( QString( "/" ), QString( "100%" ) ); + addEntry( { QString( "/" ), QString( "100%" ) } ); } } diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index b3c317d50..b27adccec 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -44,8 +44,24 @@ public: /// @brief All-zeroes PartitionEntry PartitionEntry(); - /// @brief Parse @p size, @p min and @p max to their respective member variables - PartitionEntry( const QString& size, const QString& min, const QString& max ); + /// @brief Parse @p mountPoint, @p size, @p minSize and @p maxSize to their respective member variables + PartitionEntry( const QString& mountPoint, + const QString& size, + const QString& minSize = QString(), + const QString& maxSize = QString() ); + /// @brief All-field PartitionEntry + PartitionEntry( const QString& label, + const QString& uuid, + const QString& type, + quint64 attributes, + const QString& mountPoint, + const QString& fs, + const QVariantMap& features, + const QString& size, + const QString& minSize = QString(), + const QString& maxSize = QString() ); + /// @brief Copy PartitionEntry + PartitionEntry( const PartitionEntry& e ); bool isValid() const { @@ -63,20 +79,7 @@ public: ~PartitionLayout(); void init( const QVariantList& config ); - bool addEntry( const QString& mountPoint, - const QString& size, - const QString& min = QString(), - const QString& max = QString() ); - bool addEntry( const QString& label, - const QString& uuid, - const QString& type, - quint64 attributes, - const QString& mountPoint, - const QString& fs, - const QVariantMap& features, - const QString& size, - const QString& min = QString(), - const QString& max = QString() ); + bool addEntry( const PartitionEntry& entry ); /** * @brief Apply the current partition layout to the selected drive space. diff --git a/src/modules/partition/partition.conf b/src/modules/partition/partition.conf index bfedddfca..0f8764bfd 100644 --- a/src/modules/partition/partition.conf +++ b/src/modules/partition/partition.conf @@ -154,7 +154,19 @@ defaultFileSystemType: "ext4" # If nothing is specified, LUKS is enabled in automated modes. #enableLuksAutomatedPartitioning: true -# To apply a custom partition layout, it has to be defined this way : +# Partition layout. +# +# This optional setting specifies a custom partition layout. +# +# If nothing is specified, the default partition layout is a single partition +# for root that uses 100% of the space and uses the filesystem defined by +# defaultFileSystemType. +# +# Note: the EFI system partition is prepend automatically to the layout if +# needed; the swap partition is appended to the layout if enabled (small of +# suspend). +# +# Otherwise, the partition layout is defined as follow: # # partitionLayout: # - name: "rootfs" diff --git a/src/modules/partition/tests/CreateLayoutsTests.cpp b/src/modules/partition/tests/CreateLayoutsTests.cpp index 12c19db5f..2c173fa79 100644 --- a/src/modules/partition/tests/CreateLayoutsTests.cpp +++ b/src/modules/partition/tests/CreateLayoutsTests.cpp @@ -61,7 +61,7 @@ CreateLayoutsTests::testFixedSizePartition() PartitionRole role( PartitionRole::Role::Any ); QList< Partition* > partitions; - if ( !layout.addEntry( QString( "/" ), QString( "5MiB" ) ) ) + if ( !layout.addEntry( { QString( "/" ), QString( "5MiB" ) } ) ) { QFAIL( qPrintable( "Unable to create / partition" ) ); } @@ -81,7 +81,7 @@ CreateLayoutsTests::testPercentSizePartition() PartitionRole role( PartitionRole::Role::Any ); QList< Partition* > partitions; - if ( !layout.addEntry( QString( "/" ), QString( "50%" ) ) ) + if ( !layout.addEntry( { QString( "/" ), QString( "50%" ) } ) ) { QFAIL( qPrintable( "Unable to create / partition" ) ); } @@ -101,17 +101,17 @@ CreateLayoutsTests::testMixedSizePartition() PartitionRole role( PartitionRole::Role::Any ); QList< Partition* > partitions; - if ( !layout.addEntry( QString( "/" ), QString( "5MiB" ) ) ) + if ( !layout.addEntry( { QString( "/" ), QString( "5MiB" ) } ) ) { QFAIL( qPrintable( "Unable to create / partition" ) ); } - if ( !layout.addEntry( QString( "/home" ), QString( "50%" ) ) ) + if ( !layout.addEntry( { QString( "/home" ), QString( "50%" ) } ) ) { QFAIL( qPrintable( "Unable to create /home partition" ) ); } - if ( !layout.addEntry( QString( "/bkup" ), QString( "50%" ) ) ) + if ( !layout.addEntry( { QString( "/bkup" ), QString( "50%" ) } ) ) { QFAIL( qPrintable( "Unable to create /bkup partition" ) ); } From 3016b93c8f7a547a90b52efb6b8fd7d5872cc09e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Mon, 22 Jun 2020 10:36:20 -0400 Subject: [PATCH 07/12] [partition] Simplify the method execute - Rename the "size" locals using "sectors" in their name. Size may be confusing or not enough specific as it can be interpreted a size in Byte. partSizeMap -> partSectorsMap, totalSize -> totalSectors, availablesize -> availableSectors, size -> sectors, minSize -> minSectors maxSize -> maxSectors - Create a the new local currentSector to iterate over the sectors; instead of using the parameter firstSector. - Remove the variable end that does not help much; too many variable already. Expand its expression instead. --- .../partition/core/PartitionLayout.cpp | 111 ++++++------------ 1 file changed, 37 insertions(+), 74 deletions(-) diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 397d64c85..e5f8479b9 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -176,11 +176,12 @@ PartitionLayout::execute( Device* dev, { QList< Partition* > partList; // Map each partition entry to its requested size (0 when calculated later) - QMap< const PartitionLayout::PartitionEntry*, qint64 > partSizeMap; - qint64 totalSize = lastSector - firstSector + 1; - qint64 availableSize = totalSize; + QMap< const PartitionLayout::PartitionEntry*, qint64 > partSectorsMap; + const qint64 totalSectors = lastSector - firstSector + 1; + qint64 currentSector, availableSectors = totalSectors; - // Let's check if we have enough space for each partSize + // Let's check if we have enough space for each partitions, using the size + // propery or the min-size property if unit is in percentage. for ( const auto& part : qAsConst( m_partLayout ) ) { if ( !part.partSize.isValid() ) @@ -191,118 +192,80 @@ PartitionLayout::execute( Device* dev, // Calculate partition size: Rely on "possibly uninitialized use" // warnings to ensure that all the cases are covered below. - qint64 size; // We need to ignore the percent-defined until later + qint64 sectors = 0; if ( part.partSize.unit() != CalamaresUtils::Partition::SizeUnit::Percent ) { - size = part.partSize.toSectors( totalSize, dev->logicalSize() ); + sectors = part.partSize.toSectors( totalSectors, dev->logicalSize() ); } - else + else if ( part.partMinSize.isValid() ) { - if ( part.partMinSize.isValid() ) - { - size = part.partMinSize.toSectors( totalSize, dev->logicalSize() ); - } - else - { - size = 0; - } + sectors = part.partMinSize.toSectors( totalSectors, dev->logicalSize() ); } - - partSizeMap.insert( &part, size ); - availableSize -= size; + partSectorsMap.insert( &part, sectors ); + availableSectors -= sectors; } - // Use partMinSize and see if we can do better afterward. - if ( availableSize < 0 ) + // There is not enough space for all partitions, use the min-size property + // and see if we can do better afterward. + if ( availableSectors < 0 ) { - availableSize = totalSize; + availableSectors = totalSectors; for ( const auto& part : qAsConst( m_partLayout ) ) { - qint64 size; - + qint64 sectors = partSectorsMap.value( &part ); if ( part.partMinSize.isValid() ) { - size = part.partMinSize.toSectors( totalSize, dev->logicalSize() ); + sectors = part.partMinSize.toSectors( totalSectors, dev->logicalSize() ); + partSectorsMap.insert( &part, sectors ); } - else if ( part.partSize.isValid() ) - { - if ( part.partSize.unit() != CalamaresUtils::Partition::SizeUnit::Percent ) - { - size = part.partSize.toSectors( totalSize, dev->logicalSize() ); - } - else - { - size = 0; - } - } - else - { - size = 0; - } - - partSizeMap.insert( &part, size ); - availableSize -= size; + availableSectors -= sectors; } } - // Assign size for percentage-defined partitions + // Assign sectors for percentage-defined partitions. for ( const auto& part : qAsConst( m_partLayout ) ) { if ( part.partSize.unit() == CalamaresUtils::Partition::SizeUnit::Percent ) { - qint64 size = partSizeMap.value( &part ); - size = part.partSize.toSectors( availableSize + size, dev->logicalSize() ); + qint64 sectors = part.partSize.toSectors( availableSectors + partSectorsMap.value( &part ), + dev->logicalSize() ); if ( part.partMinSize.isValid() ) { - qint64 minSize = part.partMinSize.toSectors( totalSize, dev->logicalSize() ); - if ( minSize > size ) - { - size = minSize; - } + sectors = std::max( sectors, part.partMinSize.toSectors( totalSectors, dev->logicalSize() ) ); } if ( part.partMaxSize.isValid() ) { - qint64 maxSize = part.partMaxSize.toSectors( totalSize, dev->logicalSize() ); - if ( maxSize < size ) - { - size = maxSize; - } + sectors = std::min( sectors, part.partMaxSize.toSectors( totalSectors, dev->logicalSize() ) ); } - - partSizeMap.insert( &part, size ); + partSectorsMap.insert( &part, sectors ); } } - availableSize = totalSize; - - // TODO: Refine partition sizes to make sure there is room for every partition - // Use a default (200-500M ?) minimum size for partition without minSize - + // Create the partitions. + currentSector = firstSector; + availableSectors = totalSectors; for ( const auto& part : qAsConst( m_partLayout ) ) { - qint64 size, end; Partition* currentPartition = nullptr; - size = partSizeMap.value( &part ); - - // Adjust partition size based on available space - if ( size > availableSize ) + // Adjust partition size based on available space. + qint64 sectors = partSectorsMap.value( &part ); + sectors = std::min( sectors, availableSectors ); + if ( sectors == 0 ) { - size = availableSize; + continue; } - end = firstSector + std::max( size - 1, Q_INT64_C( 0 ) ); - if ( luksPassphrase.isEmpty() ) { currentPartition = KPMHelpers::createNewPartition( - parent, *dev, role, part.partFileSystem, firstSector, end, KPM_PARTITION_FLAG( None ) ); + parent, *dev, role, part.partFileSystem, currentSector, currentSector + sectors - 1, KPM_PARTITION_FLAG( None ) ); } else { currentPartition = KPMHelpers::createNewEncryptedPartition( - parent, *dev, role, part.partFileSystem, firstSector, end, luksPassphrase, KPM_PARTITION_FLAG( None ) ); + parent, *dev, role, part.partFileSystem, currentSector, currentSector + sectors - 1, luksPassphrase, KPM_PARTITION_FLAG( None ) ); } PartitionInfo::setFormat( currentPartition, true ); PartitionInfo::setMountPoint( currentPartition, part.partMountPoint ); @@ -345,8 +308,8 @@ PartitionLayout::execute( Device* dev, // Some buggy (legacy) BIOSes test if the bootflag of at least one partition is set. // Otherwise they ignore the device in boot-order, so add it here. partList.append( currentPartition ); - firstSector = end + 1; - availableSize -= size; + currentSector += sectors; + availableSectors -= sectors; } return partList; From 32c1f81fbfdef2d638a800927ea29062b28c6279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Mon, 22 Jun 2020 13:56:57 -0400 Subject: [PATCH 08/12] [partition] Rename iterator in for loop to entry --- .../partition/core/PartitionLayout.cpp | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index e5f8479b9..2be7d64fd 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -182,11 +182,11 @@ PartitionLayout::execute( Device* dev, // Let's check if we have enough space for each partitions, using the size // propery or the min-size property if unit is in percentage. - for ( const auto& part : qAsConst( m_partLayout ) ) + for ( const auto& entry : qAsConst( m_partLayout ) ) { - if ( !part.partSize.isValid() ) + if ( !entry.partSize.isValid() ) { - cWarning() << "Partition" << part.partMountPoint << "size is invalid, skipping..."; + cWarning() << "Partition" << entry.partMountPoint << "size is invalid, skipping..."; continue; } @@ -194,15 +194,15 @@ PartitionLayout::execute( Device* dev, // warnings to ensure that all the cases are covered below. // We need to ignore the percent-defined until later qint64 sectors = 0; - if ( part.partSize.unit() != CalamaresUtils::Partition::SizeUnit::Percent ) + if ( entry.partSize.unit() != CalamaresUtils::Partition::SizeUnit::Percent ) { - sectors = part.partSize.toSectors( totalSectors, dev->logicalSize() ); + sectors = entry.partSize.toSectors( totalSectors, dev->logicalSize() ); } - else if ( part.partMinSize.isValid() ) + else if ( entry.partMinSize.isValid() ) { - sectors = part.partMinSize.toSectors( totalSectors, dev->logicalSize() ); + sectors = entry.partMinSize.toSectors( totalSectors, dev->logicalSize() ); } - partSectorsMap.insert( &part, sectors ); + partSectorsMap.insert( &entry, sectors ); availableSectors -= sectors; } @@ -211,46 +211,46 @@ PartitionLayout::execute( Device* dev, if ( availableSectors < 0 ) { availableSectors = totalSectors; - for ( const auto& part : qAsConst( m_partLayout ) ) + for ( const auto& entry : qAsConst( m_partLayout ) ) { - qint64 sectors = partSectorsMap.value( &part ); - if ( part.partMinSize.isValid() ) + qint64 sectors = partSectorsMap.value( &entry ); + if ( entry.partMinSize.isValid() ) { - sectors = part.partMinSize.toSectors( totalSectors, dev->logicalSize() ); - partSectorsMap.insert( &part, sectors ); + sectors = entry.partMinSize.toSectors( totalSectors, dev->logicalSize() ); + partSectorsMap.insert( &entry, sectors ); } availableSectors -= sectors; } } // Assign sectors for percentage-defined partitions. - for ( const auto& part : qAsConst( m_partLayout ) ) + for ( const auto& entry : qAsConst( m_partLayout ) ) { - if ( part.partSize.unit() == CalamaresUtils::Partition::SizeUnit::Percent ) + if ( entry.partSize.unit() == CalamaresUtils::Partition::SizeUnit::Percent ) { - qint64 sectors = part.partSize.toSectors( availableSectors + partSectorsMap.value( &part ), + qint64 sectors = entry.partSize.toSectors( availableSectors + partSectorsMap.value( &entry ), dev->logicalSize() ); - if ( part.partMinSize.isValid() ) + if ( entry.partMinSize.isValid() ) { - sectors = std::max( sectors, part.partMinSize.toSectors( totalSectors, dev->logicalSize() ) ); + sectors = std::max( sectors, entry.partMinSize.toSectors( totalSectors, dev->logicalSize() ) ); } - if ( part.partMaxSize.isValid() ) + if ( entry.partMaxSize.isValid() ) { - sectors = std::min( sectors, part.partMaxSize.toSectors( totalSectors, dev->logicalSize() ) ); + sectors = std::min( sectors, entry.partMaxSize.toSectors( totalSectors, dev->logicalSize() ) ); } - partSectorsMap.insert( &part, sectors ); + partSectorsMap.insert( &entry, sectors ); } } // Create the partitions. currentSector = firstSector; availableSectors = totalSectors; - for ( const auto& part : qAsConst( m_partLayout ) ) + for ( const auto& entry : qAsConst( m_partLayout ) ) { Partition* currentPartition = nullptr; // Adjust partition size based on available space. - qint64 sectors = partSectorsMap.value( &part ); + qint64 sectors = partSectorsMap.value( &entry ); sectors = std::min( sectors, availableSectors ); if ( sectors == 0 ) { @@ -260,46 +260,46 @@ PartitionLayout::execute( Device* dev, if ( luksPassphrase.isEmpty() ) { currentPartition = KPMHelpers::createNewPartition( - parent, *dev, role, part.partFileSystem, currentSector, currentSector + sectors - 1, KPM_PARTITION_FLAG( None ) ); + parent, *dev, role, entry.partFileSystem, currentSector, currentSector + sectors - 1, KPM_PARTITION_FLAG( None ) ); } else { currentPartition = KPMHelpers::createNewEncryptedPartition( - parent, *dev, role, part.partFileSystem, currentSector, currentSector + sectors - 1, luksPassphrase, KPM_PARTITION_FLAG( None ) ); + parent, *dev, role, entry.partFileSystem, currentSector, currentSector + sectors - 1, luksPassphrase, KPM_PARTITION_FLAG( None ) ); } PartitionInfo::setFormat( currentPartition, true ); - PartitionInfo::setMountPoint( currentPartition, part.partMountPoint ); - if ( !part.partLabel.isEmpty() ) + PartitionInfo::setMountPoint( currentPartition, entry.partMountPoint ); + if ( !entry.partLabel.isEmpty() ) { - currentPartition->setLabel( part.partLabel ); - currentPartition->fileSystem().setLabel( part.partLabel ); + currentPartition->setLabel( entry.partLabel ); + currentPartition->fileSystem().setLabel( entry.partLabel ); } - if ( !part.partUUID.isEmpty() ) + if ( !entry.partUUID.isEmpty() ) { - currentPartition->setUUID( part.partUUID ); + currentPartition->setUUID( entry.partUUID ); } - if ( !part.partType.isEmpty() ) + if ( !entry.partType.isEmpty() ) { #if defined( WITH_KPMCORE42API ) - currentPartition->setType( part.partType ); + currentPartition->setType( entry.partType ); #else cWarning() << "Ignoring type; requires KPMcore >= 4.2.0."; #endif } - if ( part.partAttributes ) + if ( entry.partAttributes ) { #if defined( WITH_KPMCORE42API ) - currentPartition->setAttributes( part.partAttributes ); + currentPartition->setAttributes( entry.partAttributes ); #else cWarning() << "Ignoring attributes; requires KPMcore >= 4.2.0."; #endif } - if ( !part.partFeatures.isEmpty() ) + if ( !entry.partFeatures.isEmpty() ) { #if defined( WITH_KPMCORE42API ) - for ( const auto& k : part.partFeatures.keys() ) + for ( const auto& k : entry.partFeatures.keys() ) { - currentPartition->fileSystem().addFeature( k, part.partFeatures.value( k ) ); + currentPartition->fileSystem().addFeature( k, entry.partFeatures.value( k ) ); } #else cWarning() << "Ignoring features; requires KPMcore >= 4.2.0."; From 20073358658553aec5e595d9ebec9db03b0326d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Mon, 22 Jun 2020 16:34:06 -0400 Subject: [PATCH 09/12] [partition] Rename the KPMCore Partition local to part --- .../partition/core/PartitionLayout.cpp | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 2be7d64fd..b02cdfaf4 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -247,8 +247,6 @@ PartitionLayout::execute( Device* dev, availableSectors = totalSectors; for ( const auto& entry : qAsConst( m_partLayout ) ) { - Partition* currentPartition = nullptr; - // Adjust partition size based on available space. qint64 sectors = partSectorsMap.value( &entry ); sectors = std::min( sectors, availableSectors ); @@ -257,31 +255,32 @@ PartitionLayout::execute( Device* dev, continue; } + Partition* part = nullptr; if ( luksPassphrase.isEmpty() ) { - currentPartition = KPMHelpers::createNewPartition( + part = KPMHelpers::createNewPartition( parent, *dev, role, entry.partFileSystem, currentSector, currentSector + sectors - 1, KPM_PARTITION_FLAG( None ) ); } else { - currentPartition = KPMHelpers::createNewEncryptedPartition( + part = KPMHelpers::createNewEncryptedPartition( parent, *dev, role, entry.partFileSystem, currentSector, currentSector + sectors - 1, luksPassphrase, KPM_PARTITION_FLAG( None ) ); } - PartitionInfo::setFormat( currentPartition, true ); - PartitionInfo::setMountPoint( currentPartition, entry.partMountPoint ); + PartitionInfo::setFormat( part, true ); + PartitionInfo::setMountPoint( part, entry.partMountPoint ); if ( !entry.partLabel.isEmpty() ) { - currentPartition->setLabel( entry.partLabel ); - currentPartition->fileSystem().setLabel( entry.partLabel ); + part->setLabel( entry.partLabel ); + part->fileSystem().setLabel( entry.partLabel ); } if ( !entry.partUUID.isEmpty() ) { - currentPartition->setUUID( entry.partUUID ); + part->setUUID( entry.partUUID ); } if ( !entry.partType.isEmpty() ) { #if defined( WITH_KPMCORE42API ) - currentPartition->setType( entry.partType ); + part->setType( entry.partType ); #else cWarning() << "Ignoring type; requires KPMcore >= 4.2.0."; #endif @@ -289,7 +288,7 @@ PartitionLayout::execute( Device* dev, if ( entry.partAttributes ) { #if defined( WITH_KPMCORE42API ) - currentPartition->setAttributes( entry.partAttributes ); + part->setAttributes( entry.partAttributes ); #else cWarning() << "Ignoring attributes; requires KPMcore >= 4.2.0."; #endif @@ -299,7 +298,7 @@ PartitionLayout::execute( Device* dev, #if defined( WITH_KPMCORE42API ) for ( const auto& k : entry.partFeatures.keys() ) { - currentPartition->fileSystem().addFeature( k, entry.partFeatures.value( k ) ); + part->fileSystem().addFeature( k, entry.partFeatures.value( k ) ); } #else cWarning() << "Ignoring features; requires KPMcore >= 4.2.0."; @@ -307,7 +306,7 @@ PartitionLayout::execute( Device* dev, } // Some buggy (legacy) BIOSes test if the bootflag of at least one partition is set. // Otherwise they ignore the device in boot-order, so add it here. - partList.append( currentPartition ); + partList.append( part ); currentSector += sectors; availableSectors -= sectors; } From cd725fbb4b43aa8c9f7f52353b31c88f04d90c3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Thu, 29 Oct 2020 09:23:28 -0400 Subject: [PATCH 10/12] Fix missing SPDX-FileCopyrightText in header --- src/modules/partition/core/PartUtils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/partition/core/PartUtils.cpp b/src/modules/partition/core/PartUtils.cpp index a514b9c34..084b7f8f5 100644 --- a/src/modules/partition/core/PartUtils.cpp +++ b/src/modules/partition/core/PartUtils.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac - * Copyright 2018-2019 Adriaan de Groot + * SPDX-FileCopyrightText: 2018-2019 Adriaan de Groot * SPDX-FileCopyrightText: 2019 Collabora Ltd * SPDX-License-Identifier: GPL-3.0-or-later * From f2bfe2bd6a9c20a115f2780efb1fa5bc8356f01e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Fri, 30 Oct 2020 10:01:29 -0400 Subject: [PATCH 11/12] [partition] Fix coding style --- src/modules/partition/core/PartUtils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/partition/core/PartUtils.cpp b/src/modules/partition/core/PartUtils.cpp index 084b7f8f5..07ab5acc1 100644 --- a/src/modules/partition/core/PartUtils.cpp +++ b/src/modules/partition/core/PartUtils.cpp @@ -59,7 +59,7 @@ convenienceName( const Partition* const candidate ) QString p; QTextStream s( &p ); - s << static_cast(candidate); // No good name available, use pointer address + s << static_cast< const void* >( candidate ); // No good name available, use pointer address return p; } From f03ae06deb42c593a0fa9ad524305e28d55e0d31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20PORTAY?= Date: Fri, 30 Oct 2020 10:15:30 -0400 Subject: [PATCH 12/12] [partition] Rename execute to createPartitions --- src/modules/partition/core/PartitionCoreModule.cpp | 2 +- src/modules/partition/core/PartitionLayout.cpp | 12 ++++++------ src/modules/partition/core/PartitionLayout.h | 12 ++++++------ src/modules/partition/tests/CreateLayoutsTests.cpp | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index e97aff9fa..706f99017 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -875,7 +875,7 @@ PartitionCoreModule::layoutApply( Device* dev, const PartitionRole& role ) { bool isEfi = PartUtils::isEfiSystem(); - QList< Partition* > partList = m_partLayout.execute( dev, firstSector, lastSector, luksPassphrase, parent, role ); + QList< Partition* > partList = m_partLayout.createPartitions( dev, firstSector, lastSector, luksPassphrase, parent, role ); // Partition::mountPoint() tells us where it is mounted **now**, while // PartitionInfo::mountPoint() says where it will be mounted in the target system. diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index b02cdfaf4..15b18da93 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -167,12 +167,12 @@ PartitionLayout::init( const QVariantList& config ) } QList< Partition* > -PartitionLayout::execute( Device* dev, - qint64 firstSector, - qint64 lastSector, - QString luksPassphrase, - PartitionNode* parent, - const PartitionRole& role ) +PartitionLayout::createPartitions( Device* dev, + qint64 firstSector, + qint64 lastSector, + QString luksPassphrase, + PartitionNode* parent, + const PartitionRole& role ) { QList< Partition* > partList; // Map each partition entry to its requested size (0 when calculated later) diff --git a/src/modules/partition/core/PartitionLayout.h b/src/modules/partition/core/PartitionLayout.h index b27adccec..9720ab765 100644 --- a/src/modules/partition/core/PartitionLayout.h +++ b/src/modules/partition/core/PartitionLayout.h @@ -85,12 +85,12 @@ public: * @brief Apply the current partition layout to the selected drive space. * @return A list of Partition objects. */ - QList< Partition* > execute( Device* dev, - qint64 firstSector, - qint64 lastSector, - QString luksPassphrase, - PartitionNode* parent, - const PartitionRole& role ); + QList< Partition* > createPartitions( Device* dev, + qint64 firstSector, + qint64 lastSector, + QString luksPassphrase, + PartitionNode* parent, + const PartitionRole& role ); private: FileSystem::Type m_defaultFsType; diff --git a/src/modules/partition/tests/CreateLayoutsTests.cpp b/src/modules/partition/tests/CreateLayoutsTests.cpp index 2c173fa79..6a56eee99 100644 --- a/src/modules/partition/tests/CreateLayoutsTests.cpp +++ b/src/modules/partition/tests/CreateLayoutsTests.cpp @@ -66,7 +66,7 @@ CreateLayoutsTests::testFixedSizePartition() QFAIL( qPrintable( "Unable to create / partition" ) ); } - partitions = layout.execute( static_cast< Device* >( &dev ), 0, dev.totalLogical(), nullptr, nullptr, role ); + partitions = layout.createPartitions( static_cast< Device* >( &dev ), 0, dev.totalLogical(), nullptr, nullptr, role ); QCOMPARE( partitions.count(), 1 ); @@ -86,7 +86,7 @@ CreateLayoutsTests::testPercentSizePartition() QFAIL( qPrintable( "Unable to create / partition" ) ); } - partitions = layout.execute( static_cast< Device* >( &dev ), 0, dev.totalLogical(), nullptr, nullptr, role ); + partitions = layout.createPartitions( static_cast< Device* >( &dev ), 0, dev.totalLogical(), nullptr, nullptr, role ); QCOMPARE( partitions.count(), 1 ); @@ -116,7 +116,7 @@ CreateLayoutsTests::testMixedSizePartition() QFAIL( qPrintable( "Unable to create /bkup partition" ) ); } - partitions = layout.execute( static_cast< Device* >( &dev ), 0, dev.totalLogical(), nullptr, nullptr, role ); + partitions = layout.createPartitions( static_cast< Device* >( &dev ), 0, dev.totalLogical(), nullptr, nullptr, role ); QCOMPARE( partitions.count(), 3 );