From 5df78cc513c8d9227f7ef628df2e0d622b76709d Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 31 Dec 2015 15:38:50 +0100 Subject: [PATCH] Add callback support to ScanningDialog statics. --- src/modules/partition/gui/ScanningDialog.cpp | 9 +++++++-- src/modules/partition/gui/ScanningDialog.h | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/modules/partition/gui/ScanningDialog.cpp b/src/modules/partition/gui/ScanningDialog.cpp index 020a2392f..76a1bc55f 100644 --- a/src/modules/partition/gui/ScanningDialog.cpp +++ b/src/modules/partition/gui/ScanningDialog.cpp @@ -51,6 +51,7 @@ void ScanningDialog::run( const QFuture< void >& future, const QString& text, const QString& windowTitle, + const std::function< void() >& callback, QWidget* parent ) { ScanningDialog* theDialog = @@ -61,11 +62,12 @@ ScanningDialog::run( const QFuture< void >& future, QFutureWatcher< void >* watcher = new QFutureWatcher< void >(); connect( watcher, &QFutureWatcher< void >::finished, - theDialog, [ watcher, theDialog ] + theDialog, [ watcher, theDialog, callback ] { watcher->deleteLater(); theDialog->hide(); theDialog->deleteLater(); + callback(); } ); watcher->setFuture( future ); @@ -73,11 +75,14 @@ ScanningDialog::run( const QFuture< void >& future, void -ScanningDialog::run( const QFuture< void >& future, QWidget* parent ) +ScanningDialog::run( const QFuture< void >& future, + const std::function< void() >& callback, + QWidget* parent ) { ScanningDialog::run( future, tr( "Scanning storage devices..." ), tr( "Partitioning" ), + callback, parent ); } diff --git a/src/modules/partition/gui/ScanningDialog.h b/src/modules/partition/gui/ScanningDialog.h index 1e29700bc..6686e79e8 100644 --- a/src/modules/partition/gui/ScanningDialog.h +++ b/src/modules/partition/gui/ScanningDialog.h @@ -22,6 +22,8 @@ #include #include +#include + class ScanningDialog : public QDialog { Q_OBJECT @@ -33,9 +35,11 @@ public: static void run( const QFuture< void >& future, const QString& text, const QString& windowTitle, + const std::function< void() >& callback = []{}, QWidget* parent = nullptr ); static void run( const QFuture< void >& future, + const std::function< void() >& callback = []{}, QWidget* parent = nullptr ); public slots: