diff --git a/src/modules/partition/gui/CreatePartitionDialog.cpp b/src/modules/partition/gui/CreatePartitionDialog.cpp index f790f4d38..ee2db315f 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.cpp +++ b/src/modules/partition/gui/CreatePartitionDialog.cpp @@ -242,7 +242,7 @@ CreatePartitionDialog::createPartition() partition->setPartitionPath(m_device->deviceNode() + QStringLiteral("/") + m_ui->lvNameLineEdit->text().trimmed()); } - PartitionInfo::setMountPoint( partition, m_ui->mountPointComboBox->currentText() ); + PartitionInfo::setMountPoint( partition, selectedMountPoint( m_ui->mountPointComboBox ) ); PartitionInfo::setFormat( partition, true ); return partition; @@ -279,9 +279,7 @@ CreatePartitionDialog::updateMountPointUi() void CreatePartitionDialog::checkMountPointSelection() { - const QString& selection = m_ui->mountPointComboBox->currentText(); - - if ( m_usedMountPoints.contains( selection ) ) + if ( m_usedMountPoints.contains( selectedMountPoint( m_ui->mountPointComboBox ) ) ) { m_ui->labelMountPoint->setText( tr( "Mountpoint already in use. Please select another one." ) ); m_ui->buttonBox->button( QDialogButtonBox::Ok )->setEnabled( false ); diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.cpp b/src/modules/partition/gui/EditExistingPartitionDialog.cpp index 51b5a33d7..aa066cac2 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.cpp +++ b/src/modules/partition/gui/EditExistingPartitionDialog.cpp @@ -154,7 +154,7 @@ EditExistingPartitionDialog::setupFlagsList() void EditExistingPartitionDialog::applyChanges( PartitionCoreModule* core ) { - PartitionInfo::setMountPoint( m_partition, m_ui->mountPointComboBox->currentText() ); + PartitionInfo::setMountPoint( m_partition, selectedMountPoint(m_ui->mountPointComboBox) ); qint64 newFirstSector = m_partitionSizeController->firstSector(); qint64 newLastSector = m_partitionSizeController->lastSector(); @@ -294,9 +294,7 @@ EditExistingPartitionDialog::updateMountPointPicker() void EditExistingPartitionDialog::checkMountPointSelection() { - const QString& selection = m_ui->mountPointComboBox->currentText(); - - if ( m_usedMountPoints.contains( selection ) ) + if ( m_usedMountPoints.contains( selectedMountPoint( m_ui->mountPointComboBox ) ) ) { m_ui->labelMountPoint->setText( tr( "Mountpoint already in use. Please select another one." ) ); m_ui->buttonBox->button( QDialogButtonBox::Ok )->setEnabled( false ); diff --git a/src/modules/partition/gui/MountPoints.cpp b/src/modules/partition/gui/MountPoints.cpp index 6d8dc6e04..301773957 100644 --- a/src/modules/partition/gui/MountPoints.cpp +++ b/src/modules/partition/gui/MountPoints.cpp @@ -24,6 +24,7 @@ #include "GlobalStorage.h" #include "JobQueue.h" +#include "utils/Logger.h" #include @@ -55,3 +56,12 @@ standardMountPoints(QComboBox& combo, const QString& selected) else combo.setCurrentText( selected ); } + +QString +selectedMountPoint(QComboBox& combo) +{ + cDebug() << "Selected mount point" << combo.currentIndex() << combo.currentText(); + if ( combo.currentIndex() == 0 ) + return QString(); + return combo.currentText(); +} diff --git a/src/modules/partition/gui/MountPoints.h b/src/modules/partition/gui/MountPoints.h index c91f24e6d..68390da0b 100644 --- a/src/modules/partition/gui/MountPoints.h +++ b/src/modules/partition/gui/MountPoints.h @@ -44,4 +44,14 @@ void standardMountPoints( QComboBox& ); */ void standardMountPoints( QComboBox&, const QString& selected ); +/** + * Get the mount point selected in the combo box (which should + * have been set up with standardMountPoints(), above); this + * will map the topmost item (i.e. "(no mount point)") back + * to blank, to allow easy detection of no-mount-selected. + */ +QString selectedMountPoint( QComboBox& combo ); +static inline QString selectedMountPoint(QComboBox* combo) { return selectedMountPoint(*combo); } + + #endif