logic: background indexing (issue #175)

* allow hiding of indexing dialogs to browse loaded project while indexing
* show indexing status in status bar while indexing
* use different dialog views for different use cases to avoid state collisions
* fixed error label in status bar jittering while indexing
* show hand cursors for clickable elements in status bar
* indexing is not interrupted on pressing ESC while in hidden
* disable error table and error label while indexing
* refactored indexing messages
* forbid indexing and changing project while indexing
* don't show indexing status messages in status bar when indexing in the background
* allow tasks to run in the background

fortune cookie message = A journey is waiting for you.
This commit is contained in:
Eberhard Graether
2018-07-10 11:42:58 +02:00
parent 6bbb44309d
commit ad325ac974
76 changed files with 875 additions and 448 deletions
+3 -3
View File
@@ -18,7 +18,7 @@ TaskCleanStorage::TaskCleanStorage(
void TaskCleanStorage::doEnter(std::shared_ptr<Blackboard> blackboard)
{
Application::getInstance()->getDialogView()->showUnknownProgressDialog(
Application::getInstance()->getDialogView(DialogView::UseCase::INDEXING)->showUnknownProgressDialog(
L"Clearing Files", std::to_wstring(m_filePaths.size()) + L" Files");
m_start = utility::durationStart();
@@ -38,7 +38,7 @@ Task::TaskState TaskCleanStorage::doUpdate(std::shared_ptr<Blackboard> blackboar
m_storage->clearFileElements(m_filePaths, [=](int progress)
{
Application::getInstance()->getDialogView()->showProgressDialog(
Application::getInstance()->getDialogView(DialogView::UseCase::INDEXING)->showProgressDialog(
L"Clearing", std::to_wstring(m_filePaths.size()) + L" Files", progress);
}
);
@@ -52,7 +52,7 @@ void TaskCleanStorage::doExit(std::shared_ptr<Blackboard> blackboard)
{
blackboard->set("clear_time", utility::duration(m_start));
Application::getInstance()->getDialogView()->hideProgressDialog();
Application::getInstance()->getDialogView(DialogView::UseCase::INDEXING)->hideProgressDialog();
}
void TaskCleanStorage::doReset(std::shared_ptr<Blackboard> blackboard)