Add Platform and Platform_qtwidgets
So we can start removing QtWidgets vs QtQuick ifdefs. Each "platform" will implement the differences
This commit is contained in:
@@ -102,6 +102,10 @@ set(DOCKSLIBS_SRCS
|
||||
ViewWrapper.h
|
||||
Controller.cpp
|
||||
Controller.h
|
||||
Platform.cpp
|
||||
Platform.h
|
||||
qtwidgets/Platform_qtwidgets.cpp
|
||||
qtwidgets/Platform_qtwidgets.h
|
||||
qtwidgets/views/View_qtwidgets.cpp
|
||||
qtwidgets/views/View_qtwidgets.h
|
||||
qtwidgets/views/ViewWrapper_qtwidgets.cpp
|
||||
|
||||
33
src/Platform.cpp
Normal file
33
src/Platform.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
This file is part of KDDockWidgets.
|
||||
|
||||
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||
*/
|
||||
|
||||
#include "Platform.h"
|
||||
#include <qglobal.h>
|
||||
#include <QDebug>
|
||||
|
||||
using namespace KDDockWidgets;
|
||||
|
||||
static Platform *s_platform = nullptr;
|
||||
|
||||
Platform::Platform()
|
||||
{
|
||||
qDebug() << "Created!";
|
||||
s_platform = this;
|
||||
}
|
||||
|
||||
Platform::~Platform()
|
||||
{
|
||||
}
|
||||
|
||||
Platform *Platform::instance()
|
||||
{
|
||||
return s_platform;
|
||||
}
|
||||
34
src/Platform.h
Normal file
34
src/Platform.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
This file is part of KDDockWidgets.
|
||||
|
||||
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "docks_export.h"
|
||||
|
||||
namespace KDDockWidgets {
|
||||
|
||||
/// @brief implements functions specific to a particular platform
|
||||
/// A platform can be for example qtwidgets, qtquick, etc.
|
||||
class DOCKS_EXPORT Platform
|
||||
{
|
||||
public:
|
||||
virtual ~Platform();
|
||||
/// @brief Returns the name of the platform, only "qtwidgets" and "qtquick"
|
||||
virtual const char *name() const = 0;
|
||||
|
||||
/// @brief Returns the platform singleton
|
||||
static Platform *instance();
|
||||
|
||||
protected:
|
||||
Platform();
|
||||
};
|
||||
|
||||
}
|
||||
@@ -33,9 +33,7 @@
|
||||
#include <QGuiApplication>
|
||||
#include <QWindow>
|
||||
|
||||
#ifdef KDDOCKWIDGETS_QTWIDGETS
|
||||
#include "qtwidgets/DebugWindow_p.h"
|
||||
#else
|
||||
#ifndef KDDOCKWIDGETS_QTWIDGETS
|
||||
#include "quick/QmlTypes.h"
|
||||
#endif
|
||||
|
||||
@@ -57,16 +55,7 @@ DockRegistry::DockRegistry(QObject *parent)
|
||||
{
|
||||
qApp->installEventFilter(this);
|
||||
|
||||
#ifdef KDDOCKWIDGETS_QTWIDGETS
|
||||
|
||||
#ifdef DOCKS_DEVELOPER_MODE
|
||||
if (qEnvironmentVariableIntValue("KDDOCKWIDGETS_SHOW_DEBUG_WINDOW") == 1) {
|
||||
auto dv = new Debug::DebugWindow();
|
||||
dv->show();
|
||||
}
|
||||
#endif
|
||||
|
||||
#else
|
||||
#ifndef KDDOCKWIDGETS_QTWIDGETS
|
||||
KDDockWidgets::registerQmlTypes();
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
#endif
|
||||
|
||||
36
src/qtwidgets/Platform_qtwidgets.cpp
Normal file
36
src/qtwidgets/Platform_qtwidgets.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
This file is part of KDDockWidgets.
|
||||
|
||||
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||
*/
|
||||
|
||||
#include "Platform_qtwidgets.h"
|
||||
#include "KDDockWidgets.h"
|
||||
|
||||
static KDDockWidgets::Platform_qtwidgets s_platformQtWidgets;
|
||||
|
||||
using namespace KDDockWidgets;
|
||||
|
||||
Platform_qtwidgets::Platform_qtwidgets()
|
||||
{
|
||||
#ifdef DOCKS_DEVELOPER_MODE
|
||||
if (qEnvironmentVariableIntValue("KDDOCKWIDGETS_SHOW_DEBUG_WINDOW") == 1) {
|
||||
auto dv = new Debug::DebugWindow();
|
||||
dv->show();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Platform_qtwidgets::~Platform_qtwidgets()
|
||||
{
|
||||
}
|
||||
|
||||
const char *Platform_qtwidgets::name() const
|
||||
{
|
||||
return "qtwidgets";
|
||||
}
|
||||
29
src/qtwidgets/Platform_qtwidgets.h
Normal file
29
src/qtwidgets/Platform_qtwidgets.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
This file is part of KDDockWidgets.
|
||||
|
||||
SPDX-FileCopyrightText: 2020-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
|
||||
Author: Sérgio Martins <sergio.martins@kdab.com>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
Contact KDAB at <info@kdab.com> for commercial licensing options.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Platform.h"
|
||||
#include "qtwidgets/DebugWindow_p.h"
|
||||
|
||||
namespace KDDockWidgets {
|
||||
|
||||
/// @brief implements functions specific to a particular platform
|
||||
/// A platform can be for example qtwidgets, qtquick, etc.
|
||||
class DOCKS_EXPORT Platform_qtwidgets : public Platform
|
||||
{
|
||||
public:
|
||||
Platform_qtwidgets();
|
||||
~Platform_qtwidgets() override;
|
||||
const char *name() const override;
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user