logic: Use ControllerProxy in Bookmarking UI classes instead of messaging

* changed ControllerProxy to template class
* allow passing method pointers and arguments to ControllerProxy
* replaced some messages with ControllerProxy calls
* moved logic from BookmarkView into BookmarkController
This commit is contained in:
Eberhard Graether
2017-10-03 07:59:59 +02:00
parent e604d24c40
commit a72da67d32
33 changed files with 641 additions and 840 deletions
+7 -10
View File
@@ -6,15 +6,12 @@
#include <QTimer>
#include <QVBoxLayout>
#include "utility/messaging/type/MessageActivateBookmark.h"
#include "utility/messaging/type/MessageDeleteBookmark.h"
#include "utility/messaging/type/MessageDisplayBookmarkEditor.h"
#include "qt/utility/utilityQt.h"
#include "utility/ResourcePaths.h"
#include "qt/utility/utilityQt.h"
QtBookmark::QtBookmark()
: m_treeWidgetItem(NULL)
QtBookmark::QtBookmark(ControllerProxy<BookmarkController>* controllerProxy)
: m_controllerProxy(controllerProxy)
, m_treeWidgetItem(NULL)
, m_arrowImageName("arrow_line_down.png")
, m_hovered(false)
, m_ignoreNextResize(false)
@@ -202,12 +199,12 @@ void QtBookmark::leaveEvent(QEvent *event)
void QtBookmark::activateClicked()
{
MessageActivateBookmark(m_bookmark).dispatch();
m_controllerProxy->executeAsTaskWithArgs(&BookmarkController::activateBookmark, m_bookmark);
}
void QtBookmark::editClicked()
{
MessageDisplayBookmarkEditor(m_bookmark).dispatch();
m_controllerProxy->executeAsTaskWithArgs(&BookmarkController::showBookmarkEditor, m_bookmark);
}
void QtBookmark::deleteClicked()
@@ -222,7 +219,7 @@ void QtBookmark::deleteClicked()
if (ret == 0) // QMessageBox::Yes)
{
MessageDeleteBookmark(m_bookmark->getId()).dispatch();
m_controllerProxy->executeAsTaskWithArgs(&BookmarkController::deleteBookmark, m_bookmark->getId());
}
}
+5 -1
View File
@@ -6,6 +6,8 @@
#include <QPushButton>
#include <QTreeWidget>
#include "component/controller/BookmarkController.h"
#include "component/controller/helper/ControllerProxy.h"
#include "data/bookmark/Bookmark.h"
class Bookmark;
@@ -16,7 +18,7 @@ class QtBookmark
Q_OBJECT
public:
QtBookmark();
QtBookmark(ControllerProxy<BookmarkController>* controllerProxy);
virtual ~QtBookmark();
void setBookmark(const std::shared_ptr<Bookmark> bookmark);
@@ -46,6 +48,8 @@ private:
std::string getDateString() const;
ControllerProxy<BookmarkController>* m_controllerProxy;
QPushButton* m_activateButton;
QPushButton* m_editButton;
QPushButton* m_deleteButton;
@@ -1,15 +1,17 @@
#include "QtBookmarkCategory.h"
#include <QHBoxLayout>
#include <QLabel>
#include <QMessageBox>
#include "utility/messaging/type/MessageDeleteBookmarkCategory.h"
#include "utility/ResourcePaths.h"
#include <QPushButton>
#include <QTreeWidget>
#include "qt/utility/utilityQt.h"
#include "utility/ResourcePaths.h"
QtBookmarkCategory::QtBookmarkCategory()
: m_id(0)
QtBookmarkCategory::QtBookmarkCategory(ControllerProxy<BookmarkController>* controllerProxy)
: m_controllerProxy(controllerProxy)
, m_id(0)
{
setObjectName("bookmark_category");
@@ -125,6 +127,6 @@ void QtBookmarkCategory::deleteClicked()
if (ret == 0) // QMessageBox::Yes
{
MessageDeleteBookmarkCategory(m_id).dispatch();
m_controllerProxy->executeAsTaskWithArgs(&BookmarkController::deleteBookmarkCategory, m_id);
}
}
+9 -4
View File
@@ -2,19 +2,22 @@
#define QT_BOOKMARK_CATEGORY_H
#include <QFrame>
#include <QLabel>
#include <QPushButton>
#include <QTreeWidget>
#include "component/controller/BookmarkController.h"
#include "component/controller/helper/ControllerProxy.h"
#include "utility/types.h"
class QLabel;
class QPushButton;
class QTreeWidgetItem;
class QtBookmarkCategory
: public QFrame
{
Q_OBJECT
public:
QtBookmarkCategory();
QtBookmarkCategory(ControllerProxy<BookmarkController>* controllerProxy);
~QtBookmarkCategory();
void setName(const std::string& name);
@@ -38,6 +41,8 @@ private slots:
void deleteClicked();
private:
ControllerProxy<BookmarkController>* m_controllerProxy;
QLabel* m_name;
Id m_id;
+3 -10
View File
@@ -8,8 +8,6 @@
#include <QPushButton>
#include <QTimer>
#include "component/controller/helper/ControllerProxy.h"
#include "component/controller/ScreenSearchController.h"
#include "qt/utility/utilityQt.h"
#include "utility/ResourcePaths.h"
@@ -30,7 +28,7 @@ bool QtFocusInFilter::eventFilter(QObject* obj, QEvent* event)
}
QtScreenSearchBox::QtScreenSearchBox(ControllerProxy* controllerProxy, QWidget* parent)
QtScreenSearchBox::QtScreenSearchBox(ControllerProxy<ScreenSearchController>* controllerProxy, QWidget* parent)
: QFrame(parent)
, m_controllerProxy(controllerProxy)
{
@@ -195,7 +193,7 @@ void QtScreenSearchBox::searchQueryChanged()
void QtScreenSearchBox::findMatches()
{
m_controllerProxy->executeAsTask<ScreenSearchController>(
m_controllerProxy->executeAsTask(
[this](ScreenSearchController* controller)
{
std::set<std::string> responderNames;
@@ -236,12 +234,7 @@ void QtScreenSearchBox::nextPressed()
void QtScreenSearchBox::activateMatch(bool next)
{
m_controllerProxy->executeAsTask<ScreenSearchController>(
[next, this](ScreenSearchController* controller)
{
controller->activateMatch(next);
}
);
m_controllerProxy->executeAsTaskWithArgs(&ScreenSearchController::activateMatch, next);
}
void QtScreenSearchBox::updateMatchLabel()
+5 -3
View File
@@ -3,7 +3,9 @@
#include <QFrame>
class ControllerProxy;
#include "component/controller/helper/ControllerProxy.h"
#include "component/controller/ScreenSearchController.h"
class QCheckBox;
class QHBoxLayout;
class QLineEdit;
@@ -33,7 +35,7 @@ class QtScreenSearchBox
Q_OBJECT
public:
QtScreenSearchBox(ControllerProxy* controllerProxy, QWidget* parent = nullptr);
QtScreenSearchBox(ControllerProxy<ScreenSearchController>* controllerProxy, QWidget* parent = nullptr);
virtual ~QtScreenSearchBox();
void refreshStyle();
@@ -62,7 +64,7 @@ private:
void updateMatchLabel();
ControllerProxy* m_controllerProxy;
ControllerProxy<ScreenSearchController>* m_controllerProxy;
QLineEdit* m_searchBox;
QPushButton* m_matchLabel;