From 1bb0b13d770dc428da1ea1b03f384ca142098102 Mon Sep 17 00:00:00 2001 From: Sergio Martins Date: Sun, 29 May 2022 23:27:27 +0100 Subject: [PATCH] qtquick: Make MainWindowInstantiator compile --- src/CMakeLists.txt | 4 ++-- src/qtquick/MainWindowInstantiator.cpp | 24 ++++++++++++--------- src/qtquick/MainWindowInstantiator.h | 8 ++++--- src/qtquick/views/MainWindowMDI_qtquick.cpp | 1 + src/qtquick/views/MainWindowMDI_qtquick.h | 3 +++ 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 50f3fb42..b900c3b2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -170,8 +170,8 @@ SET(KDDW_FRONTEND_QTQUICK_SRCS qtquick/ViewFactory_qtquick.h qtquick/LayoutSaverInstantiator.cpp qtquick/LayoutSaverInstantiator.h - # qtquick/MainWindowInstantiator.cpp - # qtquick/MainWindowInstantiator.h + qtquick/MainWindowInstantiator.cpp + qtquick/MainWindowInstantiator.h qtquick/DockWidgetInstantiator.cpp qtquick/DockWidgetInstantiator.h qtquick/QmlTypes.cpp diff --git a/src/qtquick/MainWindowInstantiator.cpp b/src/qtquick/MainWindowInstantiator.cpp index 7106a83b..5ca647ef 100644 --- a/src/qtquick/MainWindowInstantiator.cpp +++ b/src/qtquick/MainWindowInstantiator.cpp @@ -13,9 +13,9 @@ #include "qtquick/views/MainWindow_qtquick.h" #include "qtquick/views/MainWindowMDI_qtquick.h" -#include "DockWidgetInstantiator_p.h" +#include "DockWidgetInstantiator.h" -#include "../DockRegistry_p.h" +#include "private/DockRegistry_p.h" using namespace KDDockWidgets; @@ -76,8 +76,8 @@ void MainWindowInstantiator::addDockWidget(DockWidgetInstantiator *dockWidget, L DockWidgetInstantiator *relativeTo, QSize initialSize, InitialVisibilityOption option) { - addDockWidget(dockWidget ? dockWidget->dockWidget() : nullptr, location, - relativeTo ? relativeTo->dockWidget() : nullptr, initialSize, option); + addDockWidget(dockWidget ? dockWidget->controller() : nullptr, location, + relativeTo ? relativeTo->controller() : nullptr, initialSize, option); } void MainWindowInstantiator::layoutEqually() @@ -128,10 +128,11 @@ void MainWindowInstantiator::clearSideBarOverlay(bool deleteFrame) m_mainWindow->clearSideBarOverlay(deleteFrame); } -SideBar *MainWindowInstantiator::sideBarForDockWidget(const Controllers::DockWidget *dw) const -{ - return m_mainWindow ? m_mainWindow->sideBarForDockWidget(dw) : nullptr; -} +// TODOv2 +// SideBar *MainWindowInstantiator::sideBarForDockWidget(const Controllers::DockWidget *dw) const +// { +// return m_mainWindow ? m_mainWindow->sideBarForDockWidget(dw) : nullptr; +// } bool MainWindowInstantiator::sideBarIsVisible(SideBarLocation loc) const { @@ -173,8 +174,11 @@ void MainWindowInstantiator::componentComplete() const auto mainWindowOptions = MainWindowOptions(m_options); + View *view = nullptr; if (mainWindowOptions & MainWindowOption_MDI) - m_mainWindow = new MainWindowMDI(m_uniqueName, this); + view = new Views::MainWindowMDI_qtquick(m_uniqueName, this); else - m_mainWindow = new MainWindowQuick(m_uniqueName, mainWindowOptions, this); + view = new Views::MainWindow_qtquick(m_uniqueName, mainWindowOptions, this); + + m_mainWindow = view->asMainWindowController(); } diff --git a/src/qtquick/MainWindowInstantiator.h b/src/qtquick/MainWindowInstantiator.h index 0b9494c4..41ce4a52 100644 --- a/src/qtquick/MainWindowInstantiator.h +++ b/src/qtquick/MainWindowInstantiator.h @@ -11,6 +11,7 @@ #ifndef KD_MAIN_WINDOW_INSTANTIATOR_P_H #define KD_MAIN_WINDOW_INSTANTIATOR_P_H +#pragma once #include "kddockwidgets/docks_export.h" #include "kddockwidgets/KDDockWidgets.h" @@ -21,10 +22,11 @@ namespace KDDockWidgets { class MainWindowQuick; class DockWidgetInstantiator; -class SideBar; namespace Controllers { class DockWidget; +class MainWindow; +class SideBar; } /// @brief A wrapper to workaround the limitation that QtQuick can't pass arguments through MainWindowQuick's ctor @@ -69,7 +71,7 @@ public: Q_INVOKABLE void overlayOnSideBar(KDDockWidgets::Controllers::DockWidget *); Q_INVOKABLE void toggleOverlayOnSideBar(KDDockWidgets::Controllers::DockWidget *); Q_INVOKABLE void clearSideBarOverlay(bool deleteFrame = true); - Q_INVOKABLE KDDockWidgets::SideBar *sideBarForDockWidget(const KDDockWidgets::Controllers::DockWidget *) const; + // Q_INVOKABLE KDDockWidgets::SideBar *sideBarForDockWidget(const KDDockWidgets::Controllers::DockWidget *) const; Q_INVOKABLE bool sideBarIsVisible(KDDockWidgets::SideBarLocation) const; Q_INVOKABLE bool closeDockWidgets(bool force = false); @@ -83,7 +85,7 @@ Q_SIGNALS: private: QString m_uniqueName; - MainWindowQuick *m_mainWindow = nullptr; + Controllers::MainWindow *m_mainWindow = nullptr; KDDockWidgets::MainWindowOptions m_options = KDDockWidgets::MainWindowOption_None; }; diff --git a/src/qtquick/views/MainWindowMDI_qtquick.cpp b/src/qtquick/views/MainWindowMDI_qtquick.cpp index 2aeca76f..cef953e5 100644 --- a/src/qtquick/views/MainWindowMDI_qtquick.cpp +++ b/src/qtquick/views/MainWindowMDI_qtquick.cpp @@ -15,6 +15,7 @@ #include "MainWindow_qtquick.h" using namespace KDDockWidgets; +using namespace KDDockWidgets::Views; using namespace KDDockWidgets::Controllers; MainWindowMDI_qtquick::MainWindowMDI_qtquick(const QString &uniqueName, QQuickItem *parent, Qt::WindowFlags flags) diff --git a/src/qtquick/views/MainWindowMDI_qtquick.h b/src/qtquick/views/MainWindowMDI_qtquick.h index 80112f75..6b30333b 100644 --- a/src/qtquick/views/MainWindowMDI_qtquick.h +++ b/src/qtquick/views/MainWindowMDI_qtquick.h @@ -18,6 +18,7 @@ namespace KDDockWidgets { +namespace Views { /// @brief MainWindow sub-class which uses MDI as a layout class DOCKS_EXPORT MainWindowMDI_qtquick : public Views::MainWindow_qtquick, public Views::MainWindowMDI @@ -36,4 +37,6 @@ public: } +} + #endif