diff options
Diffstat (limited to 'src/mainwindow/mainwindow.h')
-rw-r--r-- | src/mainwindow/mainwindow.h | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/src/mainwindow/mainwindow.h b/src/mainwindow/mainwindow.h index dc185da..98bd6ee 100644 --- a/src/mainwindow/mainwindow.h +++ b/src/mainwindow/mainwindow.h @@ -9,24 +9,20 @@ #ifndef SMOLBOTE_MAINWINDOW_H #define SMOLBOTE_MAINWINDOW_H +#include "subwindow/subwindow.h" #include <QMainWindow> #include <QUrl> -#include <memory> class Browser; -class QMdiArea; -class Configuration; -class SubWindow; class AddressBar; class SearchForm; class WebView; class NavigationBar; class WebProfile; class MenuBar; -class MainWindow : public QMainWindow +class MainWindow final : public QMainWindow { friend class Browser; - friend class MenuBar; Q_OBJECT @@ -36,18 +32,29 @@ public: }; explicit MainWindow(QWidget *parent = nullptr); - Q_DISABLE_COPY(MainWindow) - ~MainWindow() override; + MainWindow(const MainWindow &) = delete; + ~MainWindow() = default; void addDockWidget(Qt::DockWidgetArea area, QWidget *widget); void removeDockWidget(QWidget *widget); - const QVector<SubWindow *> subWindows() const; - SubWindow *currentSubWindow() const; + [[nodiscard]] const QVector<SubWindow *> subWindows() const + { + return m_subwindows; + } + [[nodiscard]] SubWindow *currentSubWindow() const + { + return qobject_cast<SubWindow *>(centralWidget()); + } + [[nodiscard]] WebView *currentView() const + { + return currentSubWindow()->currentView(); + } public slots: void createTab(const QUrl &url); SubWindow *createSubWindow(WebProfile *profile = nullptr, bool openProfileNewtab = false); + void setCurrentSubWindow(SubWindow *subwindow); private slots: void setView(WebView *view); @@ -56,6 +63,7 @@ protected: void closeEvent(QCloseEvent *event) override; private: + QString defaultWindowTitle; MenuBar *m_menuBar = nullptr; QMenu *toolsMenu = nullptr; QMenu *pageLoadProfileMenu = nullptr; @@ -64,11 +72,9 @@ private: AddressBar *addressBar = nullptr; SearchForm *searchBox = nullptr; - QMdiArea *mdiArea; - WebView *currentView = nullptr; + QVector<SubWindow *> m_subwindows; QMetaObject::Connection viewChangedConnection; - QMetaObject::Connection searchBoxConnection; QMetaObject::Connection statusBarConnection; }; |