Merge pull request #1117 from a-wai/partition-layout-add-maxsize
[partition] Add max size parameter
This commit is contained in:
commit
547dc7d334
@ -788,6 +788,7 @@ PartitionCoreModule::initLayout( const QVariantList& config )
|
||||
{
|
||||
QString sizeString;
|
||||
QString minSizeString;
|
||||
QString maxSizeString;
|
||||
|
||||
m_partLayout = new PartitionLayout();
|
||||
|
||||
@ -805,11 +806,17 @@ PartitionCoreModule::initLayout( const QVariantList& config )
|
||||
else
|
||||
minSizeString = CalamaresUtils::getString( pentry, "minSize" );
|
||||
|
||||
if ( pentry.contains("maxSize") && CalamaresUtils::getString( pentry, "maxSize" ).isEmpty() )
|
||||
maxSizeString.setNum( CalamaresUtils::getInteger( pentry, "maxSize", 100 ) );
|
||||
else
|
||||
maxSizeString = CalamaresUtils::getString( pentry, "maxSize" );
|
||||
|
||||
m_partLayout->addEntry( CalamaresUtils::getString( pentry, "name" ),
|
||||
CalamaresUtils::getString( pentry, "mountPoint" ),
|
||||
CalamaresUtils::getString( pentry, "filesystem" ),
|
||||
sizeString,
|
||||
minSizeString
|
||||
minSizeString,
|
||||
maxSizeString
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -75,17 +75,19 @@ PartitionLayout::addEntry( PartitionLayout::PartitionEntry entry )
|
||||
m_partLayout.append( entry );
|
||||
}
|
||||
|
||||
PartitionLayout::PartitionEntry::PartitionEntry(const QString& size, const QString& min)
|
||||
PartitionLayout::PartitionEntry::PartitionEntry( const QString& size, const QString& min, const QString& max )
|
||||
{
|
||||
partSize = PartUtils::parseSizeString( size , &partSizeUnit );
|
||||
if ( !min.isEmpty() )
|
||||
partMinSize = PartUtils::parseSizeString( min , &partMinSizeUnit );
|
||||
if ( !max.isEmpty() )
|
||||
partMaxSize = PartUtils::parseSizeString( max , &partMaxSizeUnit );
|
||||
}
|
||||
|
||||
void
|
||||
PartitionLayout::addEntry( const QString& mountPoint, const QString& size, const QString& min )
|
||||
PartitionLayout::addEntry( const QString& mountPoint, const QString& size, const QString& min, const QString& max )
|
||||
{
|
||||
PartitionLayout::PartitionEntry entry( size, min );
|
||||
PartitionLayout::PartitionEntry entry( size, min, max );
|
||||
|
||||
entry.partMountPoint = mountPoint;
|
||||
entry.partFileSystem = m_defaultFsType;
|
||||
@ -94,9 +96,9 @@ PartitionLayout::addEntry( const QString& mountPoint, const QString& size, const
|
||||
}
|
||||
|
||||
void
|
||||
PartitionLayout::addEntry( const QString& label, const QString& mountPoint, const QString& fs, const QString& size, const QString& min )
|
||||
PartitionLayout::addEntry( const QString& label, const QString& mountPoint, const QString& fs, const QString& size, const QString& min, const QString& max )
|
||||
{
|
||||
PartitionLayout::PartitionEntry entry( size, min );
|
||||
PartitionLayout::PartitionEntry entry( size, min, max );
|
||||
|
||||
entry.partLabel = label;
|
||||
entry.partMountPoint = mountPoint;
|
||||
@ -114,7 +116,7 @@ PartitionLayout::execute( Device *dev, qint64 firstSector,
|
||||
const PartitionRole& role )
|
||||
{
|
||||
QList< Partition* > partList;
|
||||
qint64 size, minSize, end;
|
||||
qint64 size, minSize, maxSize, end;
|
||||
qint64 totalSize = lastSector - firstSector + 1;
|
||||
qint64 availableSize = totalSize;
|
||||
|
||||
@ -128,8 +130,11 @@ PartitionLayout::execute( Device *dev, qint64 firstSector,
|
||||
// Calculate partition size
|
||||
size = PartUtils::sizeToSectors( part.partSize, part.partSizeUnit, totalSize, dev->logicalSize() );
|
||||
minSize = PartUtils::sizeToSectors( part.partMinSize, part.partMinSizeUnit, totalSize, dev->logicalSize() );
|
||||
maxSize = PartUtils::sizeToSectors( part.partMaxSize, part.partMaxSizeUnit, totalSize, dev->logicalSize() );
|
||||
if ( size < minSize )
|
||||
size = minSize;
|
||||
if ( size > maxSize )
|
||||
size = maxSize;
|
||||
if ( size > availableSize )
|
||||
size = availableSize;
|
||||
end = firstSector + size - 1;
|
||||
|
@ -47,11 +47,13 @@ public:
|
||||
PartUtils::SizeUnit partSizeUnit = PartUtils::SizeUnit::Percent;
|
||||
double partMinSize = 0.0L;
|
||||
PartUtils::SizeUnit partMinSizeUnit = PartUtils::SizeUnit::Percent;
|
||||
double partMaxSize = 100.0L;
|
||||
PartUtils::SizeUnit partMaxSizeUnit = PartUtils::SizeUnit::Percent;
|
||||
|
||||
/// @brief All-zeroes PartitionEntry
|
||||
PartitionEntry() {};
|
||||
/// @brief Parse @p size and @p min to their respective member variables
|
||||
PartitionEntry( const QString& size, const QString& min );
|
||||
/// @brief Parse @p size, @p min and @p max to their respective member variables
|
||||
PartitionEntry( const QString& size, const QString& min, const QString& max );
|
||||
};
|
||||
|
||||
PartitionLayout();
|
||||
@ -60,8 +62,8 @@ public:
|
||||
~PartitionLayout();
|
||||
|
||||
void addEntry( PartitionEntry entry );
|
||||
void addEntry( const QString& mountPoint, const QString& size, const QString& min = QString() );
|
||||
void addEntry( const QString& label, const QString& mountPoint, const QString& fs, const QString& size, const QString& min = QString() );
|
||||
void addEntry( const QString& mountPoint, const QString& size, const QString& min = QString(), const QString& max = QString() );
|
||||
void addEntry( const QString& label, const QString& mountPoint, const QString& fs, const QString& size, const QString& min = QString(), const QString& max = QString() );
|
||||
|
||||
/**
|
||||
* @brief Apply the current partition layout to the selected drive space.
|
||||
|
@ -100,6 +100,7 @@ defaultFileSystemType: "ext4"
|
||||
# mountPoint: "/"
|
||||
# size: 20%
|
||||
# minSize: 500M
|
||||
# maxSize: 10G
|
||||
# - name: "home"
|
||||
# filesystem: "ext4"
|
||||
# mountPoint: "/home"
|
||||
@ -118,3 +119,4 @@ defaultFileSystemType: "ext4"
|
||||
# or
|
||||
# % of the available drive space if a '%' is appended to the value
|
||||
# - minSize: minimum partition size (optional parameter)
|
||||
# - maxSize: maximum partition size (optional parameter)
|
||||
|
Loading…
Reference in New Issue
Block a user