1 // For license of this file, see <project-root-folder>/LICENSE.md. 2 3 #ifndef MESSAGEBROWSER_H 4 #define MESSAGEBROWSER_H 5 6 #include <QWidget> 7 8 #include "core/message.h" 9 10 #include "services/abstract/rootitem.h" 11 12 #include <QPointer> 13 14 class RootItem; 15 class QVBoxLayout; 16 class MessageTextBrowser; 17 class SearchTextWidget; 18 19 class MessageBrowser : public QWidget { 20 Q_OBJECT 21 22 public: 23 explicit MessageBrowser(bool should_resize_to_fit, QWidget* parent = nullptr); 24 25 double verticalScrollBarPosition() const; 26 27 public slots: 28 void setVerticalScrollBarPosition(double pos); 29 void clear(bool also_hide); 30 void reloadFontSettings(); 31 void loadMessage(const Message& message, RootItem* root); 32 33 protected: 34 bool eventFilter(QObject* watched, QEvent* event); 35 36 private: 37 QString prepareHtmlForMessage(const Message& message); 38 39 private: 40 MessageTextBrowser* m_txtBrowser; 41 SearchTextWidget* m_searchWidget; 42 QVBoxLayout* m_layout; 43 QStringList m_pictures; 44 QPointer<RootItem> m_root; 45 }; 46 47 #endif // MESSAGEBROWSER_H 48