From 5f54a5651368ab4d18998c040d302a72a7da3d3d Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Fri, 18 Sep 2015 15:41:07 +0200 Subject: [PATCH] PMUtils is now KPMHelpers. Also fixup after PartUtils refactor. --- src/modules/partition/CMakeLists.txt | 3 +- .../partition/core/BootLoaderModel.cpp | 6 +- src/modules/partition/core/ColorUtils.cpp | 14 +-- .../core/{PMUtils.cpp => KPMHelpers.cpp} | 4 +- .../core/{PMUtils.h => KPMHelpers.h} | 8 +- .../partition/{gui => core}/OsproberEntry.h | 0 .../partition/core/PartitionCoreModule.cpp | 8 +- src/modules/partition/core/PartitionModel.cpp | 8 +- src/modules/partition/gui/AlongsidePage.cpp | 8 +- src/modules/partition/gui/AlongsidePage.h | 2 +- src/modules/partition/gui/ChoicePage.cpp | 2 +- src/modules/partition/gui/ChoicePage.h | 2 +- .../partition/gui/CreatePartitionDialog.cpp | 6 +- .../gui/EditExistingPartitionDialog.cpp | 6 +- src/modules/partition/gui/EraseDiskPage.cpp | 8 +- src/modules/partition/gui/PartitionPage.cpp | 8 +- .../partition/gui/PartitionSizeController.cpp | 4 +- .../partition/gui/PartitionViewStep.cpp | 113 +----------------- src/modules/partition/gui/PartitionViewStep.h | 5 - src/modules/partition/gui/ReplacePage.cpp | 4 +- .../partition/jobs/FillGlobalStorageJob.cpp | 4 +- src/modules/partition/tests/CMakeLists.txt | 2 +- .../partition/tests/PartitionJobTests.cpp | 6 +- 23 files changed, 61 insertions(+), 170 deletions(-) rename src/modules/partition/core/{PMUtils.cpp => KPMHelpers.cpp} (98%) rename src/modules/partition/core/{PMUtils.h => KPMHelpers.h} (97%) rename src/modules/partition/{gui => core}/OsproberEntry.h (100%) diff --git a/src/modules/partition/CMakeLists.txt b/src/modules/partition/CMakeLists.txt index 2a96b5a51..c88606a08 100644 --- a/src/modules/partition/CMakeLists.txt +++ b/src/modules/partition/CMakeLists.txt @@ -24,11 +24,12 @@ calamares_add_plugin( partition core/BootLoaderModel.cpp core/ColorUtils.cpp core/DeviceModel.cpp + core/KPMHelpers.cpp core/PartitionCoreModule.cpp core/PartitionInfo.cpp core/PartitionIterator.cpp core/PartitionModel.cpp - core/PMUtils.cpp + core/PartUtils.cpp gui/ChoicePage.cpp gui/CreatePartitionDialog.cpp gui/EditExistingPartitionDialog.cpp diff --git a/src/modules/partition/core/BootLoaderModel.cpp b/src/modules/partition/core/BootLoaderModel.cpp index b94a23e9a..e13f44e81 100644 --- a/src/modules/partition/core/BootLoaderModel.cpp +++ b/src/modules/partition/core/BootLoaderModel.cpp @@ -20,7 +20,7 @@ #include "core/BootLoaderModel.h" #include "core/PartitionInfo.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" // KPMcore #include @@ -71,12 +71,12 @@ BootLoaderModel::update() createMbrItems(); QString partitionText; - Partition* partition = PMUtils::findPartitionByMountPoint( m_devices, "/boot" ); + Partition* partition = KPMHelpers::findPartitionByMountPoint( m_devices, "/boot" ); if ( partition ) partitionText = tr( "Boot Partition" ); else { - partition = PMUtils::findPartitionByMountPoint( m_devices, "/" ); + partition = KPMHelpers::findPartitionByMountPoint( m_devices, "/" ); if ( partition ) partitionText = tr( "System Partition" ); } diff --git a/src/modules/partition/core/ColorUtils.cpp b/src/modules/partition/core/ColorUtils.cpp index 35a7ae511..12b8e5caf 100644 --- a/src/modules/partition/core/ColorUtils.cpp +++ b/src/modules/partition/core/ColorUtils.cpp @@ -19,7 +19,7 @@ #include "core/ColorUtils.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "core/PartitionIterator.h" // KPMcore @@ -74,7 +74,7 @@ _findRootForPartition( PartitionNode* partition ) QColor colorForPartition( Partition* partition ) { - if ( PMUtils::isPartitionFreeSpace( partition ) ) + if ( KPMHelpers::isPartitionFreeSpace( partition ) ) return FREE_SPACE_COLOR; if ( partition->roles().has( PartitionRole::Extended ) ) return EXTENDED_COLOR; @@ -96,17 +96,17 @@ colorForPartition( Partition* partition ) Partition* child = *it; if ( child == partition ) break; - if ( !PMUtils::isPartitionFreeSpace( child ) && + if ( !KPMHelpers::isPartitionFreeSpace( child ) && !child->hasChildren() ) { - if ( PMUtils::isPartitionNew( child ) ) + if ( KPMHelpers::isPartitionNew( child ) ) ++newColorIdx; else ++colorIdx; } } - if ( PMUtils::isPartitionNew( partition ) ) + if ( KPMHelpers::isPartitionNew( partition ) ) return NEW_PARTITION_COLORS[ newColorIdx % NUM_NEW_PARTITION_COLORS ]; s_partitionColorsCache.insert( partition->partitionPath(), @@ -129,9 +129,9 @@ colorForPartitionInFreeSpace( Partition* partition ) Partition* child = *it; if ( child == partition ) break; - if ( !PMUtils::isPartitionFreeSpace( child ) && + if ( !KPMHelpers::isPartitionFreeSpace( child ) && !child->hasChildren() && - PMUtils::isPartitionNew( child ) ) + KPMHelpers::isPartitionNew( child ) ) ++newColorIdx; } return NEW_PARTITION_COLORS[ newColorIdx % NUM_NEW_PARTITION_COLORS ]; diff --git a/src/modules/partition/core/PMUtils.cpp b/src/modules/partition/core/KPMHelpers.cpp similarity index 98% rename from src/modules/partition/core/PMUtils.cpp rename to src/modules/partition/core/KPMHelpers.cpp index f0dc840d4..91f0ae546 100644 --- a/src/modules/partition/core/PMUtils.cpp +++ b/src/modules/partition/core/KPMHelpers.cpp @@ -17,7 +17,7 @@ * along with Calamares. If not, see . */ -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "core/PartitionInfo.h" #include "core/PartitionIterator.h" @@ -30,7 +30,7 @@ #include -namespace PMUtils +namespace KPMHelpers { static bool s_KPMcoreInited = false; diff --git a/src/modules/partition/core/PMUtils.h b/src/modules/partition/core/KPMHelpers.h similarity index 97% rename from src/modules/partition/core/PMUtils.h rename to src/modules/partition/core/KPMHelpers.h index f2683612c..42a1d29f0 100644 --- a/src/modules/partition/core/PMUtils.h +++ b/src/modules/partition/core/KPMHelpers.h @@ -16,8 +16,8 @@ * You should have received a copy of the GNU General Public License * along with Calamares. If not, see . */ -#ifndef PMUTILS_H -#define PMUTILS_H +#ifndef KPMHELPERS_H +#define KPMHELPERS_H // KPMcore #include @@ -35,7 +35,7 @@ class PartitionRole; /** * Helper functions to manipulate partitions */ -namespace PMUtils +namespace KPMHelpers { /** @@ -87,4 +87,4 @@ Partition* createNewPartition( PartitionNode* parent, const Device& device, cons Partition* clonePartition( Device* device, Partition* partition ); } -#endif /* PMUTILS_H */ +#endif /* KPMHELPERS_H */ diff --git a/src/modules/partition/gui/OsproberEntry.h b/src/modules/partition/core/OsproberEntry.h similarity index 100% rename from src/modules/partition/gui/OsproberEntry.h rename to src/modules/partition/core/OsproberEntry.h diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index d1a00ce1c..eba34d5f6 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -24,7 +24,7 @@ #include "core/PartitionInfo.h" #include "core/PartitionIterator.h" #include "core/PartitionModel.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "jobs/ClearMountsJob.h" #include "jobs/ClearTempMountsJob.h" #include "jobs/CreatePartitionJob.h" @@ -96,7 +96,7 @@ PartitionCoreModule::PartitionCoreModule( QObject* parent ) , m_deviceModel( new DeviceModel( this ) ) , m_bootLoaderModel( new BootLoaderModel( this ) ) { - if ( !PMUtils::initKPMcore() ) + if ( !KPMHelpers::initKPMcore() ) qFatal( "Failed to initialize KPMcore backend" ); FileSystemFactory::init(); init(); @@ -216,7 +216,7 @@ PartitionCoreModule::deletePartition( Device* device, Partition* partition ) // deleting them, so let's play it safe and keep our own list. QList< Partition* > lst; for ( auto childPartition : partition->children() ) - if ( !PMUtils::isPartitionFreeSpace( childPartition ) ) + if ( !KPMHelpers::isPartitionFreeSpace( childPartition ) ) lst << childPartition; for ( auto partition : lst ) @@ -416,7 +416,7 @@ PartitionCoreModule::scanForEfiSystemPartitions() // The following findPartitions call and lambda should be scrapped and // rewritten based on libKPM. -- Teo 5/2015 QList< Partition* > efiSystemPartitions = - PMUtils::findPartitions( devices, + KPMHelpers::findPartitions( devices, []( Partition* partition ) -> bool { QProcess process; diff --git a/src/modules/partition/core/PartitionModel.cpp b/src/modules/partition/core/PartitionModel.cpp index b236d130b..49d981f6c 100644 --- a/src/modules/partition/core/PartitionModel.cpp +++ b/src/modules/partition/core/PartitionModel.cpp @@ -20,7 +20,7 @@ #include "core/ColorUtils.h" #include "core/PartitionInfo.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "utils/Logger.h" // CalaPM @@ -132,11 +132,11 @@ PartitionModel::data( const QModelIndex& index, int role ) const int col = index.column(); if ( col == NameColumn ) { - if ( PMUtils::isPartitionFreeSpace( partition ) ) + if ( KPMHelpers::isPartitionFreeSpace( partition ) ) return tr( "Free Space" ); else { - return PMUtils::isPartitionNew( partition ) + return KPMHelpers::isPartitionNew( partition ) ? tr( "New partition" ) : partition->partitionPath(); } @@ -161,7 +161,7 @@ PartitionModel::data( const QModelIndex& index, int role ) const case SizeRole: return ( partition->lastSector() - partition->firstSector() + 1 ) * m_device->logicalSectorSize(); case IsFreeSpaceRole: - return PMUtils::isPartitionFreeSpace( partition ); + return KPMHelpers::isPartitionFreeSpace( partition ); default: return QVariant(); } diff --git a/src/modules/partition/gui/AlongsidePage.cpp b/src/modules/partition/gui/AlongsidePage.cpp index 465bca306..7a5f88efe 100644 --- a/src/modules/partition/gui/AlongsidePage.cpp +++ b/src/modules/partition/gui/AlongsidePage.cpp @@ -21,7 +21,7 @@ #include "core/ColorUtils.h" #include "core/PartitionCoreModule.h" #include "core/DeviceModel.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "core/PartitionInfo.h" #include "core/PartitionIterator.h" #include "gui/PartitionSplitterWidget.h" @@ -146,7 +146,7 @@ AlongsidePage::onPartitionSelected( int comboBoxIndex ) for ( int i = 0; i < dm->rowCount(); ++i ) { Device* dev = dm->deviceForIndex( dm->index( i ) ); - Partition* candidate = PMUtils::findPartitionByPath( { dev }, path ); + Partition* candidate = KPMHelpers::findPartitionByPath( { dev }, path ); if ( candidate ) { // store candidate->partitionPath() here! @@ -280,7 +280,7 @@ AlongsidePage::applyChanges() for ( int i = 0; i < dm->rowCount(); ++i ) { Device* dev = dm->deviceForIndex( dm->index( i ) ); - Partition* candidate = PMUtils::findPartitionByPath( { dev }, path ); + Partition* candidate = KPMHelpers::findPartitionByPath( { dev }, path ); if ( candidate ) { qint64 firstSector = candidate->firstSector(); @@ -289,7 +289,7 @@ AlongsidePage::applyChanges() dev->logicalSectorSize(); m_core->resizePartition( dev, candidate, firstSector, newLastSector ); - Partition* newPartition = PMUtils::createNewPartition( + Partition* newPartition = KPMHelpers::createNewPartition( candidate->parent(), *dev, candidate->roles(), diff --git a/src/modules/partition/gui/AlongsidePage.h b/src/modules/partition/gui/AlongsidePage.h index 3583666e8..45d181363 100644 --- a/src/modules/partition/gui/AlongsidePage.h +++ b/src/modules/partition/gui/AlongsidePage.h @@ -21,7 +21,7 @@ #include -#include "OsproberEntry.h" +#include "core/OsproberEntry.h" class QComboBox; class QLabel; diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index e00af4cf5..e58d7980e 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -21,7 +21,7 @@ #include "core/PartitionCoreModule.h" #include "core/DeviceModel.h" #include "core/PartitionModel.h" -#include "OsproberEntry.h" +#include "core/OsproberEntry.h" #include "PrettyRadioButton.h" diff --git a/src/modules/partition/gui/ChoicePage.h b/src/modules/partition/gui/ChoicePage.h index a8cbba23c..de7df9343 100644 --- a/src/modules/partition/gui/ChoicePage.h +++ b/src/modules/partition/gui/ChoicePage.h @@ -21,7 +21,7 @@ #include -#include "OsproberEntry.h" +#include "core/OsproberEntry.h" class QBoxLayout; class QLabel; diff --git a/src/modules/partition/gui/CreatePartitionDialog.cpp b/src/modules/partition/gui/CreatePartitionDialog.cpp index 3a57fd4fb..697d82e65 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.cpp +++ b/src/modules/partition/gui/CreatePartitionDialog.cpp @@ -20,7 +20,7 @@ #include "core/ColorUtils.h" #include "core/PartitionInfo.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "gui/PartitionSizeController.h" #include "ui_CreatePartitionDialog.h" @@ -141,7 +141,7 @@ CreatePartitionDialog::createPartition() FileSystem::Type fsType = m_role.has( PartitionRole::Extended ) ? FileSystem::Extended : FileSystem::typeForName( m_ui->fsComboBox->currentText() ); - Partition* partition = PMUtils::createNewPartition( + Partition* partition = KPMHelpers::createNewPartition( m_parent, *m_device, m_role, @@ -170,7 +170,7 @@ CreatePartitionDialog::updateMountPointUi() void CreatePartitionDialog::initPartResizerWidget( Partition* partition ) { - QColor color = PMUtils::isPartitionFreeSpace( partition ) + QColor color = KPMHelpers::isPartitionFreeSpace( partition ) ? ColorUtils::colorForPartitionInFreeSpace( partition ) : ColorUtils::colorForPartition( partition ); m_partitionSizeController->init( m_device, partition, color ); diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.cpp b/src/modules/partition/gui/EditExistingPartitionDialog.cpp index 5cbef6aa8..9c79f5da9 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.cpp +++ b/src/modules/partition/gui/EditExistingPartitionDialog.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include @@ -125,7 +125,7 @@ EditExistingPartitionDialog::applyChanges( PartitionCoreModule* core ) { if ( m_ui->formatRadioButton->isChecked() ) { - Partition* newPartition = PMUtils::createNewPartition( + Partition* newPartition = KPMHelpers::createNewPartition( m_partition->parent(), *m_device, m_partition->roles(), @@ -158,7 +158,7 @@ EditExistingPartitionDialog::applyChanges( PartitionCoreModule* core ) } else // otherwise, we delete and recreate the partition with new fs type { - Partition* newPartition = PMUtils::createNewPartition( + Partition* newPartition = KPMHelpers::createNewPartition( m_partition->parent(), *m_device, m_partition->roles(), diff --git a/src/modules/partition/gui/EraseDiskPage.cpp b/src/modules/partition/gui/EraseDiskPage.cpp index a6106dbd8..3a9d6aa00 100644 --- a/src/modules/partition/gui/EraseDiskPage.cpp +++ b/src/modules/partition/gui/EraseDiskPage.cpp @@ -20,7 +20,7 @@ #include "core/DeviceModel.h" #include "core/PartitionCoreModule.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "core/PartitionInfo.h" #include "gui/PartitionPreview.h" @@ -162,7 +162,7 @@ EraseDiskPage::doAutopartition( Device* dev ) { qint64 lastSector = firstFreeSector + ( uefisys_part_size MiB / dev->logicalSectorSize() ); m_core->createPartitionTable( dev, PartitionTable::gpt ); - Partition* efiPartition = PMUtils::createNewPartition( + Partition* efiPartition = KPMHelpers::createNewPartition( dev->partitionTable(), *dev, PartitionRole( PartitionRole::Primary ), @@ -201,7 +201,7 @@ EraseDiskPage::doAutopartition( Device* dev ) lastSectorForRoot -= suggestedSwapSizeB / dev->logicalSectorSize() + 1; } - Partition* rootPartition = PMUtils::createNewPartition( + Partition* rootPartition = KPMHelpers::createNewPartition( dev->partitionTable(), *dev, PartitionRole( PartitionRole::Primary ), @@ -215,7 +215,7 @@ EraseDiskPage::doAutopartition( Device* dev ) if ( shouldCreateSwap ) { - Partition* swapPartition = PMUtils::createNewPartition( + Partition* swapPartition = KPMHelpers::createNewPartition( dev->partitionTable(), *dev, PartitionRole( PartitionRole::Primary ), diff --git a/src/modules/partition/gui/PartitionPage.cpp b/src/modules/partition/gui/PartitionPage.cpp index 93ad06439..d413fa24a 100644 --- a/src/modules/partition/gui/PartitionPage.cpp +++ b/src/modules/partition/gui/PartitionPage.cpp @@ -23,7 +23,7 @@ #include "core/DeviceModel.h" #include "core/PartitionCoreModule.h" #include "core/PartitionModel.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "gui/CreatePartitionDialog.h" #include "gui/EditExistingPartitionDialog.h" @@ -102,7 +102,7 @@ PartitionPage::updateButtons() Q_ASSERT( model ); Partition* partition = model->partitionForIndex( index ); Q_ASSERT( partition ); - bool isFree = PMUtils::isPartitionFreeSpace( partition ); + bool isFree = KPMHelpers::isPartitionFreeSpace( partition ); bool isExtended = partition->roles().has( PartitionRole::Extended ); create = isFree; @@ -169,7 +169,7 @@ PartitionPage::onEditClicked() Partition* partition = model->partitionForIndex( index ); Q_ASSERT( partition ); - if ( PMUtils::isPartitionNew( partition ) ) + if ( KPMHelpers::isPartitionNew( partition ) ) updatePartitionToCreate( model->device(), partition ); else editExistingPartition( model->device(), partition ); @@ -214,7 +214,7 @@ PartitionPage::onPartitionViewActivated() // but I don't expect there will be other occurences of triggering the same // action from multiple UI elements in this page, so it does not feel worth // the price. - if ( PMUtils::isPartitionFreeSpace( partition ) ) + if ( KPMHelpers::isPartitionFreeSpace( partition ) ) m_ui->createButton->click(); else m_ui->editButton->click(); diff --git a/src/modules/partition/gui/PartitionSizeController.cpp b/src/modules/partition/gui/PartitionSizeController.cpp index a54d6e4be..872364e1c 100644 --- a/src/modules/partition/gui/PartitionSizeController.cpp +++ b/src/modules/partition/gui/PartitionSizeController.cpp @@ -19,7 +19,7 @@ #include "gui/PartitionSizeController.h" #include "core/ColorUtils.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" // Qt #include @@ -45,7 +45,7 @@ PartitionSizeController::init( Device* device, Partition* partition, const QColo // because it means we would have to revert them if the user cancel the // dialog the widget is in. Therefore we init PartResizerWidget with a clone // of the original partition. - m_partition.reset( PMUtils::clonePartition( m_device, partition ) ); + m_partition.reset( KPMHelpers::clonePartition( m_device, partition ) ); m_partitionColor = color; } diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index dd699a1ab..4b6e9b2be 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -22,7 +22,9 @@ #include "core/DeviceModel.h" #include "core/PartitionCoreModule.h" #include "core/PartitionModel.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" +#include "core/OsproberEntry.h" +#include "core/PartUtils.h" #include "gui/ChoicePage.h" #include "gui/EraseDiskPage.h" #include "gui/AlongsidePage.h" @@ -72,7 +74,7 @@ PartitionViewStep::PartitionViewStep( QObject* parent ) connect( timer, &QTimer::timeout, [=]() { - OsproberEntryList osproberEntries = runOsprober(); + OsproberEntryList osproberEntries = PartUtils::runOsprober( m_core ); m_choicePage->init( m_core, osproberEntries ); m_erasePage->init( m_core ); @@ -112,60 +114,6 @@ PartitionViewStep::~PartitionViewStep() } -OsproberEntryList -PartitionViewStep::runOsprober() -{ - QString osproberOutput; - QProcess osprober; - osprober.setProgram( "os-prober" ); - osprober.setProcessChannelMode( QProcess::SeparateChannels ); - osprober.start(); - if ( !osprober.waitForStarted() ) - { - cDebug() << "ERROR: os-prober cannot start."; - } - else if ( !osprober.waitForFinished( 60000 ) ) - { - cDebug() << "ERROR: os-prober timed out."; - } - else - { - osproberOutput.append( - QString::fromLocal8Bit( - osprober.readAllStandardOutput() ).trimmed() ); - } - - QString osProberReport( "Osprober lines, clean:\n" ); - QStringList osproberCleanLines; - OsproberEntryList osproberEntries; - foreach ( const QString& line, osproberOutput.split( '\n' ) ) - { - if ( !line.simplified().isEmpty() ) - { - QStringList lineColumns = line.split( ':' ); - QString prettyName; - if ( !lineColumns.value( 1 ).simplified().isEmpty() ) - prettyName = lineColumns.value( 1 ).simplified(); - else if ( !lineColumns.value( 2 ).simplified().isEmpty() ) - prettyName = lineColumns.value( 2 ).simplified(); - - QString path = lineColumns.value( 0 ).simplified(); - if ( !path.startsWith( "/dev/" ) ) //basic sanity check - continue; - - osproberEntries.append( { prettyName, path, canBeResized( path ), lineColumns } ); - osproberCleanLines.append( line ); - } - } - osProberReport.append( osproberCleanLines.join( '\n' ) ); - cDebug() << osProberReport; - - Calamares::JobQueue::instance()->globalStorage()->insert( "osproberLines", osproberCleanLines ); - - return osproberEntries; -} - - QString PartitionViewStep::prettyName() const { @@ -456,57 +404,4 @@ PartitionViewStep::jobs() const } -bool -PartitionViewStep::canBeResized( 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 = m_core->deviceModel(); - for ( int i = 0; i < dm->rowCount(); ++i ) - { - Device* dev = dm->deviceForIndex( dm->index( i ) ); - Partition* candidate = PMUtils::findPartitionByPath( { dev }, partitionWithOs ); - if ( candidate ) - { - cDebug() << "found Partition* for" << partitionWithOs; - if ( !candidate->fileSystem().supportGrow() || - !candidate->fileSystem().supportShrink() ) - return false; - - bool ok = false; - double requiredStorageGB = Calamares::JobQueue::instance() - ->globalStorage() - ->value( "requiredStorageGB" ) - .toDouble( &ok ); - - qint64 availableStorageB = candidate->available(); - - // We require a little more for partitioning overhead and swap file - // TODO: maybe make this configurable? - qint64 requiredStorageB = ( requiredStorageGB + 0.1 + 2.0 ) * 1024 * 1024 * 1024; - cDebug() << "Required storage B:" << requiredStorageB - << QString( "(%1GB)" ).arg( requiredStorageB / 1024 / 1024 / 1024 ); - cDebug() << "Available storage B:" << availableStorageB - << QString( "(%1GB)" ).arg( availableStorageB / 1024 / 1024 / 1024 ); - - if ( ok && - availableStorageB > requiredStorageB ) - { - cDebug() << "Partition" << partitionWithOs << "authorized for resize + autopartition install."; - - return true; - } - } - } - } - - cDebug() << "Partition" << partitionWithOs << "CANNOT BE RESIZED FOR AUTOINSTALL."; - return false; -} - CALAMARES_PLUGIN_FACTORY_DEFINITION( PartitionViewStepFactory, registerPlugin(); ) diff --git a/src/modules/partition/gui/PartitionViewStep.h b/src/modules/partition/gui/PartitionViewStep.h index 62018f31c..f1e40678e 100644 --- a/src/modules/partition/gui/PartitionViewStep.h +++ b/src/modules/partition/gui/PartitionViewStep.h @@ -20,8 +20,6 @@ #ifndef PARTITIONVIEWSTEP_H #define PARTITIONVIEWSTEP_H -#include "OsproberEntry.h" - #include #include @@ -71,9 +69,6 @@ public: QList< Calamares::job_ptr > jobs() const override; private: - OsproberEntryList runOsprober(); - bool canBeResized( const QString& partitionPath ); - PartitionCoreModule* m_core; QStackedWidget* m_widget; ChoicePage* m_choicePage; diff --git a/src/modules/partition/gui/ReplacePage.cpp b/src/modules/partition/gui/ReplacePage.cpp index 6b79c1495..092d85b62 100644 --- a/src/modules/partition/gui/ReplacePage.cpp +++ b/src/modules/partition/gui/ReplacePage.cpp @@ -21,7 +21,7 @@ #include "ui_ReplacePage.h" #include "core/PartitionCoreModule.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "core/PartitionInfo.h" #include "core/DeviceModel.h" @@ -109,7 +109,7 @@ ReplacePage::applyChanges() if ( partition ) { Device* dev = model->device(); - Partition* newPartition = PMUtils::createNewPartition( + Partition* newPartition = KPMHelpers::createNewPartition( partition->parent(), *dev, partition->roles(), diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.cpp b/src/modules/partition/jobs/FillGlobalStorageJob.cpp index e9d36136c..41a8580df 100644 --- a/src/modules/partition/jobs/FillGlobalStorageJob.cpp +++ b/src/modules/partition/jobs/FillGlobalStorageJob.cpp @@ -23,7 +23,7 @@ #include "JobQueue.h" #include "core/PartitionInfo.h" #include "core/PartitionIterator.h" -#include "core/PMUtils.h" +#include "core/KPMHelpers.h" #include "Branding.h" #include "utils/Logger.h" @@ -195,7 +195,7 @@ FillGlobalStorageJob::createBootLoaderMap() const QString path = m_bootLoaderPath; if ( !path.startsWith( "/dev/" ) ) { - Partition* partition = PMUtils::findPartitionByMountPoint( m_devices, path ); + Partition* partition = KPMHelpers::findPartitionByMountPoint( m_devices, path ); if ( !partition ) return QVariant(); path = partition->partitionPath(); diff --git a/src/modules/partition/tests/CMakeLists.txt b/src/modules/partition/tests/CMakeLists.txt index dc26a8fb9..c91222222 100644 --- a/src/modules/partition/tests/CMakeLists.txt +++ b/src/modules/partition/tests/CMakeLists.txt @@ -4,7 +4,7 @@ include( ECMAddTests ) set( PartitionModule_SOURCE_DIR .. ) set( partitionjobtests_SRCS - ${PartitionModule_SOURCE_DIR}/core/PMUtils.cpp + ${PartitionModule_SOURCE_DIR}/core/KPMHelpers.cpp ${PartitionModule_SOURCE_DIR}/core/PartitionInfo.cpp ${PartitionModule_SOURCE_DIR}/core/PartitionIterator.cpp ${PartitionModule_SOURCE_DIR}/jobs/CheckFileSystemJob.cpp diff --git a/src/modules/partition/tests/PartitionJobTests.cpp b/src/modules/partition/tests/PartitionJobTests.cpp index 91216a853..bada4aa9a 100644 --- a/src/modules/partition/tests/PartitionJobTests.cpp +++ b/src/modules/partition/tests/PartitionJobTests.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include // CalaPM #include @@ -113,7 +113,7 @@ static Partition* firstFreePartition( PartitionNode* parent ) { for( auto child : parent->children() ) - if ( PMUtils::isPartitionFreeSpace( child ) ) + if ( KPMHelpers::isPartitionFreeSpace( child ) ) return child; return nullptr; } @@ -353,7 +353,7 @@ PartitionJobTests::testResizePartition() Partition* freePartition = firstFreePartition( m_device->partitionTable() ); QVERIFY( freePartition ); - Partition* partition = PMUtils::createNewPartition( freePartition->parent(), *m_device, PartitionRole( PartitionRole::Primary ), FileSystem::Ext4, oldFirst, oldLast ); + Partition* partition = KPMHelpers::createNewPartition( freePartition->parent(), *m_device, PartitionRole( PartitionRole::Primary ), FileSystem::Ext4, oldFirst, oldLast ); CreatePartitionJob* job = new CreatePartitionJob( m_device.data(), partition ); job->updatePreview(); m_queue.enqueue( job_ptr( job ) );