From 0a0a0d58e02766faa2153a1a96845c3c6ffaea2f Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 17 Dec 2015 18:00:00 +0100 Subject: [PATCH] PartitionCoreModule::revertDevice. --- .../partition/core/PartitionCoreModule.cpp | 24 +++++++++++++++++++ .../partition/core/PartitionCoreModule.h | 1 + 2 files changed, 25 insertions(+) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index c6b7b36cf..98d7b6c21 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -500,6 +500,30 @@ PartitionCoreModule::revert() } +void +PartitionCoreModule::revertDevice( Device* dev ) +{ + DeviceInfo* devInfo = infoForDevice( dev ); + if ( !devInfo ) + return; + devInfo->forgetChanges(); + CoreBackend* backend = CoreBackendManager::self()->backend(); + Device *newDev = backend->scanDevice( devInfo->device->deviceNode() ); + devInfo->device.reset( newDev ); + m_deviceModel->swapDevice( dev, newDev ); + + QList< Device* > devices; + foreach ( auto info, m_deviceInfos ) + devices.append( info->device.data() ); + + m_bootLoaderModel->init( devices ); + + devInfo->partitionModel->init( newDev, m_osproberLines ); + + updateIsDirty(); +} + + void PartitionCoreModule::clearJobs() { diff --git a/src/modules/partition/core/PartitionCoreModule.h b/src/modules/partition/core/PartitionCoreModule.h index 44a83499f..800d7c0d0 100644 --- a/src/modules/partition/core/PartitionCoreModule.h +++ b/src/modules/partition/core/PartitionCoreModule.h @@ -94,6 +94,7 @@ public: QList< Partition* > efiSystemPartitions() const; void revert(); + void revertDevice( Device* dev ); void clearJobs();