diff --git a/src/modules/partition/PartitionCoreModule.cpp b/src/modules/partition/PartitionCoreModule.cpp index b8073e329..84b83535b 100644 --- a/src/modules/partition/PartitionCoreModule.cpp +++ b/src/modules/partition/PartitionCoreModule.cpp @@ -18,6 +18,8 @@ #include +#include + // CalaPM #include #include @@ -25,6 +27,7 @@ PartitionCoreModule::PartitionCoreModule( QObject* parent ) : QObject( parent ) + , m_deviceModel( new DeviceModel( this ) ) { // FIXME: Should be done at startup if ( !CalaPM::init() ) @@ -33,6 +36,8 @@ PartitionCoreModule::PartitionCoreModule( QObject* parent ) } CoreBackend* backend = CoreBackendManager::self()->backend(); m_devices = backend->scanDevices(); + + m_deviceModel->init( m_devices ); } QList< Device* > @@ -40,3 +45,9 @@ PartitionCoreModule::devices() const { return m_devices; } + +DeviceModel* +PartitionCoreModule::deviceModel() const +{ + return m_deviceModel; +} diff --git a/src/modules/partition/PartitionCoreModule.h b/src/modules/partition/PartitionCoreModule.h index 61895a582..405210d6d 100644 --- a/src/modules/partition/PartitionCoreModule.h +++ b/src/modules/partition/PartitionCoreModule.h @@ -23,6 +23,7 @@ #include class Device; +class DeviceModel; /** * Owns the Qt models and the PM devices @@ -34,8 +35,11 @@ public: QList< Device* > devices() const; + DeviceModel* deviceModel() const; + private: QList< Device* > m_devices; + DeviceModel* m_deviceModel; void listDevices(); }; diff --git a/src/modules/partition/PartitionPage.cpp b/src/modules/partition/PartitionPage.cpp index 1ed4fb9fb..67d4cf711 100644 --- a/src/modules/partition/PartitionPage.cpp +++ b/src/modules/partition/PartitionPage.cpp @@ -32,17 +32,14 @@ PartitionPage::PartitionPage( QWidget* parent ) : Calamares::AbstractPage( parent ) , m_ui( new Ui_PartitionPage ) , m_core( new PartitionCoreModule( this ) ) - , m_deviceModel( new DeviceModel( this ) ) { m_ui->setupUi( this ); - m_ui->deviceListView->setModel( m_deviceModel ); - - m_deviceModel->init( m_core->devices() ); + m_ui->deviceListView->setModel( m_core->deviceModel() ); connect( m_ui->deviceListView->selectionModel(), &QItemSelectionModel::currentChanged, [ this ]( const QModelIndex& index, const QModelIndex& oldIndex ) { - PartitionModel* model = m_deviceModel->partitionModelForIndex( index ); + PartitionModel* model = m_core->deviceModel()->partitionModelForIndex( index ); m_ui->partitionListView->setModel( model ); } ); } diff --git a/src/modules/partition/PartitionPage.h b/src/modules/partition/PartitionPage.h index a3d69f8cd..ce7023398 100644 --- a/src/modules/partition/PartitionPage.h +++ b/src/modules/partition/PartitionPage.h @@ -42,7 +42,6 @@ public Q_SLOTS: private: QScopedPointer< Ui_PartitionPage > m_ui; PartitionCoreModule* m_core; - DeviceModel* m_deviceModel; }; #endif // PARTITIONPAGE_H