Merge branch 'issue-1098'

- Doesn't fix the issue, but adds useful things I want in master
   already, also for debugging other issues.
This commit is contained in:
Adriaan de Groot 2019-03-01 07:09:45 -05:00
commit fdb4311a70
4 changed files with 57 additions and 36 deletions

View file

@ -56,7 +56,6 @@
#include <kpmcore/ops/removevolumegroupoperation.h>
// Qt
#include <QDebug>
#include <QHeaderView>
#include <QItemSelectionModel>
#include <QMessageBox>
@ -90,22 +89,9 @@ PartitionPage::PartitionPage( PartitionCoreModule* core, QWidget* parent )
updateFromCurrentDevice();
connect( m_ui->deviceComboBox, &QComboBox::currentTextChanged,
[ this ]( const QString& /* text */ )
{
updateFromCurrentDevice();
} );
connect( m_ui->bootLoaderComboBox, static_cast<void(QComboBox::*)(const QString &)>(&QComboBox::activated),
[ this ]( const QString& /* text */ )
{
m_lastSelectedBootLoaderIndex = m_ui->bootLoaderComboBox->currentIndex();
} );
connect( m_ui->bootLoaderComboBox, &QComboBox::currentTextChanged,
[ this ]( const QString& /* text */ )
{
updateBootLoaderInstallPath();
} );
connect( m_ui->deviceComboBox, &QComboBox::currentTextChanged, this, &PartitionPage::updateFromCurrentDevice );
connect( m_ui->bootLoaderComboBox, QOverload<int>::of(&QComboBox::activated), this, &PartitionPage::updateSelectedBootLoaderIndex );
connect( m_ui->bootLoaderComboBox, &QComboBox::currentTextChanged, this, &PartitionPage::updateBootLoaderInstallPath );
connect( m_core, &PartitionCoreModule::isDirtyChanged, m_ui->revertButton, &QWidget::setEnabled );
@ -376,18 +362,18 @@ PartitionPage::onCreateClicked()
if ( !checkCanCreate( model->device() ) )
return;
QPointer< CreatePartitionDialog > dlg = new CreatePartitionDialog( model->device(),
partition->parent(),
nullptr,
getCurrentUsedMountpoints(),
this );
dlg->initFromFreeSpace( partition );
if ( dlg->exec() == QDialog::Accepted )
CreatePartitionDialog dlg(
model->device(),
partition->parent(),
nullptr,
getCurrentUsedMountpoints(),
this );
dlg.initFromFreeSpace( partition );
if ( dlg.exec() == QDialog::Accepted )
{
Partition* newPart = dlg->createPartition();
m_core->createPartition( model->device(), newPart, dlg->newFlags() );
Partition* newPart = dlg.createPartition();
m_core->createPartition( model->device(), newPart, dlg.newFlags() );
}
delete dlg;
}
void
@ -508,10 +494,17 @@ PartitionPage::updateBootLoaderInstallPath()
QVariant var = m_ui->bootLoaderComboBox->currentData( BootLoaderModel::BootLoaderPathRole );
if ( !var.isValid() )
return;
qDebug() << "PartitionPage::updateBootLoaderInstallPath" << var.toString();
cDebug() << "PartitionPage::updateBootLoaderInstallPath" << var.toString();
m_core->setBootLoaderInstallPath( var.toString() );
}
void
PartitionPage::updateSelectedBootLoaderIndex()
{
m_lastSelectedBootLoaderIndex = m_ui->bootLoaderComboBox->currentIndex();
cDebug() << "Selected bootloader index" << m_lastSelectedBootLoaderIndex;
}
void
PartitionPage::updateFromCurrentDevice()
{

View file

@ -50,6 +50,14 @@ public:
int selectedDeviceIndex();
void selectDeviceByIndex( int index );
private slots:
/// @brief Update everything when the base device changes
void updateFromCurrentDevice();
/// @brief Update when the selected device for boot loader changes
void updateBootLoaderInstallPath();
/// @brief Explicitly selected boot loader path
void updateSelectedBootLoaderIndex();
private:
QScopedPointer< Ui_PartitionPage > m_ui;
PartitionCoreModule* m_core;
@ -67,8 +75,6 @@ private:
void updatePartitionToCreate( Device*, Partition* );
void editExistingPartition( Device*, Partition* );
void updateBootLoaderInstallPath();
void updateFromCurrentDevice();
void updateBootLoaderIndex();
/**