diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 35c8befa..c3cbf186 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -221,6 +221,7 @@ add_files( utility/messaging/type/MessageActivateWindow.h utility/messaging/type/MessageAutoRefreshChanged.h utility/messaging/type/MessageChangeFileView.h + utility/messaging/type/MessageClearErrorCount.h utility/messaging/type/MessageDeactivateEdge.h utility/messaging/type/MessageFind.h utility/messaging/type/MessageFinishedParsing.h diff --git a/src/lib/component/controller/StatusBarController.cpp b/src/lib/component/controller/StatusBarController.cpp index e8ac1380..a6ba5bf1 100644 --- a/src/lib/component/controller/StatusBarController.cpp +++ b/src/lib/component/controller/StatusBarController.cpp @@ -17,6 +17,16 @@ StatusBarView* StatusBarController::getView() return Controller::getView(); } +void StatusBarController::handleMessage(MessageClearErrorCount* message) +{ + getView()->setErrorCount(0); +} + +void StatusBarController::handleMessage(MessageFinishedParsing* message) +{ + getView()->setErrorCount(message->errorCount); +} + void StatusBarController::handleMessage(MessageShowErrors* message) { if (message->errorCount >= 0) diff --git a/src/lib/component/controller/StatusBarController.h b/src/lib/component/controller/StatusBarController.h index 4d24a9c8..81f8cdf1 100644 --- a/src/lib/component/controller/StatusBarController.h +++ b/src/lib/component/controller/StatusBarController.h @@ -6,6 +6,8 @@ #include "component/controller/Controller.h" #include "utility/messaging/MessageListener.h" +#include "utility/messaging/type/MessageClearErrorCount.h" +#include "utility/messaging/type/MessageFinishedParsing.h" #include "utility/messaging/type/MessageShowErrors.h" #include "utility/messaging/type/MessageStatus.h" @@ -13,6 +15,8 @@ class StatusBarView; class StatusBarController : public Controller + , public MessageListener + , public MessageListener , public MessageListener , public MessageListener { @@ -23,6 +27,8 @@ public: StatusBarView* getView(); private: + virtual void handleMessage(MessageClearErrorCount* message); + virtual void handleMessage(MessageFinishedParsing* message); virtual void handleMessage(MessageShowErrors* message); virtual void handleMessage(MessageStatus* message); diff --git a/src/lib/component/controller/UndoRedoController.cpp b/src/lib/component/controller/UndoRedoController.cpp index fcfb76b1..74465383 100644 --- a/src/lib/component/controller/UndoRedoController.cpp +++ b/src/lib/component/controller/UndoRedoController.cpp @@ -200,17 +200,6 @@ void UndoRedoController::handleMessage(MessageSearch* message) processCommand(command); } -void UndoRedoController::handleMessage(MessageShowErrors* message) -{ - if (m_lastCommand.message && m_lastCommand.message->getType() == message->getType()) - { - return; - } - - Command command(std::make_shared(*message), 0); - processCommand(command); -} - void UndoRedoController::handleMessage(MessageShowScope* message) { Command command(std::make_shared(*message), 1); diff --git a/src/lib/component/controller/UndoRedoController.h b/src/lib/component/controller/UndoRedoController.h index 862ba723..7e8b7bca 100644 --- a/src/lib/component/controller/UndoRedoController.h +++ b/src/lib/component/controller/UndoRedoController.h @@ -18,7 +18,6 @@ #include "utility/messaging/type/MessageRedo.h" #include "utility/messaging/type/MessageRefresh.h" #include "utility/messaging/type/MessageSearch.h" -#include "utility/messaging/type/MessageShowErrors.h" #include "utility/messaging/type/MessageShowScope.h" #include "utility/messaging/type/MessageUndo.h" @@ -43,7 +42,6 @@ class UndoRedoController , public MessageListener , public MessageListener , public MessageListener - , public MessageListener , public MessageListener , public MessageListener { @@ -75,7 +73,6 @@ private: virtual void handleMessage(MessageRedo* message); virtual void handleMessage(MessageRefresh* message); virtual void handleMessage(MessageSearch* message); - virtual void handleMessage(MessageShowErrors* message); virtual void handleMessage(MessageShowScope* message); virtual void handleMessage(MessageUndo* message); diff --git a/src/lib/data/Storage.cpp b/src/lib/data/Storage.cpp index 27c46190..e4dc278b 100644 --- a/src/lib/data/Storage.cpp +++ b/src/lib/data/Storage.cpp @@ -5,6 +5,7 @@ #include "utility/file/FileSystem.h" #include "utility/logging/logging.h" +#include "utility/messaging/type/MessageClearErrorCount.h" #include "utility/messaging/type/MessageShowErrors.h" #include "utility/TimePoint.h" #include "utility/utility.h" @@ -165,9 +166,7 @@ void Storage::logStats() const void Storage::startParsing() { - MessageShowErrors msg(getErrorCount()); - msg.setSendAsTask(false); - msg.dispatch(); + MessageClearErrorCount().dispatch(); m_sqliteStorage.setVersion(Version::getApplicationVersion()); } diff --git a/src/lib/utility/messaging/type/MessageClearErrorCount.h b/src/lib/utility/messaging/type/MessageClearErrorCount.h new file mode 100644 index 00000000..cc0fac79 --- /dev/null +++ b/src/lib/utility/messaging/type/MessageClearErrorCount.h @@ -0,0 +1,21 @@ +#ifndef MESSAGE_CLEAR_ERROR_COUNT_H +#define MESSAGE_CLEAR_ERROR_COUNT_H + +#include "utility/messaging/Message.h" + +class MessageClearErrorCount + : public Message +{ +public: + MessageClearErrorCount() + { + setSendAsTask(false); + } + + static const std::string getStaticType() + { + return "MessageClearErrorCount"; + } +}; + +#endif // MESSAGE_CLEAR_ERROR_COUNT_H diff --git a/src/lib_gui/qt/element/QtStatusBar.cpp b/src/lib_gui/qt/element/QtStatusBar.cpp index 37b5d6e3..0016a1f2 100644 --- a/src/lib_gui/qt/element/QtStatusBar.cpp +++ b/src/lib_gui/qt/element/QtStatusBar.cpp @@ -3,7 +3,7 @@ #include #include "qt/utility/utilityQt.h" -#include "utility/messaging/type/MessageShowErrors.h" +#include "utility/messaging/type/MessageSearch.h" #include "utility/ResourcePaths.h" QtStatusBar::QtStatusBar() @@ -78,5 +78,6 @@ void QtStatusBar::setErrorCount(size_t count) void QtStatusBar::showErrors() { - MessageShowErrors(-1).dispatch(); + SearchMatch match = SearchMatch::createCommand(SearchMatch::COMMAND_ERROR); + MessageSearch(std::vector(1, match)).dispatch(); }