From 4daf095371ffabd5a31e00525f6494b34767bea6 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 1 Apr 2014 11:40:14 +0200 Subject: [PATCH] Toolbar progress. --- src/definitions/definitions.h.in | 4 ++++ src/gui/feedmessageviewer.cpp | 15 +++++---------- src/gui/formmain.h | 1 + src/gui/messagestoolbar.cpp | 32 +++++++++++++++++++++++++++++++- src/gui/messagestoolbar.h | 9 +++++++-- 5 files changed, 48 insertions(+), 13 deletions(-) diff --git a/src/definitions/definitions.h.in b/src/definitions/definitions.h.in index 06ae7f19e..dc50a686d 100644 --- a/src/definitions/definitions.h.in +++ b/src/definitions/definitions.h.in @@ -64,6 +64,10 @@ #define STARTUP_UPDATE_DELAY 1500 #define TIMEZONE_OFFSET_LIMIT 6 #define CHANGE_EVENT_DELAY 250 +#define SPACER_OBJECT_NAME "spacer" +#define FILTER_OBJECT_NAME "filter" +#define FILTER_WIDTH 150 +#define FILTER_RIGHT_MARGIN 5 #define APP_DB_TEST_MYSQL "MySQLTest" #define APP_DB_MYSQL_PORT 3306 diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index b94c646c2..d10661b86 100644 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -303,21 +303,16 @@ void FeedMessageViewer::initialize() { m_toolBarFeeds->setAllowedAreas(Qt::TopToolBarArea); m_toolBarFeeds->setToolButtonStyle(Qt::ToolButtonIconOnly); - m_toolBarMessages->setFloatable(false); - m_toolBarMessages->setMovable(false); - m_toolBarMessages->setAllowedAreas(Qt::TopToolBarArea); - m_toolBarMessages->setToolButtonStyle(Qt::ToolButtonIconOnly); - // Add everything to toolbar. m_toolBarFeeds->addAction(FormMain::instance()->m_ui->m_actionUpdateAllFeeds); m_toolBarFeeds->addAction(FormMain::instance()->m_ui->m_actionMarkAllFeedsRead); m_toolBarFeeds->addAction(FormMain::instance()->m_ui->m_actionClearAllFeeds); - m_toolBarFeeds->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); - - m_toolBarMessages->addAction(FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsRead); - m_toolBarMessages->addAction(FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsUnread); - m_toolBarMessages->addAction(FormMain::instance()->m_ui->m_actionSwitchImportanceOfSelectedMessages); + m_toolBarMessages->setFloatable(false); + m_toolBarMessages->setMovable(false); + m_toolBarMessages->setAllowedAreas(Qt::TopToolBarArea); + m_toolBarMessages->setToolButtonStyle(Qt::ToolButtonIconOnly); + m_toolBarMessages->loadChangeableActions(); // Finish web/message browser setup. m_messagesBrowser->setNavigationBarVisible(false); diff --git a/src/gui/formmain.h b/src/gui/formmain.h index 8574bc617..d2e1a427a 100644 --- a/src/gui/formmain.h +++ b/src/gui/formmain.h @@ -33,6 +33,7 @@ class FormMain : public QMainWindow { friend class FeedMessageViewer; friend class MessagesView; friend class FeedsView; + friend class MessagesToolBar; public: // Constructors and destructors. diff --git a/src/gui/messagestoolbar.cpp b/src/gui/messagestoolbar.cpp index 2c7757584..1c96ba435 100644 --- a/src/gui/messagestoolbar.cpp +++ b/src/gui/messagestoolbar.cpp @@ -1,9 +1,39 @@ #include "gui/messagestoolbar.h" +#include "definitions/definitions.h" +#include "gui/baselineedit.h" +#include "gui/formmain.h" + MessagesToolBar::MessagesToolBar(const QString &title, QWidget *parent) - : BaseToolBar(title, parent) { + : BaseToolBar(title, parent), + m_spacer(new QWidget(this)), + m_txtFilter(new BaseLineEdit(this)) { + m_spacer->setObjectName(SPACER_OBJECT_NAME); + m_spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + m_txtFilter->setObjectName(FILTER_OBJECT_NAME); + m_txtFilter->setFixedWidth(FILTER_WIDTH); + m_txtFilter->setPlaceholderText(tr("Filter messages")); + + QMargins margins = contentsMargins(); + margins.setRight(margins.right() + FILTER_RIGHT_MARGIN); + setContentsMargins(margins); } MessagesToolBar::~MessagesToolBar() { } + +void MessagesToolBar::loadChangeableActions() { + + // TODO: udelat dynamicky, nacitat z nastaveni + // pouzit formmain::allActions treba a ukladat podle "objectname" + // allactions ale nani qhash, tak pouzit treba + // http://qt-project.org/doc/qt-4.8/qobject.html#findChild na hledani podle jmena + + addAction(FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsRead); + addAction(FormMain::instance()->m_ui->m_actionMarkSelectedMessagesAsUnread); + addAction(FormMain::instance()->m_ui->m_actionSwitchImportanceOfSelectedMessages); + + addWidget(m_spacer); + addWidget(m_txtFilter); +} diff --git a/src/gui/messagestoolbar.h b/src/gui/messagestoolbar.h index 06f5ed7ec..e91732917 100644 --- a/src/gui/messagestoolbar.h +++ b/src/gui/messagestoolbar.h @@ -4,6 +4,8 @@ #include "gui/basetoolbar.h" +class BaseLineEdit; + class MessagesToolBar : public BaseToolBar { Q_OBJECT @@ -30,13 +32,16 @@ class MessagesToolBar : public BaseToolBar { void saveChangeableActions() const { } - void loadChangeableActions() { - } + void loadChangeableActions(); signals: public slots: + private: + QWidget *m_spacer; + BaseLineEdit *m_txtFilter; + }; #endif // NEWSTOOLBAR_H