diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index e79fc21e4..16e7c7f34 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -772,17 +772,30 @@ PartitionCoreModule::initLayout() void PartitionCoreModule::initLayout( const QVariantList& config ) { + QString sizeString; + QString minSizeString; + m_partLayout = new PartitionLayout(); for ( const auto& r : config ) { QVariantMap pentry = r.toMap(); + 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" ); + m_partLayout->addEntry( CalamaresUtils::getString( pentry, "name" ), CalamaresUtils::getString( pentry, "mountPoint" ), CalamaresUtils::getString( pentry, "filesystem" ), - CalamaresUtils::getString( pentry, "size" ), - CalamaresUtils::getString( pentry, "minSize" ) + sizeString, + minSizeString ); } } diff --git a/src/modules/partition/core/PartitionLayout.cpp b/src/modules/partition/core/PartitionLayout.cpp index 77ef4bb81..f8ff79d2c 100644 --- a/src/modules/partition/core/PartitionLayout.cpp +++ b/src/modules/partition/core/PartitionLayout.cpp @@ -57,11 +57,18 @@ parseSizeString( QString sizeString, PartitionLayout::SizeUnit *unit ) { double value; bool ok; + QString valueString; + QString unitString; QRegExp rx( "[KkMmGg%]" ); int pos = rx.indexIn( sizeString ); - QString valueString = sizeString.mid( 0, pos ); - QString unitString = sizeString.mid( pos ); + if (pos > 0) + { + valueString = sizeString.mid( 0, pos ); + unitString = sizeString.mid( pos ); + } + else + valueString = sizeString; value = valueString.toDouble( &ok ); if ( !ok ) @@ -103,7 +110,10 @@ PartitionLayout::addEntry( QString mountPoint, QString size, QString min ) entry.partMountPoint = mountPoint; entry.partFileSystem = FileSystem::Ext4; entry.partSize = parseSizeString( size , &entry.partSizeUnit ); - entry.partMinSize = parseSizeString( min , &entry.partMinSizeUnit ); + if (min.isEmpty()) + entry.partMinSize = 0; + else + entry.partMinSize = parseSizeString( min , &entry.partMinSizeUnit ); partLayout.append( entry ); } @@ -117,7 +127,10 @@ PartitionLayout::addEntry( QString label, QString mountPoint, QString fs, QStrin entry.partMountPoint = mountPoint; entry.partFileSystem = FileSystem::typeForName( fs ); entry.partSize = parseSizeString( size , &entry.partSizeUnit ); - entry.partMinSize = parseSizeString( min , &entry.partMinSizeUnit ); + if (min.isEmpty()) + entry.partMinSize = 0; + else + entry.partMinSize = parseSizeString( min , &entry.partMinSizeUnit ); partLayout.append( entry ); }