Split out a canBeResized overload that takes a Partition*.

This commit is contained in:
Teo Mrnjavac 2016-02-11 16:52:21 +01:00
parent 984bc7ac08
commit 01eede3f6e
2 changed files with 38 additions and 27 deletions

View File

@ -35,23 +35,8 @@ namespace PartUtils
{
bool
canBeResized( PartitionCoreModule* core, const QString& partitionPath )
canBeResized( Partition* candidate )
{
//FIXME: check for max partitions count on DOS MBR
cDebug() << "checking if" << partitionPath << "can be resized.";
QString partitionWithOs = partitionPath;
if ( partitionWithOs.startsWith( "/dev/" ) )
{
cDebug() << partitionWithOs << "seems like a good path";
bool canResize = false;
DeviceModel* dm = core->deviceModel();
for ( int i = 0; i < dm->rowCount(); ++i )
{
Device* dev = dm->deviceForIndex( dm->index( i ) );
Partition* candidate = KPMHelpers::findPartitionByPath( { dev }, partitionWithOs );
if ( candidate )
{
cDebug() << "found Partition* for" << partitionWithOs;
if ( !candidate->fileSystem().supportGrow() ||
!candidate->fileSystem().supportShrink() )
return false;
@ -75,10 +60,33 @@ canBeResized( PartitionCoreModule* core, const QString& partitionPath )
if ( ok &&
availableStorageB > requiredStorageB )
{
cDebug() << "Partition" << partitionWithOs << "authorized for resize + autopartition install.";
cDebug() << "Partition" << candidate->partitionPath() << "authorized for resize + autopartition install.";
return true;
}
return false;
}
bool
canBeResized( PartitionCoreModule* core, const QString& partitionPath )
{
//FIXME: check for max partitions count on DOS MBR
cDebug() << "checking if" << partitionPath << "can be resized.";
QString partitionWithOs = partitionPath;
if ( partitionWithOs.startsWith( "/dev/" ) )
{
cDebug() << partitionWithOs << "seems like a good path";
bool canResize = false;
DeviceModel* dm = core->deviceModel();
for ( int i = 0; i < dm->rowCount(); ++i )
{
Device* dev = dm->deviceForIndex( dm->index( i ) );
Partition* candidate = KPMHelpers::findPartitionByPath( { dev }, partitionWithOs );
if ( candidate )
{
cDebug() << "found Partition* for" << partitionWithOs;
return canBeResized( candidate );
}
}
}

View File

@ -24,10 +24,13 @@
#include <QString>
class PartitionCoreModule;
class Partition;
namespace PartUtils
{
bool canBeResized( Partition* candidate );
bool canBeResized( PartitionCoreModule* core, const QString& partitionPath );
OsproberEntryList runOsprober( PartitionCoreModule* core );