diff options
author | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2020-07-07 08:59:00 +0200 |
---|---|---|
committer | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2020-07-09 13:00:22 +0200 |
commit | 694d7eb289a258234bb9efa5dbb16778cbdfaf2c (patch) | |
tree | 5c79e8049454246bc094db1c3d57c77489431cef | |
parent | 6af7bcc1deae525871fb116003112edf3d8f0006 (diff) | |
download | qtwayland-694d7eb289a258234bb9efa5dbb16778cbdfaf2c.tar.gz |
Move IviApplication classes into their own import
We want extensions to be in submodules, to make them easier to
deprecate and replace when they become outdated.
[ChangeLog][IviApplication] Moved IviApplication types from
QML import QtWayland.Compositor to QtWayland.Compositor.IviApplication.
Task-number: QTBUG-68840
Change-Id: Ib940b980b5e4fcd8a80b359efb0a0e6c42f32c06
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
12 files changed, 168 insertions, 52 deletions
diff --git a/examples/wayland/ivi-compositor/main.qml b/examples/wayland/ivi-compositor/main.qml index 49a05a59..4383070a 100644 --- a/examples/wayland/ivi-compositor/main.qml +++ b/examples/wayland/ivi-compositor/main.qml @@ -50,6 +50,7 @@ import QtQuick import QtWayland.Compositor +import QtWayland.Compositor.IviApplication import QtQuick.Window WaylandCompositor { diff --git a/src/compositor/extensions/qwaylandiviapplication.cpp b/src/compositor/extensions/qwaylandiviapplication.cpp index 50242ab1..3dd35f1c 100644 --- a/src/compositor/extensions/qwaylandiviapplication.cpp +++ b/src/compositor/extensions/qwaylandiviapplication.cpp @@ -39,7 +39,7 @@ QT_BEGIN_NAMESPACE /*! * \qmltype IviApplication - * \inqmlmodule QtWayland.Compositor + * \inqmlmodule QtWayland.Compositor.IviApplication * \since 5.8 * \brief Provides a shell extension for embedded-style user interfaces. * @@ -54,7 +54,7 @@ QT_BEGIN_NAMESPACE * supported by the compositor: * * \qml \QtMinorVersion - * import QtWayland.Compositor 1.\1 + * import QtWayland.Compositor.IviApplication * * WaylandCompositor { * IviApplication { diff --git a/src/compositor/extensions/qwaylandivisurface.cpp b/src/compositor/extensions/qwaylandivisurface.cpp index 81a7da10..382edb2c 100644 --- a/src/compositor/extensions/qwaylandivisurface.cpp +++ b/src/compositor/extensions/qwaylandivisurface.cpp @@ -45,7 +45,7 @@ QWaylandSurfaceRole QWaylandIviSurfacePrivate::s_role("ivi_surface"); /*! * \qmltype IviSurface - * \inqmlmodule QtWayland.Compositor + * \inqmlmodule QtWayland.Compositor.IviApplication * \since 5.8 * \brief Provides a simple way to identify and resize a surface. * diff --git a/src/imports/compositor-extensions/CMakeLists.txt b/src/imports/compositor-extensions/CMakeLists.txt index cc822ffe..9daa2933 100644 --- a/src/imports/compositor-extensions/CMakeLists.txt +++ b/src/imports/compositor-extensions/CMakeLists.txt @@ -1,3 +1,4 @@ # Generated from compositor-extensions.pro. add_subdirectory(xdgshell) +add_subdirectory(iviapplication) diff --git a/src/imports/compositor-extensions/compositor-extensions.pro b/src/imports/compositor-extensions/compositor-extensions.pro index cc3eaa41..77891b42 100644 --- a/src/imports/compositor-extensions/compositor-extensions.pro +++ b/src/imports/compositor-extensions/compositor-extensions.pro @@ -1,2 +1,4 @@ TEMPLATE = subdirs -SUBDIRS = xdgshell +SUBDIRS = \ + xdgshell \ + iviapplication diff --git a/src/imports/compositor-extensions/iviapplication/CMakeLists.txt b/src/imports/compositor-extensions/iviapplication/CMakeLists.txt new file mode 100644 index 00000000..9b132f30 --- /dev/null +++ b/src/imports/compositor-extensions/iviapplication/CMakeLists.txt @@ -0,0 +1,23 @@ +# Generated from iviapplication.pro. + +##################################################################### +## qwaylandcompositoriviapplicationplugin Plugin: +##################################################################### + +qt_add_qml_module(qwaylandcompositoriviapplicationplugin + URI "QtWayland.Compositor.IviApplication" + VERSION "${CMAKE_PROJECT_VERSION}" + CLASSNAME QWaylandCompositorIviApplicationPlugin + SKIP_TYPE_REGISTRATION + SOURCES + qwaylandcompositoriviapplicationplugin.cpp + PUBLIC_LIBRARIES + Qt::Core + Qt::Gui + Qt::WaylandCompositor +) + +#### Keys ignored in scope 1:.:.:iviapplication.pro:<TRUE>: +# CXX_MODULE = "qml" +# QML_IMPORT_VERSION = "$$QT_VERSION" +# TARGETPATH = "QtWayland/Compositor/IviApplication" diff --git a/src/imports/compositor-extensions/iviapplication/iviapplication.pro b/src/imports/compositor-extensions/iviapplication/iviapplication.pro new file mode 100644 index 00000000..230a3408 --- /dev/null +++ b/src/imports/compositor-extensions/iviapplication/iviapplication.pro @@ -0,0 +1,11 @@ +CXX_MODULE = qml +TARGET = qwaylandcompositoriviapplicationplugin +TARGETPATH = QtWayland/Compositor/IviApplication +QML_IMPORT_VERSION = $$QT_VERSION + +SOURCES += \ + qwaylandcompositoriviapplicationplugin.cpp + +QT += waylandcompositor + +load(qml_plugin) diff --git a/src/imports/compositor-extensions/iviapplication/plugins.qmltypes b/src/imports/compositor-extensions/iviapplication/plugins.qmltypes new file mode 100644 index 00000000..4427fe42 --- /dev/null +++ b/src/imports/compositor-extensions/iviapplication/plugins.qmltypes @@ -0,0 +1,61 @@ +import QtQuick.tooling 1.2 + +// This file describes the plugin-supplied types contained in the library. +// It is used for QML tooling purposes only. +// +// This file was auto-generated by: +// 'qmlplugindump -nonrelocatable QtWayland.Compositor.IviApplication 6.0' + +Module { + dependencies: ["QtQuick 2.0"] + Component { name: "QWaylandCompositorExtension"; prototype: "QWaylandObject" } + Component { + name: "QWaylandIviApplication" + prototype: "QWaylandCompositorExtension" + Signal { + name: "iviSurfaceRequested" + Parameter { name: "surface"; type: "QWaylandSurface"; isPointer: true } + Parameter { name: "iviId"; type: "uint" } + Parameter { name: "resource"; type: "QWaylandResource" } + } + Signal { + name: "iviSurfaceCreated" + Parameter { name: "iviSurface"; type: "QWaylandIviSurface"; isPointer: true } + } + } + Component { + name: "QWaylandIviApplicationQuickExtension" + defaultProperty: "data" + prototype: "QWaylandIviApplication" + exports: ["QtWayland.Compositor.IviApplication/IviApplication 1.0"] + exportMetaObjectRevisions: [0] + Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } + } + Component { + name: "QWaylandIviSurface" + defaultProperty: "data" + prototype: "QWaylandShellSurface" + exports: ["QtWayland.Compositor.IviApplication/IviSurface 1.0"] + exportMetaObjectRevisions: [0] + Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } + Property { name: "surface"; type: "QWaylandSurface"; isReadonly: true; isPointer: true } + Property { name: "iviId"; type: "uint"; isReadonly: true } + Method { + name: "initialize" + Parameter { name: "iviApplication"; type: "QWaylandIviApplication"; isPointer: true } + Parameter { name: "surface"; type: "QWaylandSurface"; isPointer: true } + Parameter { name: "iviId"; type: "uint" } + Parameter { name: "resource"; type: "QWaylandResource" } + } + Method { + name: "sendConfigure" + Parameter { name: "size"; type: "QSize" } + } + } + Component { name: "QWaylandObject"; prototype: "QObject" } + Component { + name: "QWaylandShellSurface" + prototype: "QWaylandCompositorExtension" + Property { name: "windowType"; type: "Qt::WindowType"; isReadonly: true } + } +} diff --git a/src/imports/compositor-extensions/iviapplication/qmldir b/src/imports/compositor-extensions/iviapplication/qmldir new file mode 100644 index 00000000..75f6403e --- /dev/null +++ b/src/imports/compositor-extensions/iviapplication/qmldir @@ -0,0 +1,3 @@ +module QtWayland.Compositor.IviApplication +plugin qwaylandcompositoriviapplicationplugin +classname QWaylandCompositorIviApplicationPlugin diff --git a/src/imports/compositor-extensions/iviapplication/qwaylandcompositoriviapplicationplugin.cpp b/src/imports/compositor-extensions/iviapplication/qwaylandcompositoriviapplicationplugin.cpp new file mode 100644 index 00000000..bcd5700a --- /dev/null +++ b/src/imports/compositor-extensions/iviapplication/qwaylandcompositoriviapplicationplugin.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtWaylandCompositor module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtQml/qqmlextensionplugin.h> +#include <QtQml/qqml.h> + +#include <QtWaylandCompositor/qwaylandquickextension.h> +#include <QtWaylandCompositor/qwaylandiviapplication.h> +#include <QtWaylandCompositor/qwaylandivisurface.h> + +QT_BEGIN_NAMESPACE + +Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandIviApplication) + +class QWaylandCompositorIviApplicationPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) +public: + void registerTypes(const char *uri) override + { + Q_ASSERT(QLatin1String(uri) == QLatin1String("QtWayland.Compositor.IviApplication")); + defineModule(uri); + } + + static void defineModule(const char *uri) + { + qmlRegisterModule(uri, QT_VERSION_MAJOR, QT_VERSION_MINOR); + qmlRegisterType<QWaylandIviApplicationQuickExtension>(uri, 1, 0, "IviApplication"); + qmlRegisterType<QWaylandIviSurface>(uri, 1, 0, "IviSurface"); + } +}; + +QT_END_NAMESPACE + +#include "qwaylandcompositoriviapplicationplugin.moc" diff --git a/src/imports/compositor/plugins.qmltypes b/src/imports/compositor/plugins.qmltypes index be201d51..863d9f77 100644 --- a/src/imports/compositor/plugins.qmltypes +++ b/src/imports/compositor/plugins.qmltypes @@ -133,49 +133,6 @@ Module { Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } } Component { - name: "QWaylandIviApplication" - prototype: "QWaylandCompositorExtension" - Signal { - name: "iviSurfaceRequested" - Parameter { name: "surface"; type: "QWaylandSurface"; isPointer: true } - Parameter { name: "iviId"; type: "uint" } - Parameter { name: "resource"; type: "QWaylandResource" } - } - Signal { - name: "iviSurfaceCreated" - Parameter { name: "iviSurface"; type: "QWaylandIviSurface"; isPointer: true } - } - } - Component { - name: "QWaylandIviApplicationQuickExtension" - defaultProperty: "data" - prototype: "QWaylandIviApplication" - exports: ["QtWayland.Compositor/IviApplication 1.0"] - exportMetaObjectRevisions: [0] - Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } - } - Component { - name: "QWaylandIviSurface" - defaultProperty: "data" - prototype: "QWaylandShellSurface" - exports: ["QtWayland.Compositor/IviSurface 1.0"] - exportMetaObjectRevisions: [0] - Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } - Property { name: "surface"; type: "QWaylandSurface"; isReadonly: true; isPointer: true } - Property { name: "iviId"; type: "uint"; isReadonly: true } - Method { - name: "initialize" - Parameter { name: "iviApplication"; type: "QWaylandIviApplication"; isPointer: true } - Parameter { name: "surface"; type: "QWaylandSurface"; isPointer: true } - Parameter { name: "iviId"; type: "uint" } - Parameter { name: "resource"; type: "QWaylandResource" } - } - Method { - name: "sendConfigure" - Parameter { name: "size"; type: "QSize" } - } - } - Component { name: "QWaylandKeymap" defaultProperty: "data" prototype: "QObject" diff --git a/src/imports/compositor/qwaylandquickcompositorplugin.cpp b/src/imports/compositor/qwaylandquickcompositorplugin.cpp index 7451ea19..19d38fec 100644 --- a/src/imports/compositor/qwaylandquickcompositorplugin.cpp +++ b/src/imports/compositor/qwaylandquickcompositorplugin.cpp @@ -52,8 +52,6 @@ #include <QtWaylandCompositor/QWaylandWlShell> #include <QtWaylandCompositor/QWaylandTextInputManager> #include <QtWaylandCompositor/QWaylandIdleInhibitManagerV1> -#include <QtWaylandCompositor/QWaylandIviApplication> -#include <QtWaylandCompositor/QWaylandIviSurface> #include <QtWaylandCompositor/qtwaylandcompositorglobal.h> #include "qwaylandmousetracker_p.h" @@ -63,7 +61,6 @@ QT_BEGIN_NAMESPACE Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CONTAINER_CLASS(QWaylandQuickCompositor) Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandQtWindowManager) Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandIdleInhibitManagerV1) -Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandIviApplication) Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandWlShell) Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandTextInputManager) @@ -142,8 +139,6 @@ public: //This should probably be somewhere else qmlRegisterType<QWaylandQtWindowManagerQuickExtension>(uri, 1, 0, "QtWindowManager"); - qmlRegisterType<QWaylandIviApplicationQuickExtension>(uri, 1, 0, "IviApplication"); - qmlRegisterType<QWaylandIviSurface>(uri, 1, 0, "IviSurface"); qmlRegisterType<QWaylandWlShellQuickExtension>(uri, 1, 0, "WlShell"); qmlRegisterType<QWaylandWlShellSurface>(uri, 1, 0, "WlShellSurface"); qmlRegisterType<QWaylandQuickShellSurfaceItem>(uri, 1, 0, "ShellSurfaceItem"); |