1 // For license of this file, see <project-root-folder>/LICENSE.md. 2 3 #ifndef NEWSTOOLBAR_H 4 #define NEWSTOOLBAR_H 5 6 #include "gui/toolbars/basetoolbar.h" 7 8 #include "core/messagesmodel.h" 9 10 class BaseLineEdit; 11 class QWidgetAction; 12 class QToolButton; 13 class QMenu; 14 class QTimer; 15 16 class MessagesToolBar : public BaseToolBar { 17 Q_OBJECT 18 19 public: 20 explicit MessagesToolBar(const QString& title, QWidget* parent = nullptr); 21 22 virtual QList<QAction*> availableActions() const; 23 virtual QList<QAction*> activatedActions() const; 24 virtual void saveAndSetActions(const QStringList& actions); 25 virtual void loadSpecificActions(const QList<QAction*>& actions, bool initial_load = false); 26 virtual QList<QAction*> convertActions(const QStringList& actions); 27 virtual QStringList defaultActions() const; 28 virtual QStringList savedActions() const; 29 30 signals: 31 void messageSearchPatternChanged(const QString& pattern); 32 void messageFilterChanged(MessagesModel::MessageHighlighter filter); 33 34 private slots: 35 void onSearchPatternChanged(const QString& search_pattern); 36 void handleMessageHighlighterChange(QAction* action); 37 38 private: 39 void initializeSearchBox(); 40 void initializeHighlighter(); 41 42 private: 43 QWidgetAction* m_actionMessageHighlighter; 44 QToolButton* m_btnMessageHighlighter; 45 QMenu* m_menuMessageHighlighter; 46 QWidgetAction* m_actionSearchMessages; 47 BaseLineEdit* m_txtSearchMessages; 48 QTimer* m_tmrSearchPattern; 49 QString m_searchPattern; 50 }; 51 52 #endif // NEWSTOOLBAR_H 53