diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-09-10 11:02:53 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-10-15 16:05:52 +0200 |
commit | bccf872b94944dfa476ccedc1d1a45d380703e15 (patch) | |
tree | 69044e2578015a94c1d2e1c92d76f2f0e2107a10 /src/imports | |
parent | 3d0bec491e6d823df510ba12dba38be820116e86 (diff) |
Move type declarations for QtQuick.Window* into imports/window
We want only one URI per library or plugin, so that we can centrally
register the types.
Change-Id: Ibc7305f102503ce672f8751771779102be44e014
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/window/plugin.cpp | 10 | ||||
-rw-r--r-- | src/imports/window/plugin.h | 121 | ||||
-rw-r--r-- | src/imports/window/window.pro | 3 |
3 files changed, 132 insertions, 2 deletions
diff --git a/src/imports/window/plugin.cpp b/src/imports/window/plugin.cpp index dfe1dcf62e..aa3ccafdf5 100644 --- a/src/imports/window/plugin.cpp +++ b/src/imports/window/plugin.cpp @@ -39,7 +39,7 @@ #include <QtQml/qqmlextensionplugin.h> -#include <private/qquickwindowmodule_p.h> +#include "plugin.h" QT_BEGIN_NAMESPACE @@ -69,7 +69,13 @@ public: void registerTypes(const char *uri) override { Q_ASSERT(QLatin1String(uri) == QLatin1String("QtQuick.Window")); - QQuickWindowModule::defineModule(); + + qmlRegisterTypesAndRevisions< + QWindowForeign, + QQuickWindowForeign, + QQuickWindowQmlImplForeign, + QQuickScreenForeign, + QQuickScreenInfoForeign>(uri, 2); // Auto-increment the import to stay in sync with ALL future QtQuick minor versions from 5.11 onward qmlRegisterModule(uri, 2, QT_VERSION_MINOR); diff --git a/src/imports/window/plugin.h b/src/imports/window/plugin.h new file mode 100644 index 0000000000..9f58ca9ac7 --- /dev/null +++ b/src/imports/window/plugin.h @@ -0,0 +1,121 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQuick module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or 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.GPL2 and 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-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef PLUGIN_H +#define PLUGIN_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtGui/private/qwindow_p.h> +#include <QtQuick/private/qquickwindow_p.h> +#include <QtQuick/private/qquickwindowattached_p.h> +#include <QtQuick/private/qquickscreen_p.h> +#include <QtQuick/private/qquickwindowmodule_p.h> +#include <QtQml/qqml.h> + +QT_BEGIN_NAMESPACE + +struct QWindowForeign +{ + Q_GADGET + QML_FOREIGN(QWindow) + QML_ANONYMOUS + QML_ADDED_IN_MINOR_VERSION(1) +}; + +struct QQuickWindowForeign +{ + Q_GADGET + QML_FOREIGN(QQuickWindow) + QML_NAMED_ELEMENT(Window) + QML_ADDED_IN_MINOR_VERSION(0) + QML_REMOVED_IN_MINOR_VERSION(1) +}; + +struct QQuickWindowForeignAttached +{ + Q_GADGET + QML_FOREIGN(QQuickWindowAttached) + QML_ANONYMOUS +}; + +struct QQuickScreenInfoForeign +{ + Q_GADGET + QML_FOREIGN(QQuickScreenInfo) + QML_NAMED_ELEMENT(ScreenInfo) + QML_ADDED_IN_MINOR_VERSION(3) + QML_UNCREATABLE("ScreenInfo can only be used via the attached property.") +}; + +struct QQuickScreenForeignAttached +{ + Q_GADGET + QML_FOREIGN(QQuickScreenAttached) + QML_ANONYMOUS +}; + +struct QQuickScreenForeign +{ + Q_GADGET + QML_FOREIGN(QQuickScreen) + QML_NAMED_ELEMENT(Screen) + QML_UNCREATABLE("Screen can only be used via the attached property.") +}; + +struct QQuickWindowQmlImplForeign +{ + Q_GADGET + QML_FOREIGN(QQuickWindowQmlImpl) + QML_NAMED_ELEMENT(Window) + QML_ADDED_IN_MINOR_VERSION(1) +}; + +QT_END_NAMESPACE + +#endif // PLUGIN_H diff --git a/src/imports/window/window.pro b/src/imports/window/window.pro index 77bd9518e9..a8ce79f275 100644 --- a/src/imports/window/window.pro +++ b/src/imports/window/window.pro @@ -6,6 +6,9 @@ IMPORT_VERSION = 2.$$QT_MINOR_VERSION SOURCES += \ plugin.cpp +HEADERS += \ + plugin.h + QT += quick-private qml-private load(qml_plugin) |