From fbb293c15a794a2cb4729aee10be12c5b209ed1f Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 24 Dec 2015 12:09:47 +0100 Subject: [PATCH] Back to QFutureWatcher, but we allocate/destroy it ourselves. This reverts commit c64eef54f6584b26f14933f0c8e600d5ad2dacbb. --- src/modules/partition/core/PartitionCoreModule.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index a5e661156..57cf9f5bb 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -49,7 +49,8 @@ #include #include #include -#include +#include +#include static bool hasRootPartition( Device* device ) @@ -531,11 +532,16 @@ PartitionCoreModule::revertDevice( Device* dev ) void PartitionCoreModule::asyncRevertDevice( Device* dev, std::function< void() > callback ) { - QTimer::singleShot( 0, this, [=] + QFutureWatcher< void >* watcher = new QFutureWatcher< void >(); + connect( watcher, &QFutureWatcher< void >::finished, + this, [ watcher, callback ] { - revertDevice( dev ); - QTimer::singleShot( 0, callback ); + callback(); + watcher->deleteLater(); } ); + + QFuture< void > future = QtConcurrent::run( this, &PartitionCoreModule::revertDevice, dev ); + watcher->setFuture( future ); }