diff --git a/src/lib/component/controller/StatusBarController.cpp b/src/lib/component/controller/StatusBarController.cpp index d79f4f11..9e920983 100644 --- a/src/lib/component/controller/StatusBarController.cpp +++ b/src/lib/component/controller/StatusBarController.cpp @@ -43,7 +43,7 @@ void StatusBarController::handleMessage(MessageIndexingStatus* message) { if (message->showProgress) { - getView()->showIndexingProgress(message->unknownProgress, message->progressPercent); + getView()->showIndexingProgress(message->progressPercent); } else { diff --git a/src/lib/component/view/DialogView.cpp b/src/lib/component/view/DialogView.cpp index d26d68c2..79b26615 100644 --- a/src/lib/component/view/DialogView.cpp +++ b/src/lib/component/view/DialogView.cpp @@ -16,11 +16,6 @@ void DialogView::setDialogsHideable(bool hideable) m_dialogsHideable = hideable; } -void DialogView::setUpdateIndexingStatus(bool updateStatus) -{ - m_updateIndexingStatus = updateStatus; -} - bool DialogView::dialogsHidden() const { return false; diff --git a/src/lib/component/view/DialogView.h b/src/lib/component/view/DialogView.h index f34b0f6e..0250f745 100644 --- a/src/lib/component/view/DialogView.h +++ b/src/lib/component/view/DialogView.h @@ -34,7 +34,6 @@ public: UseCase getUseCase() const; void setDialogsHideable(bool hideable); - void setUpdateIndexingStatus(bool updateStatus); virtual bool dialogsHidden() const; virtual void clearDialogs(); @@ -64,7 +63,6 @@ protected: StorageAccess* m_storageAccess; bool m_dialogsHideable = false; - bool m_updateIndexingStatus = false; }; #endif // DIALOG_VIEW_H diff --git a/src/lib/component/view/StatusBarView.h b/src/lib/component/view/StatusBarView.h index 9da605db..367cdd64 100644 --- a/src/lib/component/view/StatusBarView.h +++ b/src/lib/component/view/StatusBarView.h @@ -19,7 +19,7 @@ public: virtual void showIdeStatus(const std::wstring& message) = 0; - virtual void showIndexingProgress(bool unknownProgress, size_t progressPercent) = 0; + virtual void showIndexingProgress(size_t progressPercent) = 0; virtual void hideIndexingProgress() = 0; protected: diff --git a/src/lib/data/TaskFinishParsing.cpp b/src/lib/data/TaskFinishParsing.cpp index 08c87ad0..ced4b55b 100644 --- a/src/lib/data/TaskFinishParsing.cpp +++ b/src/lib/data/TaskFinishParsing.cpp @@ -3,6 +3,7 @@ #include "component/view/DialogView.h" #include "data/storage/PersistentStorage.h" #include "utility/messaging/type/indexing/MessageIndexingFinished.h" +#include "utility/messaging/type/indexing/MessageIndexingStatus.h" #include "utility/messaging/type/MessageQuitApplication.h" #include "utility/messaging/type/MessageStatus.h" #include "utility/scheduling/Blackboard.h" @@ -91,6 +92,8 @@ Task::TaskState TaskFinishParsing::doUpdate(std::shared_ptr blackboa interruptedIndexing ); + MessageIndexingStatus(false).dispatch(); + { std::lock_guard lock(blackboard->getMutex()); diff --git a/src/lib/data/indexer/TaskBuildIndex.cpp b/src/lib/data/indexer/TaskBuildIndex.cpp index ca783b1e..f1821cdb 100644 --- a/src/lib/data/indexer/TaskBuildIndex.cpp +++ b/src/lib/data/indexer/TaskBuildIndex.cpp @@ -2,6 +2,7 @@ #include "utility/AppPath.h" #include "utility/logging/FileLogger.h" +#include "utility/messaging/type/indexing/MessageIndexingStatus.h" #include "utility/scheduling/Blackboard.h" #include "utility/UserPaths.h" #include "utility/utilityApp.h" @@ -298,4 +299,11 @@ void TaskBuildIndex::updateIndexingDialog( Application::getInstance()->getDialogView(DialogView::UseCase::INDEXING)->updateIndexingDialog( m_indexingFileCount, indexedSourceFileCount, sourceFileCount, sourcePaths); + + int progress = 0; + if (sourceFileCount) + { + progress = indexedSourceFileCount * 100 / sourceFileCount; + } + MessageIndexingStatus(true, progress).dispatch(); } diff --git a/src/lib/data/parser/TaskParseWrapper.cpp b/src/lib/data/parser/TaskParseWrapper.cpp index 0f7ddd7a..8b18d103 100644 --- a/src/lib/data/parser/TaskParseWrapper.cpp +++ b/src/lib/data/parser/TaskParseWrapper.cpp @@ -2,6 +2,7 @@ #include "component/view/DialogView.h" #include "data/storage/PersistentStorage.h" +#include "utility/messaging/type/indexing/MessageIndexingStatus.h" #include "utility/scheduling/Blackboard.h" #include "utility/utility.h" #include "Application.h" @@ -20,6 +21,8 @@ void TaskParseWrapper::doEnter(std::shared_ptr blackboard) { dialogView->clearDialogs(); dialogView->updateIndexingDialog(0, 0, sourceFileCount, { }); + + MessageIndexingStatus(true, 0).dispatch(); } m_start = utility::durationStart(); diff --git a/src/lib/project/Project.cpp b/src/lib/project/Project.cpp index ad3cd27c..f1d3d3a8 100644 --- a/src/lib/project/Project.cpp +++ b/src/lib/project/Project.cpp @@ -24,6 +24,7 @@ #include "utility/messaging/type/error/MessageErrorCountClear.h" #include "utility/messaging/type/indexing/MessageIndexingFinished.h" #include "utility/messaging/type/indexing/MessageIndexingStarted.h" +#include "utility/messaging/type/indexing/MessageIndexingStatus.h" #include "utility/messaging/type/MessageRefresh.h" #include "utility/messaging/type/MessageStatus.h" #include "utility/scheduling/TaskDecoratorRepeat.h" @@ -398,6 +399,7 @@ void Project::buildIndex(const RefreshInfo& info, std::shared_ptr di MessageErrorCountClear().dispatch(); dialogView->showUnknownProgressDialog(L"Preparing Indexing", L"Setting up Indexers"); + MessageIndexingStatus(true, 0).dispatch(); m_storageCache->clear(); m_storageCache->setSubject(m_storage.get()); @@ -417,7 +419,6 @@ void Project::buildIndex(const RefreshInfo& info, std::shared_ptr di bool hideable = m_state == PROJECT_STATE_LOADED || m_state == PROJECT_STATE_OUTDATED; dialogView->setDialogsHideable(hideable); - dialogView->setUpdateIndexingStatus(true); if (info.mode != REFRESH_ALL_FILES && (info.filesToClear.size() || info.nonIndexedFilesToClear.size())) { @@ -560,7 +561,6 @@ void Project::buildIndex(const RefreshInfo& info, std::shared_ptr di taskSequential->addTask(std::make_shared([dialogView, this]() { m_isIndexing = false; dialogView->setDialogsHideable(false); - dialogView->setUpdateIndexingStatus(false); MessageIndexingFinished().dispatch(); })); diff --git a/src/lib/utility/messaging/type/indexing/MessageIndexingStatus.h b/src/lib/utility/messaging/type/indexing/MessageIndexingStatus.h index 45ff526e..f444f199 100644 --- a/src/lib/utility/messaging/type/indexing/MessageIndexingStatus.h +++ b/src/lib/utility/messaging/type/indexing/MessageIndexingStatus.h @@ -12,16 +12,14 @@ public: return "MessageIndexingStatus"; } - MessageIndexingStatus(bool showProgress, bool unknownProgress, size_t progressPercent) + MessageIndexingStatus(bool showProgress, size_t progressPercent = 0) : showProgress(showProgress) - , unknownProgress(unknownProgress) , progressPercent(progressPercent) { setSendAsTask(false); } const bool showProgress; - const bool unknownProgress; const size_t progressPercent; }; diff --git a/src/lib_gui/qt/element/QtStatusBar.cpp b/src/lib_gui/qt/element/QtStatusBar.cpp index 5aee4cd1..99ef50c2 100644 --- a/src/lib_gui/qt/element/QtStatusBar.cpp +++ b/src/lib_gui/qt/element/QtStatusBar.cpp @@ -84,8 +84,8 @@ QtStatusBar::QtStatusBar() m_indexingProgress = new QProgressBar(); m_indexingProgress->setMinimum(0); - m_indexingProgress->setMaximum(0); - m_indexingProgress->setValue(0); + m_indexingProgress->setMaximum(100); + m_indexingProgress->setValue(100); layout->addWidget(m_indexingProgress); m_indexingStatus->setLayout(layout); @@ -155,23 +155,14 @@ void QtStatusBar::setIdeStatus(const std::wstring& text) m_ideStatusText.setText(QString::fromStdWString(text)); } -void QtStatusBar::showIndexingProgress(bool unknownProgress, size_t progressPercent) +void QtStatusBar::showIndexingProgress(size_t progressPercent) { m_indexingStatus->show(); m_vlineIndexing->show(); m_errorButton.setEnabled(false); - if (unknownProgress) - { - m_indexingProgress->setValue(0); - m_indexingProgress->setMaximum(0); - } - else - { - m_indexingProgress->setValue(progressPercent); - m_indexingProgress->setMaximum(100); - } + m_indexingProgress->setValue(progressPercent); } void QtStatusBar::hideIndexingProgress() diff --git a/src/lib_gui/qt/element/QtStatusBar.h b/src/lib_gui/qt/element/QtStatusBar.h index 4bc3e3ed..5328511f 100644 --- a/src/lib_gui/qt/element/QtStatusBar.h +++ b/src/lib_gui/qt/element/QtStatusBar.h @@ -25,7 +25,7 @@ public: void setIdeStatus(const std::wstring& text); - void showIndexingProgress(bool unknownProgress, size_t progressPercent); + void showIndexingProgress(size_t progressPercent); void hideIndexingProgress(); protected: diff --git a/src/lib_gui/qt/view/QtDialogView.cpp b/src/lib_gui/qt/view/QtDialogView.cpp index 097f1964..363138a7 100644 --- a/src/lib_gui/qt/view/QtDialogView.cpp +++ b/src/lib_gui/qt/view/QtDialogView.cpp @@ -33,13 +33,7 @@ QtDialogView::~QtDialogView() bool QtDialogView::dialogsHidden() const { - QtIndexingDialog* window = dynamic_cast(m_windowStack.getTopWindow()); - if (window) - { - return window->isHidden(); - } - - return false; + return !m_dialogsVisible; } void QtDialogView::clearDialogs() @@ -114,11 +108,6 @@ void QtDialogView::showProgressDialog(const std::wstring& title, const std::wstr window->updateMessage(QString::fromStdWString(message)); window->updateProgress(progress); - if (m_updateIndexingStatus) - { - MessageIndexingStatus(true, false, progress).dispatch(); - } - setUIBlocked(m_dialogsVisible); } ); @@ -239,9 +228,11 @@ void QtDialogView::updateIndexingDialog( std::vector stati; for (const FilePath& path : sourcePaths) { - stati.push_back(L"[" + std::to_wstring(startedFileCount) + L"/" + std::to_wstring(totalFileCount) + L"] Indexing file: " + path.wstr()); + stati.push_back( + L"[" + std::to_wstring(startedFileCount) + L"/" + std::to_wstring(totalFileCount) + + L"] Indexing file: " + path.wstr()); } - MessageStatus(stati, false, true, m_dialogsVisible).dispatch(); + MessageStatus(stati, false, false, m_dialogsVisible).dispatch(); } QtIndexingDialog* window = dynamic_cast(m_windowStack.getTopWindow()); @@ -255,21 +246,11 @@ void QtDialogView::updateIndexingDialog( if (window && window->getType() == QtIndexingDialog::DIALOG_INDEXING) { - window->updateIndexingProgress(finishedFileCount, totalFileCount, sourcePaths.empty() ? FilePath() : sourcePaths.back()); + window->updateIndexingProgress( + finishedFileCount, totalFileCount, sourcePaths.empty() ? FilePath() : sourcePaths.back()); } m_mainWindow->setWindowsTaskbarProgress(float(finishedFileCount) / totalFileCount); - if (m_updateIndexingStatus) - { - int progress = 0; - if (totalFileCount) - { - progress = finishedFileCount * 100 / totalFileCount; - } - - MessageIndexingStatus(true, false, progress).dispatch(); - } - setUIBlocked(m_dialogsVisible); } ); @@ -279,11 +260,6 @@ DatabasePolicy QtDialogView::finishedIndexingDialog( size_t indexedFileCount, size_t totalIndexedFileCount, size_t completedFileCount, size_t totalFileCount, float time, ErrorCountInfo errorInfo, bool interrupted) { - if (m_updateIndexingStatus) - { - MessageIndexingStatus(false, false, 0).dispatch(); - } - DatabasePolicy policy = DATABASE_POLICY_UNKNOWN; m_resultReady = false; @@ -441,11 +417,6 @@ void QtDialogView::showUnknownProgress(const std::wstring& title, const std::wst window->updateTitle(QString::fromStdWString(title)); window->updateMessage(QString::fromStdWString(message)); - if (m_updateIndexingStatus) - { - MessageIndexingStatus(true, true, 0).dispatch(); - } - setUIBlocked(m_dialogsVisible); } diff --git a/src/lib_gui/qt/view/QtStatusBarView.cpp b/src/lib_gui/qt/view/QtStatusBarView.cpp index 01fdd757..db4893e1 100644 --- a/src/lib_gui/qt/view/QtStatusBarView.cpp +++ b/src/lib_gui/qt/view/QtStatusBarView.cpp @@ -57,12 +57,12 @@ void QtStatusBarView::showIdeStatus(const std::wstring& message) ); } -void QtStatusBarView::showIndexingProgress(bool unknownProgress, size_t progressPercent) +void QtStatusBarView::showIndexingProgress(size_t progressPercent) { m_onQtThread( [=]() { - m_widget->showIndexingProgress(unknownProgress, progressPercent); + m_widget->showIndexingProgress(progressPercent); } ); } diff --git a/src/lib_gui/qt/view/QtStatusBarView.h b/src/lib_gui/qt/view/QtStatusBarView.h index 71f1acd9..b51b0dbe 100644 --- a/src/lib_gui/qt/view/QtStatusBarView.h +++ b/src/lib_gui/qt/view/QtStatusBarView.h @@ -27,7 +27,7 @@ public: virtual void showIdeStatus(const std::wstring& message); - virtual void showIndexingProgress(bool unknownProgress, size_t progressPercent); + virtual void showIndexingProgress(size_t progressPercent); virtual void hideIndexingProgress(); private: