diff --git a/src/modules/partition/PartitionCoreModule.cpp b/src/modules/partition/PartitionCoreModule.cpp index 151b2fbd6..76d76b8a5 100644 --- a/src/modules/partition/PartitionCoreModule.cpp +++ b/src/modules/partition/PartitionCoreModule.cpp @@ -283,3 +283,9 @@ PartitionCoreModule::findPartitionByMountPoint( const QString& mountPoint ) cons } return nullptr; } + +void +PartitionCoreModule::setBootLoaderInstallPath( const QString& path ) +{ + m_bootLoaderInstallPath = path; +} diff --git a/src/modules/partition/PartitionCoreModule.h b/src/modules/partition/PartitionCoreModule.h index 51d6160ba..7cade0fb7 100644 --- a/src/modules/partition/PartitionCoreModule.h +++ b/src/modules/partition/PartitionCoreModule.h @@ -62,6 +62,8 @@ public: void formatPartition( Device* device, Partition* partition ); + void setBootLoaderInstallPath( const QString& path ); + QList< Calamares::job_ptr > jobs() const; bool hasRootMountPoint() const @@ -93,6 +95,7 @@ private: DeviceModel* m_deviceModel; BootLoaderModel* m_bootLoaderModel; bool m_hasRootMountPoint = false; + QString m_bootLoaderInstallPath; void listDevices(); void updateHasRootMountPoint(); diff --git a/src/modules/partition/PartitionPage.cpp b/src/modules/partition/PartitionPage.cpp index cc28c1e01..6d602fea3 100644 --- a/src/modules/partition/PartitionPage.cpp +++ b/src/modules/partition/PartitionPage.cpp @@ -19,6 +19,7 @@ #include "PartitionPage.h" // Local +#include #include #include #include @@ -48,6 +49,7 @@ PartitionPage::PartitionPage( PartitionCoreModule* core, QWidget* parent ) m_ui->deviceComboBox->setModel( m_core->deviceModel() ); m_ui->bootLoaderComboBox->setModel( m_core->bootLoaderModel() ); updateButtons(); + updateBootLoaderInstallPath(); connect( m_ui->deviceComboBox, &QComboBox::currentTextChanged, [ this ]( const QString& /* text */ ) @@ -74,6 +76,13 @@ PartitionPage::PartitionPage( PartitionCoreModule* core, QWidget* parent ) connect( model, &QAbstractItemModel::modelReset, this, &PartitionPage::updateButtons ); } ); + connect( m_ui->bootLoaderComboBox, &QComboBox::currentTextChanged, + [ this ]( const QString& /* text */ ) + { + updateBootLoaderInstallPath(); + } ); + + connect( m_ui->newPartitionTableButton, &QAbstractButton::clicked, this, &PartitionPage::onNewPartitionTableClicked ); connect( m_ui->createButton, &QAbstractButton::clicked, this, &PartitionPage::onCreateClicked ); connect( m_ui->editButton, &QAbstractButton::clicked, this, &PartitionPage::onEditClicked ); @@ -203,3 +212,12 @@ PartitionPage::editExistingPartition( Device* device, Partition* partition ) dlg->applyChanges( m_core ); delete dlg; } + +void +PartitionPage::updateBootLoaderInstallPath() +{ + QVariant var = m_ui->bootLoaderComboBox->currentData( BootLoaderModel::BootLoaderPathRole ); + if ( !var.isValid() ) + return; + m_core->setBootLoaderInstallPath( var.toString() ); +} diff --git a/src/modules/partition/PartitionPage.h b/src/modules/partition/PartitionPage.h index 3e5841177..93ad7762c 100644 --- a/src/modules/partition/PartitionPage.h +++ b/src/modules/partition/PartitionPage.h @@ -51,6 +51,7 @@ private: void updatePartitionToCreate( Device*, Partition* ); void editExistingPartition( Device*, Partition* ); + void updateBootLoaderInstallPath(); }; #endif // PARTITIONPAGE_H