diff options
-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 | ||||
-rw-r--r-- | src/quick/items/qquickscreen_p.h | 14 | ||||
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 1 | ||||
-rw-r--r-- | src/quick/items/qquickwindow.h | 3 | ||||
-rw-r--r-- | src/quick/items/qquickwindowmodule.cpp | 14 | ||||
-rw-r--r-- | src/quick/items/qquickwindowmodule_p.h | 8 |
8 files changed, 137 insertions, 37 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) diff --git a/src/quick/items/qquickscreen_p.h b/src/quick/items/qquickscreen_p.h index 9d9f9a1567..61cbdf7387 100644 --- a/src/quick/items/qquickscreen_p.h +++ b/src/quick/items/qquickscreen_p.h @@ -54,7 +54,7 @@ #include <qqml.h> #include <QRect> #include <QSize> -#include <private/qqmlglobal_p.h> +#include <private/qtquickglobal_p.h> QT_BEGIN_NAMESPACE @@ -64,7 +64,7 @@ class QQuickWindow; class QScreen; -class Q_AUTOTEST_EXPORT QQuickScreenInfo : public QObject +class Q_QUICK_PRIVATE_EXPORT QQuickScreenInfo : public QObject { Q_OBJECT Q_PROPERTY(QString name READ name NOTIFY nameChanged) @@ -86,10 +86,6 @@ class Q_AUTOTEST_EXPORT QQuickScreenInfo : public QObject Q_PROPERTY(int virtualX READ virtualX NOTIFY virtualXChanged REVISION 3) Q_PROPERTY(int virtualY READ virtualY NOTIFY virtualYChanged REVISION 3) - QML_NAMED_ELEMENT(ScreenInfo) - QML_ADDED_IN_MINOR_VERSION(3) - QML_UNCREATABLE("ScreenInfo can only be used via the attached property.") - public: QQuickScreenInfo(QObject *parent = nullptr, QScreen *wrappedScreen = nullptr); @@ -132,7 +128,7 @@ protected: QPointer<QScreen> m_screen; }; -class Q_AUTOTEST_EXPORT QQuickScreenAttached : public QQuickScreenInfo +class Q_QUICK_PRIVATE_EXPORT QQuickScreenAttached : public QQuickScreenInfo { Q_OBJECT Q_PROPERTY(Qt::ScreenOrientations orientationUpdateMask READ orientationUpdateMask @@ -162,11 +158,9 @@ private: bool m_updateMaskSet; }; -class Q_AUTOTEST_EXPORT QQuickScreen : public QObject +class Q_QUICK_PRIVATE_EXPORT QQuickScreen : public QObject { Q_OBJECT - QML_NAMED_ELEMENT(Screen) - QML_UNCREATABLE("Screen can only be used via the attached property.") QML_ATTACHED(QQuickScreenAttached) public: diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 9e88f93b11..0ee93ab6ff 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -39,7 +39,6 @@ #include "qquickwindow.h" #include "qquickwindow_p.h" -#include "qquickwindowattached_p.h" #include "qquickitem.h" #include "qquickitem_p.h" diff --git a/src/quick/items/qquickwindow.h b/src/quick/items/qquickwindow.h index bec1ace2a6..56d50cec2a 100644 --- a/src/quick/items/qquickwindow.h +++ b/src/quick/items/qquickwindow.h @@ -76,9 +76,6 @@ class Q_QUICK_EXPORT QQuickWindow : public QWindow Q_PROPERTY(QQuickItem* contentItem READ contentItem CONSTANT) Q_PROPERTY(QQuickItem* activeFocusItem READ activeFocusItem NOTIFY activeFocusItemChanged REVISION 1) Q_CLASSINFO("DefaultProperty", "data") - QML_NAMED_ELEMENT(Window) - QML_ADDED_IN_MINOR_VERSION(0) - QML_REMOVED_IN_MINOR_VERSION(1) Q_DECLARE_PRIVATE(QQuickWindow) public: enum CreateTextureOption { diff --git a/src/quick/items/qquickwindowmodule.cpp b/src/quick/items/qquickwindowmodule.cpp index 0f952d194c..ee90af4341 100644 --- a/src/quick/items/qquickwindowmodule.cpp +++ b/src/quick/items/qquickwindowmodule.cpp @@ -48,6 +48,7 @@ #include <private/qguiapplication_p.h> #include <private/qqmlengine_p.h> #include <private/qv4qobjectwrapper_p.h> +#include <private/qqmlglobal_p.h> #include <qpa/qplatformintegration.h> QT_BEGIN_NAMESPACE @@ -195,19 +196,6 @@ void QQuickWindowQmlImpl::setScreen(QObject *screen) QWindow::setScreen(screenWrapper ? screenWrapper->wrappedScreen() : nullptr); } -void QQuickWindowModule::defineModule() -{ - const char uri[] = "QtQuick.Window"; - - // Cannot automatically register these. They are from QtGui. - qmlRegisterRevision<QWindow,1>(uri, 2, 1); - qmlRegisterRevision<QWindow,2>(uri, 2, 2); - qmlRegisterRevision<QWindow,13>(uri, 2, 13); - - qmlRegisterTypesAndRevisions<QQuickWindow, QQuickWindowQmlImpl, - QQuickScreen, QQuickScreenInfo>(uri, 2); -} - QT_END_NAMESPACE #include "moc_qquickwindowmodule_p.cpp" diff --git a/src/quick/items/qquickwindowmodule_p.h b/src/quick/items/qquickwindowmodule_p.h index 1769e5aeb4..d0bf5c29b3 100644 --- a/src/quick/items/qquickwindowmodule_p.h +++ b/src/quick/items/qquickwindowmodule_p.h @@ -68,8 +68,6 @@ class Q_QUICK_PRIVATE_EXPORT QQuickWindowQmlImpl : public QQuickWindow, public Q Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged) Q_PROPERTY(Visibility visibility READ visibility WRITE setVisibility NOTIFY visibilityChanged) Q_PROPERTY(QObject *screen READ screen WRITE setScreen NOTIFY screenChanged REVISION 3) - QML_NAMED_ELEMENT(Window) - QML_ADDED_IN_MINOR_VERSION(1) QML_ATTACHED(QQuickWindowAttached) public: @@ -100,12 +98,6 @@ private: Q_DECLARE_PRIVATE(QQuickWindowQmlImpl) }; -class Q_QUICK_PRIVATE_EXPORT QQuickWindowModule -{ -public: - static void defineModule(); -}; - QT_END_NAMESPACE QML_DECLARE_TYPE(QQuickWindowQmlImpl) |