Asynchronous rescan on device change.

This commit is contained in:
Teo Mrnjavac 2016-02-09 13:23:23 +01:00
parent 877fa98ea6
commit b17b7a9c89
2 changed files with 20 additions and 2 deletions

View File

@ -306,12 +306,29 @@ ChoicePage::applyDeviceChoice()
if ( m_core->isDirty() )
{
m_core->revertAllDevices();
ScanningDialog::run( QtConcurrent::run( [ = ]
{
QMutexLocker locker( &m_coreMutex );
m_core->revertAllDevices();
} ),
[ this ]
{
continueApplyDeviceChoice();
},
this );
}
else
{
continueApplyDeviceChoice();
}
}
void
ChoicePage::continueApplyDeviceChoice()
{
Device* currd = selectedDevice();
// The device should only be nullptr immediately after a PCM reset.
// applyDeviceChoice() will be called again momentarily as soon as we handle the
// PartitionCoreModule::reverted signal.

View File

@ -81,6 +81,7 @@ private:
QComboBox* createBootloaderComboBox( QWidget* parentButton );
Device* selectedDevice();
void applyDeviceChoice();
void continueApplyDeviceChoice();
void updateDeviceStatePreview();
void applyActionChoice( ChoicePage::Choice choice );
void updateActionChoicePreview( ChoicePage::Choice choice );