From 5fea315cc9fff6befeefa15b7fdb78e272438535 Mon Sep 17 00:00:00 2001 From: malte_langkabel Date: Fri, 17 Mar 2017 13:18:48 +0100 Subject: [PATCH] ui: Add status dialog for Maven project setup --- .../project_wizzard/QtProjectWizzardContent.cpp | 14 ++++++++++++-- .../project_wizzard/QtProjectWizzardContent.h | 4 ++++ .../QtProjectWizzardContentPath.cpp | 7 +++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContent.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContent.cpp index 2e3a9603..9d33fa04 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContent.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContent.cpp @@ -1,5 +1,7 @@ #include "qt/window/project_wizzard/QtProjectWizzardContent.h" +#include + #include #include "qt/window/QtTextEditDialog.h" @@ -40,6 +42,7 @@ QtProjectWizzardContent::QtProjectWizzardContent(std::shared_ptrsaveContent(); + std::thread([&](){ + std::vector fileNames = getFileNames(); + m_showFilesFunctor(fileNames); + + }).detach(); +} + +void QtProjectWizzardContent::showFilesDialog(const std::vector& fileNames) +{ if (!m_filesDialog) { - std::vector fileNames = getFileNames(); - m_filesDialog = std::make_shared( getFileNamesTitle(), QString::number(fileNames.size()) + " " + getFileNamesDescription()); m_filesDialog->setup(); diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContent.h b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContent.h index fb17eced..c5cdb5b5 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContent.h +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContent.h @@ -7,6 +7,7 @@ #include #include "qt/element/QtIconButton.h" +#include "qt/utility/QtThreadedFunctor.h" #include "qt/window/project_wizzard/QtProjectWizzardWindow.h" #include "settings/ProjectSettings.h" @@ -70,7 +71,10 @@ protected slots: void closedFilesDialog(); private: + void showFilesDialog(const std::vector& fileNames); + bool m_isInForm; + QtThreadedFunctor> m_showFilesFunctor; }; #endif // QT_PROJECT_WIZZARD_CONTENT_H diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPath.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPath.cpp index 12af7bc6..26e28ed4 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPath.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPath.cpp @@ -72,9 +72,9 @@ QtProjectWizzardContentPathSourceMaven::QtProjectWizzardContentPathSourceMaven( ) : QtProjectWizzardContentPath(settings, window) { - setTitleString("Maven Project Root"); + setTitleString("Maven Project File"); setHelpString( - "Enter the root folder of your Maven project (where the main .pom file resides).
" + "Enter the path to the main .pom file of your Maven project.
" "
" "You can make use of environment variables with ${ENV_VAR}." ); @@ -128,6 +128,7 @@ std::vector QtProjectWizzardContentPathSourceMaven::getFileNames() std::vector list; + Application::getInstance()->getDialogView()->showStatusDialog("Preparing Project", "Maven\nGenerating Source Files"); const bool success = utility::mavenGenerateSources(mavenPath, mavenProjectRoot); if (!success) { @@ -141,6 +142,7 @@ std::vector QtProjectWizzardContentPathSourceMaven::getFileNames() } else { + Application::getInstance()->getDialogView()->showStatusDialog("Preparing Project", "Maven\nFetching Source Directories"); const std::vector sourceDirectories = utility::mavenGetAllDirectoriesFromEffectivePom( mavenPath, mavenProjectRoot, @@ -167,6 +169,7 @@ std::vector QtProjectWizzardContentPathSourceMaven::getFileNames() list.push_back(path.str()); } } + Application::getInstance()->getDialogView()->hideStatusDialog(); return list; }