[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;
|
++it;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -889,7 +889,7 @@ PartitionCoreModule::revertAllDevices()
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PartitionCoreModule::revertDevice( Device* dev )
|
PartitionCoreModule::revertDevice( Device* dev, bool individualRevert )
|
||||||
{
|
{
|
||||||
QMutexLocker locker( &m_revertMutex );
|
QMutexLocker locker( &m_revertMutex );
|
||||||
DeviceInfo* devInfo = infoForDevice( dev );
|
DeviceInfo* devInfo = infoForDevice( dev );
|
||||||
@ -915,7 +915,8 @@ PartitionCoreModule::revertDevice( Device* dev )
|
|||||||
|
|
||||||
m_bootLoaderModel->init( devices );
|
m_bootLoaderModel->init( devices );
|
||||||
|
|
||||||
refreshAfterModelChange();
|
if ( individualRevert )
|
||||||
|
refreshAfterModelChange();
|
||||||
emit deviceReverted( newDev );
|
emit deviceReverted( newDev );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -931,7 +932,7 @@ PartitionCoreModule::asyncRevertDevice( Device* dev, std::function< void() > cal
|
|||||||
watcher->deleteLater();
|
watcher->deleteLater();
|
||||||
} );
|
} );
|
||||||
|
|
||||||
QFuture< void > future = QtConcurrent::run( this, &PartitionCoreModule::revertDevice, dev );
|
QFuture< void > future = QtConcurrent::run( this, &PartitionCoreModule::revertDevice, dev, true );
|
||||||
watcher->setFuture( future );
|
watcher->setFuture( future );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,7 +191,12 @@ public:
|
|||||||
|
|
||||||
void revert(); // full revert, thread safe, calls doInit
|
void revert(); // full revert, thread safe, calls doInit
|
||||||
void revertAllDevices(); // convenience function, calls revertDevice
|
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 asyncRevertDevice( Device* dev, std::function< void() > callback ); //like revertDevice, but asynchronous
|
||||||
|
|
||||||
void clearJobs(); // only clear jobs, the Device* states are preserved
|
void clearJobs(); // only clear jobs, the Device* states are preserved
|
||||||
|
Loading…
Reference in New Issue
Block a user