Move Platform::createMainWindow() to dev mode

This is for tests only
This commit is contained in:
Sergio Martins
2022-05-27 12:03:42 +01:00
parent ad7f5f5970
commit bcaf0737e9
6 changed files with 49 additions and 49 deletions

View File

@@ -17,8 +17,6 @@
#include "Window_qtquick.h"
#include "views/View_qtquick.h"
#include "qtquick/Window_qtquick.h"
#include "qtquick/views/MainWindow_qtquick.h"
#include "controllers/MainWindow.h"
#include "private/DockRegistry_p.h"
#include "private/DragController_p.h"
#include "ViewFactory_qtquick.h"
@@ -156,30 +154,3 @@ View *Platform_qtquick::createView(View *parent) const
{
return new Views::View_qtquick(nullptr, Type::None, Views::asQQuickItem(parent));
}
Controllers::MainWindow *Platform_qtquick::createMainWindow(const QString &uniqueName,
CreateViewOptions viewOpts,
MainWindowOptions options,
View *parent, Qt::WindowFlags flags) const
{
QQuickItem *parentItem = Views::asQQuickItem(parent);
if (!parentItem) {
auto view = new QQuickView(m_qmlEngine, nullptr);
view->resize(viewOpts.size);
view->setResizeMode(QQuickView::SizeRootObjectToView);
view->setSource(QUrl(QStringLiteral("qrc:/main.qml")));
if (viewOpts.isVisible)
view->show();
parentItem = view->rootObject();
Platform::instance()->tests_wait(100); // the root object gets sized delayed
}
auto view = new Views::MainWindow_qtquick(uniqueName, options,
parentItem, flags);
return view->mainWindow();
}

View File

@@ -40,9 +40,6 @@ public:
void setQmlEngine(QQmlEngine *);
QQmlEngine *qmlEngine() const;
View *createView(View *parent = nullptr) const override;
Controllers::MainWindow *createMainWindow(const QString &uniqueName, CreateViewOptions,
MainWindowOptions options = MainWindowOption_HasCentralFrame,
View *parent = nullptr, Qt::WindowFlags = {}) const override;
#ifdef DOCKS_DEVELOPER_MODE
explicit Platform_qtquick(int &argc, char **argv);
@@ -51,6 +48,9 @@ public:
View *tests_createView(CreateViewOptions, View *parent = nullptr) override;
View *tests_createFocusableView(CreateViewOptions, View *parent = nullptr) override;
View *tests_createNonClosableView(View *parent = nullptr) override;
Controllers::MainWindow *createMainWindow(const QString &uniqueName, CreateViewOptions,
MainWindowOptions options = MainWindowOption_HasCentralFrame,
View *parent = nullptr, Qt::WindowFlags = {}) const override;
#endif
private:
void init();

View File

@@ -12,6 +12,8 @@
#include "KDDockWidgets.h"
#include "Platform_qtquick.h"
#include "views/View_qtquick.h"
#include "qtquick/views/MainWindow_qtquick.h"
#include "controllers/MainWindow.h"
#include <QApplication> // TODO: Make it QGuiApplication
#include <QQmlEngine>
@@ -101,4 +103,31 @@ View *Platform_qtquick::tests_createNonClosableView(View *parent)
return nullptr;
}
Controllers::MainWindow *Platform_qtquick::createMainWindow(const QString &uniqueName,
CreateViewOptions viewOpts,
MainWindowOptions options,
View *parent, Qt::WindowFlags flags) const
{
QQuickItem *parentItem = Views::asQQuickItem(parent);
if (!parentItem) {
auto view = new QQuickView(m_qmlEngine, nullptr);
view->resize(viewOpts.size);
view->setResizeMode(QQuickView::SizeRootObjectToView);
view->setSource(QUrl(QStringLiteral("qrc:/main.qml")));
if (viewOpts.isVisible)
view->show();
parentItem = view->rootObject();
Platform::instance()->tests_wait(100); // the root object gets sized delayed
}
auto view = new Views::MainWindow_qtquick(uniqueName, options,
parentItem, flags);
return view->mainWindow();
}
#endif

View File

@@ -18,8 +18,6 @@
#include "views/View_qtwidgets.h"
#include "ViewFactory_qtwidgets.h"
#include "controllers/MainWindow.h"
#include "qtwidgets/views/MainWindow_qtwidgets.h"
#include <QScreen>
@@ -126,14 +124,3 @@ View *Platform_qtwidgets::createView(View *parent) const
{
return new Views::View_qtwidgets<QWidget>(nullptr, Type::None, Views::View_qtwidgets<QWidget>::asQWidget(parent));
}
Controllers::MainWindow *Platform_qtwidgets::createMainWindow(const QString &uniqueName,
CreateViewOptions, MainWindowOptions options,
View *parent, Qt::WindowFlags flags) const
{
auto view = new Views::MainWindow_qtwidgets(uniqueName, options,
parent ? static_cast<Views::View_qtwidgets<QMainWindow> *>(parent) : nullptr,
flags);
return view->mainWindow();
}

View File

@@ -41,10 +41,6 @@ public:
int startDragDistance() const override;
View *createView(View *parent = nullptr) const override;
Controllers::MainWindow *createMainWindow(const QString &uniqueName, CreateViewOptions,
MainWindowOptions options = MainWindowOption_HasCentralFrame,
View *parent = nullptr, Qt::WindowFlags = {}) const override;
#ifdef DOCKS_DEVELOPER_MODE
explicit Platform_qtwidgets(int &argc, char **argv);
void tests_initPlatform_impl() override;
@@ -52,6 +48,9 @@ public:
View *tests_createView(CreateViewOptions, View *parent = nullptr) override;
View *tests_createFocusableView(CreateViewOptions, View *parent = nullptr) override;
View *tests_createNonClosableView(View *parent = nullptr) override;
Controllers::MainWindow *createMainWindow(const QString &uniqueName, CreateViewOptions,
MainWindowOptions options = MainWindowOption_HasCentralFrame,
View *parent = nullptr, Qt::WindowFlags = {}) const override;
#endif
protected:
void init();

View File

@@ -13,6 +13,8 @@
#include "Platform_qtwidgets.h"
#include "views/ViewWrapper_qtwidgets.h"
#include "views/View_qtwidgets.h"
#include "controllers/MainWindow.h"
#include "qtwidgets/views/MainWindow_qtwidgets.h"
#include <QStyleFactory>
#include <QApplication>
@@ -142,6 +144,18 @@ View *Platform_qtwidgets::tests_createNonClosableView(View *parent)
return newWidget;
}
Controllers::MainWindow *Platform_qtwidgets::createMainWindow(const QString &uniqueName,
CreateViewOptions, MainWindowOptions options,
View *parent, Qt::WindowFlags flags) const
{
auto view = new Views::MainWindow_qtwidgets(uniqueName, options,
parent ? static_cast<Views::View_qtwidgets<QMainWindow> *>(parent) : nullptr,
flags);
return view->mainWindow();
}
#endif
#include "TestHelpers_qtwidgets.moc"