[partition] Reduce refreshes when reverting
This commit is contained in:
parent
b9fa0398c0
commit
dff5afe227
@ -880,7 +880,7 @@ PartitionCoreModule::revertAllDevices()
|
||||
}
|
||||
}
|
||||
|
||||
revertDevice( ( *it )->device.data() );
|
||||
revertDevice( ( *it )->device.data(), false );
|
||||
++it;
|
||||
}
|
||||
|
||||
@ -889,7 +889,7 @@ PartitionCoreModule::revertAllDevices()
|
||||
|
||||
|
||||
void
|
||||
PartitionCoreModule::revertDevice( Device* dev )
|
||||
PartitionCoreModule::revertDevice( Device* dev, bool individualRevert )
|
||||
{
|
||||
QMutexLocker locker( &m_revertMutex );
|
||||
DeviceInfo* devInfo = infoForDevice( dev );
|
||||
@ -915,6 +915,7 @@ PartitionCoreModule::revertDevice( Device* dev )
|
||||
|
||||
m_bootLoaderModel->init( devices );
|
||||
|
||||
if ( individualRevert )
|
||||
refreshAfterModelChange();
|
||||
emit deviceReverted( newDev );
|
||||
}
|
||||
@ -931,7 +932,7 @@ PartitionCoreModule::asyncRevertDevice( Device* dev, std::function< void() > cal
|
||||
watcher->deleteLater();
|
||||
} );
|
||||
|
||||
QFuture< void > future = QtConcurrent::run( this, &PartitionCoreModule::revertDevice, dev );
|
||||
QFuture< void > future = QtConcurrent::run( this, &PartitionCoreModule::revertDevice, dev, true );
|
||||
watcher->setFuture( future );
|
||||
}
|
||||
|
||||
|
@ -191,7 +191,12 @@ public:
|
||||
|
||||
void revert(); // full revert, thread safe, calls doInit
|
||||
void revertAllDevices(); // convenience function, calls revertDevice
|
||||
void revertDevice( Device* dev ); // rescans a single Device and updates DeviceInfo
|
||||
/** @brief rescans a single Device and updates DeviceInfo
|
||||
*
|
||||
* When @p individualRevert is true, calls refreshAfterModelChange(),
|
||||
* used to reduce number of refreshes when calling revertAllDevices().
|
||||
*/
|
||||
void revertDevice( Device* dev, bool individualRevert=true );
|
||||
void asyncRevertDevice( Device* dev, std::function< void() > callback ); //like revertDevice, but asynchronous
|
||||
|
||||
void clearJobs(); // only clear jobs, the Device* states are preserved
|
||||
|
Loading…
Reference in New Issue
Block a user