xref: /OK3568_Linux_fs/app/forlinx/flapp/src/plugins/simplebrowser/browserwindow.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #ifndef BROWSERWINDOW_H
2 #define BROWSERWINDOW_H
3 
4 #include <QMainWindow>
5 #include <QTime>
6 #include <QWebEnginePage>
7 
8 QT_BEGIN_NAMESPACE
9 class QLineEdit;
10 class QProgressBar;
11 QT_END_NAMESPACE
12 
13 class Browser;
14 class TabWidget;
15 class WebView;
16 #include "iwidget.h"
17 
18 class BrowserWindow : public IWidget
19 {
20     Q_OBJECT
21 
22     Q_PLUGIN_METADATA(IID PLUGIN_INTERFACE_iid FILE "brower.json")
23 public:
24     BrowserWindow(Browser *browser, QWebEngineProfile *profile);
25     QSize sizeHint() const override;
26     TabWidget *tabWidget() const;
27     WebView *currentTab() const;
browser()28     Browser *browser() { return m_browser; }
29     QString id();
30 
31 protected:
32     void closeEvent(QCloseEvent *event) override;
33 
34 private slots:
35     void handleNewWindowTriggered();
36     void handleNewIncognitoWindowTriggered();
37     void handleFileOpenTriggered();
38     void handleFindActionTriggered();
39     void handleShowWindowTriggered();
40     void handleWebViewLoadProgress(int);
41     void handleWebViewTitleChanged(const QString &title);
42     void handleWebActionEnabledChanged(QWebEnginePage::WebAction action, bool enabled);
43 
44 private:
45     QMenu *createFileMenu(TabWidget *tabWidget);
46     QMenu *createEditMenu();
47     QMenu *createViewMenu(QToolBar *toolBar);
48     QMenu *createWindowMenu(TabWidget *tabWidget);
49     QMenu *createHelpMenu();
50     QToolBar *createToolBar();
51 
52 private:
53     Browser *m_browser;
54     QWebEngineProfile *m_profile;
55     TabWidget *m_tabWidget;
56     QProgressBar *m_progressBar;
57     QAction *m_historyBackAction;
58     QAction *m_historyForwardAction;
59     QAction *m_stopAction;
60     QAction *m_reloadAction;
61     QAction *m_stopReloadAction;
62     QLineEdit *m_urlLineEdit;
63     QAction *m_favAction;
64     QString m_lastSearch;
65 };
66 
67 #endif // BROWSERWINDOW_H
68