diff --git a/examples/mdi/main.cpp b/examples/mdi/main.cpp index b58ce725..8d0e5fa6 100644 --- a/examples/mdi/main.cpp +++ b/examples/mdi/main.cpp @@ -59,9 +59,9 @@ int main(int argc, char **argv) // widget3->blockCloseEvent(); // # 3. Dock them - mainWindow.addDockWidget(dock1->dockWidget(), QPoint(10, 10)); - mainWindow.addDockWidget(dock2->dockWidget(), QPoint(50, 50)); - mainWindow.addDockWidget(dock3->dockWidget(), QPoint(90, 90)); + mainWindow.addDockWidget(dock1, QPoint(10, 10)); + mainWindow.addDockWidget(dock2, QPoint(50, 50)); + mainWindow.addDockWidget(dock3, QPoint(90, 90)); return app.exec(); } diff --git a/examples/qtquick/mdi/main.cpp b/examples/qtquick/mdi/main.cpp index 669eab17..022df063 100644 --- a/examples/qtquick/mdi/main.cpp +++ b/examples/qtquick/mdi/main.cpp @@ -52,9 +52,9 @@ int main(int argc, char *argv[]) auto mainAreaView = KDDockWidgets::DockRegistry::self()->mainDockingAreas().constFirst()->view(); auto mainAreaMDI = static_cast(mainAreaView); - mainAreaMDI->addDockWidget(dw1->dockWidget(), QPoint(10, 10)); - mainAreaMDI->addDockWidget(dw2->dockWidget(), QPoint(50, 50)); - mainAreaMDI->addDockWidget(dw3->dockWidget(), QPoint(90, 90)); + mainAreaMDI->addDockWidget(dw1, QPoint(10, 10)); + mainAreaMDI->addDockWidget(dw2, QPoint(50, 50)); + mainAreaMDI->addDockWidget(dw3, QPoint(90, 90)); return app.exec(); } diff --git a/src/views/MainWindowMDIViewInterface.cpp b/src/views/MainWindowMDIViewInterface.cpp index ac77fe48..0a883bfa 100644 --- a/src/views/MainWindowMDIViewInterface.cpp +++ b/src/views/MainWindowMDIViewInterface.cpp @@ -10,6 +10,7 @@ */ #include "MainWindowMDIViewInterface.h" +#include "DockWidgetViewInterface.h" #include "controllers/MDILayout.h" using namespace KDDockWidgets; @@ -21,12 +22,16 @@ MainWindowMDIViewInterface::MainWindowMDIViewInterface(Controllers::MDILayout *l { } -void MainWindowMDIViewInterface::addDockWidget(DockWidget *dockWidget, QPoint localPos, InitialOption addingOption) +void MainWindowMDIViewInterface::addDockWidget(DockWidgetViewInterface *dockWidget, + QPoint localPos, InitialOption addingOption) { - m_mdiLayout->addDockWidget(dockWidget, localPos, addingOption); + Controllers::DockWidget *dw = dockWidget ? dockWidget->dockWidget() : nullptr; + m_mdiLayout->addDockWidget(dw, localPos, addingOption); } -void MainWindowMDIViewInterface::addDockWidget(DockWidget *dockWidget, QPointF localPos, InitialOption addingOption) +void MainWindowMDIViewInterface::addDockWidget(DockWidgetViewInterface *dockWidget, + QPointF localPos, InitialOption addingOption) { - MainWindowMDIViewInterface::addDockWidget(dockWidget, localPos.toPoint(), addingOption); + Controllers::DockWidget *dw = dockWidget ? dockWidget->dockWidget() : nullptr; + m_mdiLayout->addDockWidget(dw, localPos.toPoint(), addingOption); } diff --git a/src/views/MainWindowMDIViewInterface.h b/src/views/MainWindowMDIViewInterface.h index ddd7eeb4..ebf6b90b 100644 --- a/src/views/MainWindowMDIViewInterface.h +++ b/src/views/MainWindowMDIViewInterface.h @@ -25,6 +25,8 @@ class MDILayout; namespace Views { +class DockWidgetViewInterface; + /// @brief Interface for MainWindowMDI views class DOCKS_EXPORT MainWindowMDIViewInterface { @@ -38,11 +40,11 @@ public: ///@brief Docks @p dockWidget /// The widget will be placed at the specified position - void addDockWidget(Controllers::DockWidget *dockWidget, + void addDockWidget(DockWidgetViewInterface *dockWidget, QPoint localPos, InitialOption addingOption = {}); ///@brief Convenience overload - void addDockWidget(Controllers::DockWidget *dockWidget, + void addDockWidget(DockWidgetViewInterface *dockWidget, QPointF localPos, InitialOption addingOption = {}); private: