#ifndef BROWSERWINDOW_H #define BROWSERWINDOW_H #include #include #include QT_BEGIN_NAMESPACE class QLineEdit; class QProgressBar; QT_END_NAMESPACE class Browser; class TabWidget; class WebView; #include "iwidget.h" class BrowserWindow : public IWidget { Q_OBJECT Q_PLUGIN_METADATA(IID PLUGIN_INTERFACE_iid FILE "brower.json") public: BrowserWindow(Browser *browser, QWebEngineProfile *profile); QSize sizeHint() const override; TabWidget *tabWidget() const; WebView *currentTab() const; Browser *browser() { return m_browser; } QString id(); protected: void closeEvent(QCloseEvent *event) override; private slots: void handleNewWindowTriggered(); void handleNewIncognitoWindowTriggered(); void handleFileOpenTriggered(); void handleFindActionTriggered(); void handleShowWindowTriggered(); void handleWebViewLoadProgress(int); void handleWebViewTitleChanged(const QString &title); void handleWebActionEnabledChanged(QWebEnginePage::WebAction action, bool enabled); private: QMenu *createFileMenu(TabWidget *tabWidget); QMenu *createEditMenu(); QMenu *createViewMenu(QToolBar *toolBar); QMenu *createWindowMenu(TabWidget *tabWidget); QMenu *createHelpMenu(); QToolBar *createToolBar(); private: Browser *m_browser; QWebEngineProfile *m_profile; TabWidget *m_tabWidget; QProgressBar *m_progressBar; QAction *m_historyBackAction; QAction *m_historyForwardAction; QAction *m_stopAction; QAction *m_reloadAction; QAction *m_stopReloadAction; QLineEdit *m_urlLineEdit; QAction *m_favAction; QString m_lastSearch; }; #endif // BROWSERWINDOW_H