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
@@ -1,5 +1,7 @@
#include "component/controller/ErrorController.h"
#include "Application.h"
#include "component/view/DialogView.h"
#include "data/access/StorageAccess.h"
#include "settings/ApplicationSettings.h"
@@ -100,7 +102,11 @@ void ErrorController::handleMessage(MessageErrorCountUpdate* message)
}
getView()->addErrors(errors, message->errorCount, true);
getView()->showDockWidget();
if (!Application::getInstance()->getDialogView(DialogView::UseCase::INDEXING)->dialogsHidden())
{
getView()->showDockWidget();
}
m_errorCount += errors.size();
}
@@ -139,11 +145,18 @@ void ErrorController::handleMessage(MessageErrorsHelpMessage* message)
getView()->showErrorHelpMessage();
}
void ErrorController::handleMessage(MessageFinishedParsing* message)
void ErrorController::handleMessage(MessageIndexingFinished* message)
{
clear();
showErrors(getView()->getErrorFilter(), false);
getView()->setEnabled(true);
}
void ErrorController::handleMessage(MessageIndexingStarted* message)
{
getView()->setEnabled(false);
}
void ErrorController::handleMessage(MessageShowError* message)