Use asynchronous device revert.

main
Teo Mrnjavac 9 years ago
parent dbef198bac
commit cd8b7619d0

@ -273,7 +273,6 @@ ChoicePage::setupChoices()
if ( currd )
{
applyActionChoice( currentChoice() );
updateActionChoicePreview( currentChoice() );
}
} );
}
@ -437,27 +436,33 @@ ChoicePage::applyActionChoice( ChoicePage::Choice choice )
connect( m_beforePartitionBarsView->selectionModel(), &QItemSelectionModel::currentRowChanged,
this, [ this ]( const QModelIndex& current, const QModelIndex& previous )
{
auto doReplace = [=]
{
// We can't use the PartitionPtrRole because we need to make changes to the
// main DeviceModel, not the immutable copy.
QString partPath = current.data( PartitionModel::PartitionPathRole ).toString();
Partition* partition = KPMHelpers::findPartitionByPath( { selectedDevice() },
partPath );
if ( partition )
PartitionActions::doReplacePartition( m_core,
selectedDevice(),
partition );
};
if ( m_core->isDirty() )
{
m_core->revertDevice( selectedDevice() );
m_core->asyncRevertDevice( selectedDevice(), doReplace );
m_core->clearJobs();
}
// We can't use the PartitionPtrRole because we need to make changes to the
// main DeviceModel, not the immutable copy.
QString partPath = current.data( PartitionModel::PartitionPathRole ).toString();
Partition* partition = KPMHelpers::findPartitionByPath( { selectedDevice() },
partPath );
if ( partition )
PartitionActions::doReplacePartition( m_core,
selectedDevice(),
partition );
else
doReplace();
} );
break;
case NoChoice:
case Manual:
break;
}
updateActionChoicePreview( currentChoice() );
}

Loading…
Cancel
Save