diff --git a/src/controllers/MainWindow.h b/src/controllers/MainWindow.h index f38e00d7..3fe354c4 100644 --- a/src/controllers/MainWindow.h +++ b/src/controllers/MainWindow.h @@ -32,6 +32,9 @@ class TestDocks; namespace KDDockWidgets { +namespace Views { +class MainWindowViewInterface; +} namespace Controllers { @@ -62,7 +65,6 @@ public: explicit MainWindow(View *view, const QString &uniqueName, MainWindowOptions options); ~MainWindow() override; - void init(const QString &name); /** * @brief Docks a DockWidget into the central frame, tabbed. @@ -233,9 +235,12 @@ Q_SIGNALS: void frameCountChanged(int); private: + void init(const QString &name); + class Private; Private *const d; + friend class KDDockWidgets::Views::MainWindowViewInterface; friend class ::TestDocks; friend class KDDockWidgets::LayoutSaver; bool deserialize(const LayoutSaver::MainWindow &); diff --git a/src/qtquick/views/MainWindow_qtquick.cpp b/src/qtquick/views/MainWindow_qtquick.cpp index bf5319ab..6401921e 100644 --- a/src/qtquick/views/MainWindow_qtquick.cpp +++ b/src/qtquick/views/MainWindow_qtquick.cpp @@ -52,7 +52,7 @@ MainWindow_qtquick::MainWindow_qtquick(const QString &uniqueName, MainWindowOpti , MainWindowViewInterface(static_cast(View::controller())) , d(new Private(this)) { - m_mainWindow->init(uniqueName); + MainWindowViewInterface::init(uniqueName); makeItemFillParent(this); Controllers::Layout *lw = m_mainWindow->layout(); diff --git a/src/qtwidgets/views/MainWindow_qtwidgets.cpp b/src/qtwidgets/views/MainWindow_qtwidgets.cpp index fd10ba25..7977cb33 100644 --- a/src/qtwidgets/views/MainWindow_qtwidgets.cpp +++ b/src/qtwidgets/views/MainWindow_qtwidgets.cpp @@ -126,9 +126,8 @@ MainWindow_qtwidgets::MainWindow_qtwidgets(const QString &uniqueName, , MainWindowViewInterface(static_cast(controller())) , d(new Private(this)) { - auto controller = mainWindow(); - controller->init(uniqueName); - init(); + MainWindowViewInterface::init(uniqueName); + d->init(); } MainWindow_qtwidgets::~MainWindow_qtwidgets() @@ -136,11 +135,6 @@ MainWindow_qtwidgets::~MainWindow_qtwidgets() delete d; } -void MainWindow_qtwidgets::init() -{ - d->init(); -} - void MainWindow_qtwidgets::setCentralWidget(QWidget *w) { QMainWindow::setCentralWidget(w); diff --git a/src/qtwidgets/views/MainWindow_qtwidgets.h b/src/qtwidgets/views/MainWindow_qtwidgets.h index dccb12e3..9da2fad2 100644 --- a/src/qtwidgets/views/MainWindow_qtwidgets.h +++ b/src/qtwidgets/views/MainWindow_qtwidgets.h @@ -73,7 +73,6 @@ protected: private: friend class Controllers::MainWindow; using QMainWindow::setCentralWidget; - void init() override; void setCentralWidget(QWidget *); // overridden just to make it private class Private; diff --git a/src/views/MainWindowViewInterface.cpp b/src/views/MainWindowViewInterface.cpp index 575f9c7d..b0d584cd 100644 --- a/src/views/MainWindowViewInterface.cpp +++ b/src/views/MainWindowViewInterface.cpp @@ -10,6 +10,7 @@ */ #include "MainWindowViewInterface.h" +#include "kddockwidgets/controllers/MainWindow.h" namespace KDDockWidgets::Views { @@ -25,4 +26,9 @@ Controllers::MainWindow *MainWindowViewInterface::mainWindow() const return m_mainWindow; } -} \ No newline at end of file +void MainWindowViewInterface::init(const QString &name) +{ + m_mainWindow->init(name); +} + +} diff --git a/src/views/MainWindowViewInterface.h b/src/views/MainWindowViewInterface.h index 92b05048..7b074a41 100644 --- a/src/views/MainWindowViewInterface.h +++ b/src/views/MainWindowViewInterface.h @@ -40,6 +40,7 @@ public: Controllers::MainWindow *mainWindow() const; protected: + void init(const QString &name); Controllers::MainWindow *const m_mainWindow; };