// For license of this file, see /LICENSE.md. #ifndef MESSAGEPREVIEWER_H #define MESSAGEPREVIEWER_H #include #include "core/message.h" #include "services/abstract/rootitem.h" #include class QToolButton; class QGridLayout; class QToolBar; #if defined (USE_WEBENGINE) class WebBrowser; #else class MessageBrowser; #endif class MessagePreviewer : public QWidget { Q_OBJECT public: explicit MessagePreviewer(QWidget* parent = nullptr); void reloadFontSettings(); #if defined (USE_WEBENGINE) WebBrowser* webBrowser() const; #endif public slots: void clear(); void hideToolbar(); void loadMessage(const Message& message, RootItem* root); private slots: void markMessageAsRead(); void markMessageAsUnread(); void markMessageAsReadUnread(RootItem::ReadStatus read); void switchMessageImportance(bool checked); protected: signals: void markMessageRead(int id, RootItem::ReadStatus read); void markMessageImportant(int id, RootItem::Importance important); private: void createConnections(); void updateButtons(); void updateLabels(bool only_clear); QGridLayout* m_layout; QToolBar* m_toolBar; #if defined (USE_WEBENGINE) WebBrowser* m_txtMessage; #else MessageBrowser* m_txtMessage; #endif double m_verticalScrollBarPosition; Message m_message; QPointer m_root; QAction* m_actionMarkRead; QAction* m_actionMarkUnread; QAction* m_actionSwitchImportance; QAction* m_separator; QList> m_btnLabels; }; #endif // MESSAGEPREVIEWER_H