mirror of
https://github.com/parchlinux/calamares.git
synced 2025-06-27 09:25:36 -04:00
Switch to using PartSize class for partition sizes
Every call of `ParseStringSize` is replaced by using an instance of the `PartUtils::PartSize` class. This commit also removes the now-unused previous size parsing functions. Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
This commit is contained in:
parent
3a58ae5e8b
commit
d32733bf59
5 changed files with 17 additions and 124 deletions
|
@ -694,99 +694,6 @@ findFS( QString fsName, FileSystem::Type* fsType )
|
|||
return fsName;
|
||||
}
|
||||
|
||||
static qint64
|
||||
sizeToBytes( double size, SizeUnit unit, qint64 totalSize )
|
||||
{
|
||||
qint64 bytes;
|
||||
|
||||
switch ( unit )
|
||||
{
|
||||
case SizeUnit::Percent:
|
||||
bytes = qint64( static_cast<double>( totalSize ) * size / 100.0L );
|
||||
break;
|
||||
case SizeUnit::KiB:
|
||||
bytes = CalamaresUtils::KiBtoBytes(size);
|
||||
break;
|
||||
case SizeUnit::MiB:
|
||||
bytes = CalamaresUtils::MiBtoBytes(size);
|
||||
break;
|
||||
case SizeUnit::GiB:
|
||||
bytes = CalamaresUtils::GiBtoBytes(size);
|
||||
break;
|
||||
default:
|
||||
bytes = size;
|
||||
break;
|
||||
}
|
||||
|
||||
return bytes;
|
||||
}
|
||||
|
||||
double
|
||||
parseSizeString( const QString& sizeString, SizeUnit* unit )
|
||||
{
|
||||
double value;
|
||||
bool ok;
|
||||
QString valueString;
|
||||
QString unitString;
|
||||
|
||||
QRegExp rx( "[KkMmGg%]" );
|
||||
int pos = rx.indexIn( sizeString );
|
||||
if (pos > 0)
|
||||
{
|
||||
valueString = sizeString.mid( 0, pos );
|
||||
unitString = sizeString.mid( pos );
|
||||
}
|
||||
else
|
||||
valueString = sizeString;
|
||||
|
||||
value = valueString.toDouble( &ok );
|
||||
if ( !ok )
|
||||
{
|
||||
/*
|
||||
* In case the conversion fails, a size of 100% allows a few cases to pass
|
||||
* anyway (e.g. when it is the last partition of the layout)
|
||||
*/
|
||||
*unit = SizeUnit::Percent;
|
||||
return 100.0L;
|
||||
}
|
||||
|
||||
if ( unitString.length() > 0 )
|
||||
{
|
||||
if ( unitString.at(0) == '%' )
|
||||
*unit = SizeUnit::Percent;
|
||||
else if ( unitString.at(0).toUpper() == 'K' )
|
||||
*unit = SizeUnit::KiB;
|
||||
else if ( unitString.at(0).toUpper() == 'M' )
|
||||
*unit = SizeUnit::MiB;
|
||||
else if ( unitString.at(0).toUpper() == 'G' )
|
||||
*unit = SizeUnit::GiB;
|
||||
else
|
||||
*unit = SizeUnit::Byte;
|
||||
}
|
||||
else
|
||||
{
|
||||
*unit = SizeUnit::Byte;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
qint64
|
||||
parseSizeString( const QString& sizeString, qint64 totalSize )
|
||||
{
|
||||
SizeUnit unit;
|
||||
double value = parseSizeString( sizeString, &unit );
|
||||
|
||||
return sizeToBytes( value, unit, totalSize );
|
||||
}
|
||||
|
||||
qint64
|
||||
sizeToSectors( double size, SizeUnit unit, qint64 totalSectors, qint64 logicalSize )
|
||||
{
|
||||
qint64 bytes = sizeToBytes( size, unit, totalSectors * logicalSize );
|
||||
return bytesToSectors( static_cast<unsigned long long>( bytes ), logicalSize );
|
||||
}
|
||||
|
||||
} // nmamespace PartUtils
|
||||
|
||||
/* Implementation of methods for FstabEntry, from OsproberEntry.h */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue