Try to ensure the connection for the replace operation is unique.

main
Teo Mrnjavac 9 years ago
parent d6e773e220
commit 64655d92a1

@ -437,14 +437,8 @@ ChoicePage::applyActionChoice( ChoicePage::Choice choice )
}
connect( m_beforePartitionBarsView->selectionModel(), &QItemSelectionModel::currentRowChanged,
this, [ this ]( const QModelIndex& current, const QModelIndex& previous )
{
cDebug() << "selectionModel reaction, sender is" << sender() << sender()->metaObject()->className();
ScanningDialog::run( QtConcurrent::run( this,
&ChoicePage::doReplaceSelectedPartition,
current ),
this );
}, Qt::UniqueConnection );
this, &ChoicePage::doReplaceSelectedPartition,
Qt::UniqueConnection );
break;
case NoChoice:
case Manual:
@ -455,9 +449,12 @@ ChoicePage::applyActionChoice( ChoicePage::Choice choice )
void
ChoicePage::doReplaceSelectedPartition( const QModelIndex& current )
ChoicePage::doReplaceSelectedPartition( const QModelIndex& current,
const QModelIndex& previous )
{
cDebug() << "begin doReplace";
cDebug() << "selectionModel reaction, sender is" << sender();
ScanningDialog::run( QtConcurrent::run( [ = ]
{
QMutexLocker locker( &m_coreMutex );
if ( m_core->isDirty() )
@ -473,7 +470,7 @@ ChoicePage::doReplaceSelectedPartition( const QModelIndex& current )
PartitionActions::doReplacePartition( m_core,
selectedDevice(),
partition );
cDebug() << "end doReplace";
} ), this );
}

@ -76,7 +76,7 @@ private:
ExpandableRadioButton* createEraseButton();
Device* selectedDevice();
void applyDeviceChoice();
void doReplaceSelectedPartition( const QModelIndex& current );
void doReplaceSelectedPartition( const QModelIndex& current, const QModelIndex& previous );
void updateDeviceStatePreview();
void applyActionChoice( ChoicePage::Choice choice );
void updateActionChoicePreview( ChoicePage::Choice choice );

Loading…
Cancel
Save