From 0fad00e6f2c01b25329b95c4433e842780531d82 Mon Sep 17 00:00:00 2001 From: Andreas Stallinger Date: Mon, 28 Nov 2016 16:01:50 +0100 Subject: [PATCH] ui: clear button logview --- src/lib/CMakeLists.txt | 1 + .../component/controller/LogController.cpp | 6 ++++++ src/lib/component/controller/LogController.h | 3 +++ .../messaging/type/MessageClearLogView.h | 20 +++++++++++++++++++ src/lib_gui/qt/view/QtLogView.cpp | 12 ++++++----- 5 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 src/lib/utility/messaging/type/MessageClearLogView.h diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 16de2db5..7858b9e2 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -255,6 +255,7 @@ add_files( utility/messaging/type/MessageActivateWindow.h utility/messaging/type/MessageChangeFileView.h utility/messaging/type/MessageClearErrorCount.h + utility/messaging/type/MessageClearLogView.h utility/messaging/type/MessageCodeReference.h utility/messaging/type/MessageColorSchemeTest.h utility/messaging/type/MessageDeactivateEdge.h diff --git a/src/lib/component/controller/LogController.cpp b/src/lib/component/controller/LogController.cpp index 17bd676c..48072f94 100644 --- a/src/lib/component/controller/LogController.cpp +++ b/src/lib/component/controller/LogController.cpp @@ -32,6 +32,7 @@ LogView* LogController::getView() const void LogController::clear() { + m_logs.clear(); getView()->clear(); } @@ -80,6 +81,11 @@ void LogController::handleMessage(MessageLogFilterChanged* message) syncLogs(); } +void LogController::handleMessage(MessageClearLogView* message) +{ + clear(); +} + void LogController::addLog(Logger::LogLevel type, const LogMessage& message) { diff --git a/src/lib/component/controller/LogController.h b/src/lib/component/controller/LogController.h index 132c07e8..96b18638 100644 --- a/src/lib/component/controller/LogController.h +++ b/src/lib/component/controller/LogController.h @@ -9,6 +9,7 @@ #include "utility/logging/Logger.h" #include "utility/logging/LogMessage.h" #include "utility/messaging/MessageListener.h" +#include "utility/messaging/type/MessageClearLogView.h" #include "utility/messaging/type/MessageLogFilterChanged.h" class StorageAccess; @@ -16,6 +17,7 @@ class StorageAccess; class LogController : public Controller , public Logger + , public MessageListener , public MessageListener { public: @@ -35,6 +37,7 @@ private: virtual void logWarning(const LogMessage& message); virtual void logError(const LogMessage& message); + virtual void handleMessage(MessageClearLogView* message); virtual void handleMessage(MessageLogFilterChanged* message); std::vector m_logs; diff --git a/src/lib/utility/messaging/type/MessageClearLogView.h b/src/lib/utility/messaging/type/MessageClearLogView.h new file mode 100644 index 00000000..0d1f3ab4 --- /dev/null +++ b/src/lib/utility/messaging/type/MessageClearLogView.h @@ -0,0 +1,20 @@ +#ifndef MESSAGE_CLEAR_LOG_VIEW_H +#define MESSAGE_CLEAR_LOG_VIEW_H + +#include "utility/messaging/Message.h" + +class MessageClearLogView: + public Message +{ +public: + MessageClearLogView() + { + } + + static const std::string getStaticType() + { + return "MessageClearLogView"; + } +}; + +#endif // MESSAGE_CLEAR_LOG_VIEW_H diff --git a/src/lib_gui/qt/view/QtLogView.cpp b/src/lib_gui/qt/view/QtLogView.cpp index bab60666..ad51b661 100644 --- a/src/lib_gui/qt/view/QtLogView.cpp +++ b/src/lib_gui/qt/view/QtLogView.cpp @@ -10,6 +10,7 @@ #include "settings/ApplicationSettings.h" #include "settings/ColorScheme.h" #include "qt/view/QtViewWidgetWrapper.h" +#include "utility/messaging/type/MessageClearLogView.h" #include "utility/messaging/type/MessageRefresh.h" #include "utility/messaging/type/MessageLogFilterChanged.h" #include "utility/ResourcePaths.h" @@ -100,11 +101,12 @@ void QtLogView::initView() QPushButton* clearButton = new QPushButton("clear log"); connect(clearButton, &QPushButton::clicked, - [=]() - { - doClear(); - }); - //filters->addWidget(clearButton); + [=]() + { + //doClear(); + MessageClearLogView().dispatch(); + }); + filters->addWidget(clearButton); filters->addSpacing(30); updateMask();