diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index f29db1812..b1124a6c6 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -106,6 +106,39 @@ private: //- DeviceInfo --------------------------------------------- +/** + * Owns the Device, PartitionModel and the jobs + */ +struct PartitionCoreModule::DeviceInfo +{ + DeviceInfo( Device* ); + ~DeviceInfo(); + QScopedPointer< Device > device; + QScopedPointer< PartitionModel > partitionModel; + const QScopedPointer< Device > immutableDevice; + + // To check if LVM VGs are deactivated + bool isAvailable; + + void forgetChanges(); + bool isDirty() const; + + const Calamares::JobList& jobs() const { return m_jobs; } + + template< typename Job, typename... Args > + Calamares::Job* makeJob(Args... a) + { + auto* job = new Job( device.get(), a... ); + job->updatePreview(); + m_jobs << Calamares::job_ptr( job ); + return job; + } + +private: + Calamares::JobList m_jobs; +}; + + PartitionCoreModule::DeviceInfo::DeviceInfo( Device* _device ) : device( _device ) , partitionModel( new PartitionModel ) diff --git a/src/modules/partition/core/PartitionCoreModule.h b/src/modules/partition/core/PartitionCoreModule.h index 35764424c..4a900ef18 100644 --- a/src/modules/partition/core/PartitionCoreModule.h +++ b/src/modules/partition/core/PartitionCoreModule.h @@ -24,6 +24,7 @@ #include "core/KPMHelpers.h" #include "core/PartitionLayout.h" #include "core/PartitionModel.h" +#include "jobs/PartitionJob.h" #include "Job.h" #include "partition/KPMManager.h" @@ -241,32 +242,19 @@ Q_SIGNALS: void deviceReverted( Device* device ); private: - CalamaresUtils::Partition::KPMManager m_kpmcore; - + struct DeviceInfo; void refreshAfterModelChange(); - /** - * Owns the Device, PartitionModel and the jobs - */ - struct DeviceInfo - { - DeviceInfo( Device* ); - ~DeviceInfo(); - QScopedPointer< Device > device; - QScopedPointer< PartitionModel > partitionModel; - const QScopedPointer< Device > immutableDevice; + void doInit(); + void updateHasRootMountPoint(); + void updateIsDirty(); + void scanForEfiSystemPartitions(); + void scanForLVMPVs(); - // To check if LVM VGs are deactivated - bool isAvailable; + DeviceInfo* infoForDevice( const Device* ) const; - void forgetChanges(); - bool isDirty() const; + CalamaresUtils::Partition::KPMManager m_kpmcore; - const Calamares::JobList& jobs() const { return m_jobs; } - - private: - Calamares::JobList m_jobs; - }; QList< DeviceInfo* > m_deviceInfos; QList< Partition* > m_efiSystemPartitions; QVector< const Partition* > m_lvmPVs; @@ -278,14 +266,6 @@ private: QString m_bootLoaderInstallPath; PartitionLayout* m_partLayout; - void doInit(); - void updateHasRootMountPoint(); - void updateIsDirty(); - void scanForEfiSystemPartitions(); - void scanForLVMPVs(); - - DeviceInfo* infoForDevice( const Device* ) const; - OsproberEntryList m_osproberLines; QMutex m_revertMutex;