ui: add progress dialog for "show source files" button

This commit is contained in:
malte_langkabel
2017-07-24 14:20:26 +02:00
parent bec7aa4aac
commit f2c7ecbbdf
3 changed files with 23 additions and 8 deletions
+6
View File
@@ -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<std::string>& options)
@@ -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<SourceGroupSettings> settings, QtProjectWizzardWindow* window)
@@ -226,8 +227,12 @@ std::vector<std::string> QtProjectWizzardContentPathSourceMaven::getFileNames()
std::vector<std::string> list;
std::shared_ptr<DialogView> dialogView = Application::getInstance()->getDialogView();
std::dynamic_pointer_cast<QtDialogView>(dialogView)->setParentWindow(m_window);
ScopedFunctor scopedFunctor([&dialogView](){
dialogView->hideUnknownProgressDialog();
});
std::dynamic_pointer_cast<QtDialogView>(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<std::string> QtProjectWizzardContentPathSourceMaven::getFileNames()
list.push_back(path.str());
}
}
dialogView->hideUnknownProgressDialog();
std::dynamic_pointer_cast<QtDialogView>(dialogView)->setParentWindow(nullptr);
return list;
}
QtProjectWizzardContentPathDependenciesMaven::QtProjectWizzardContentPathDependenciesMaven(
std::shared_ptr<SourceGroupSettings> settings, QtProjectWizzardWindow* window
)
@@ -176,6 +176,15 @@ void QtProjectWizzardContentPathsSource::save()
std::vector<std::string> QtProjectWizzardContentPathsSource::getFileNames() const
{
std::shared_ptr<DialogView> dialogView = Application::getInstance()->getDialogView();
ScopedFunctor scopedFunctor([&dialogView](){
dialogView->hideUnknownProgressDialog();
});
std::dynamic_pointer_cast<QtDialogView>(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<IncludeDirective> unresolvedIncludes;
{
std::shared_ptr<DialogView> dialogView = Application::getInstance()->getDialogView();
std::dynamic_pointer_cast<QtDialogView>(dialogView)->setParentWindow(m_window);
ScopedFunctor dialogParentResetter([&dialogView](){
std::dynamic_pointer_cast<QtDialogView>(dialogView)->setParentWindow(nullptr);
});
std::vector<FilePath> sourceFilePaths;
std::vector<FilePath> indexedFilePaths;
std::vector<FilePath> headerSearchPaths;
{
std::dynamic_pointer_cast<QtDialogView>(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<QtDialogView>(dialogView)->setParentWindow(m_window);
ScopedFunctor dialogHider([&dialogView](){
dialogView->hideProgressDialog();
});