From f2c7ecbbdf43b4d27ece15ccc9ca0a97340ac579 Mon Sep 17 00:00:00 2001 From: malte_langkabel Date: Mon, 24 Jul 2017 14:20:26 +0200 Subject: [PATCH] ui: add progress dialog for "show source files" button --- src/lib_gui/qt/view/QtDialogView.cpp | 6 ++++++ .../QtProjectWizzardContentPath.cpp | 10 ++++++---- .../QtProjectWizzardContentPaths.cpp | 15 +++++++++++---- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/lib_gui/qt/view/QtDialogView.cpp b/src/lib_gui/qt/view/QtDialogView.cpp index e6e38d4e..e0b60dbe 100644 --- a/src/lib_gui/qt/view/QtDialogView.cpp +++ b/src/lib_gui/qt/view/QtDialogView.cpp @@ -67,6 +67,8 @@ void QtDialogView::hideUnknownProgressDialog() setUIBlocked(false); } ); + + setParentWindow(nullptr); } void QtDialogView::showProgressDialog(const std::string& title, const std::string& message, int progress) @@ -110,6 +112,8 @@ void QtDialogView::hideProgressDialog() setUIBlocked(false); } ); + + setParentWindow(nullptr); } @@ -218,6 +222,8 @@ void QtDialogView::hideDialogs() setUIBlocked(false); } ); + + setParentWindow(nullptr); } int QtDialogView::confirm(const std::string& message, const std::vector& options) diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPath.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPath.cpp index 90a900ee..f4c72d65 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPath.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPath.cpp @@ -14,6 +14,7 @@ #include "settings/SourceGroupSettingsJava.h" #include "utility/file/FileManager.h" #include "utility/messaging/type/MessageStatus.h" +#include "utility/ScopedFunctor.h" #include "utility/utilityMaven.h" QtProjectWizzardContentPath::QtProjectWizzardContentPath(std::shared_ptr settings, QtProjectWizzardWindow* window) @@ -226,8 +227,12 @@ std::vector QtProjectWizzardContentPathSourceMaven::getFileNames() std::vector list; std::shared_ptr dialogView = Application::getInstance()->getDialogView(); - std::dynamic_pointer_cast(dialogView)->setParentWindow(m_window); + ScopedFunctor scopedFunctor([&dialogView](){ + dialogView->hideUnknownProgressDialog(); + }); + + std::dynamic_pointer_cast(dialogView)->setParentWindow(m_window); dialogView->showUnknownProgressDialog("Preparing Project", "Maven\nGenerating Source Files"); const bool success = utility::mavenGenerateSources(mavenPath, mavenProjectRoot); if (!success) @@ -268,13 +273,10 @@ std::vector QtProjectWizzardContentPathSourceMaven::getFileNames() list.push_back(path.str()); } } - dialogView->hideUnknownProgressDialog(); - std::dynamic_pointer_cast(dialogView)->setParentWindow(nullptr); return list; } - QtProjectWizzardContentPathDependenciesMaven::QtProjectWizzardContentPathDependenciesMaven( std::shared_ptr settings, QtProjectWizzardWindow* window ) diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.cpp index 4f7e35b0..e10d21ec 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.cpp @@ -176,6 +176,15 @@ void QtProjectWizzardContentPathsSource::save() std::vector QtProjectWizzardContentPathsSource::getFileNames() const { + std::shared_ptr dialogView = Application::getInstance()->getDialogView(); + + ScopedFunctor scopedFunctor([&dialogView](){ + dialogView->hideUnknownProgressDialog(); + }); + + std::dynamic_pointer_cast(dialogView)->setParentWindow(m_window); + dialogView->showUnknownProgressDialog("Processing", "Gathering Source Files"); + FileManager fileManager; fileManager.update( m_settings->getSourcePathsExpandedAndAbsolute(), @@ -390,16 +399,13 @@ void QtProjectWizzardContentPathsHeaderSearch::validateButtonClicked() std::vector unresolvedIncludes; { std::shared_ptr dialogView = Application::getInstance()->getDialogView(); - std::dynamic_pointer_cast(dialogView)->setParentWindow(m_window); - ScopedFunctor dialogParentResetter([&dialogView](){ - std::dynamic_pointer_cast(dialogView)->setParentWindow(nullptr); - }); std::vector sourceFilePaths; std::vector indexedFilePaths; std::vector headerSearchPaths; { + std::dynamic_pointer_cast(dialogView)->setParentWindow(m_window); dialogView->showUnknownProgressDialog("Processing", "Gathering Source Files"); ScopedFunctor dialogHider([&dialogView](){ dialogView->hideUnknownProgressDialog(); @@ -422,6 +428,7 @@ void QtProjectWizzardContentPathsHeaderSearch::validateButtonClicked() } } { + std::dynamic_pointer_cast(dialogView)->setParentWindow(m_window); ScopedFunctor dialogHider([&dialogView](){ dialogView->hideProgressDialog(); });