qtquick: Make MainWindowInstantiator compile

This commit is contained in:
Sergio Martins
2022-05-29 23:27:27 +01:00
parent 1787a69edb
commit 1bb0b13d77
5 changed files with 25 additions and 15 deletions

View File

@@ -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

View File

@@ -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();
}

View File

@@ -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;
};

View File

@@ -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)

View File

@@ -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