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