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