diff options
author | Shawn Rutledge <shawn.rutledge@digia.com> | 2014-09-10 15:27:58 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@digia.com> | 2014-09-24 15:21:04 +0200 |
commit | 5b21f8529ebc8e3e66ec6d057734f90b10bb7657 (patch) | |
tree | fba57d3dc202399571a1a3ee2ca2d3e21357a987 | |
parent | c2706491906c053f5d38ddc0558a993bbf7cfd3e (diff) |
move QQuickWindowAttached to QQuickWindowQmlImpl
It causes problems to do qmlRegisterType on QQuickWindow if the
attached property also refers to QQuickWindow.
Task-number: QTBUG-40816
Task-number: QTBUG-41047
Change-Id: I7a6f75af52f65e2be022b97128702982bec7cbe8
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 5 | ||||
-rw-r--r-- | src/quick/items/qquickwindow.h | 3 | ||||
-rw-r--r-- | src/quick/items/qquickwindowmodule.cpp | 11 |
3 files changed, 7 insertions, 12 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index c522eff0a1..24b8e042df 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -3905,11 +3905,6 @@ void QQuickWindow::scheduleRenderJob(QRunnable *job, RenderStage stage) d->renderJobMutex.unlock(); } -QQuickWindowAttached *QQuickWindow::qmlAttachedProperties(QObject *object) -{ - return new QQuickWindowAttached(object); -} - void QQuickWindowPrivate::runAndClearJobs(QList<QRunnable *> *jobs) { renderJobMutex.lock(); diff --git a/src/quick/items/qquickwindow.h b/src/quick/items/qquickwindow.h index 7547d76ae9..b52d6b807e 100644 --- a/src/quick/items/qquickwindow.h +++ b/src/quick/items/qquickwindow.h @@ -142,8 +142,6 @@ public: void scheduleRenderJob(QRunnable *job, RenderStage schedule); - static QQuickWindowAttached *qmlAttachedProperties(QObject *object); - Q_SIGNALS: void frameSwapped(); Q_REVISION(2) void openglContextCreated(QOpenGLContext *context); @@ -208,7 +206,6 @@ private: QT_END_NAMESPACE Q_DECLARE_METATYPE(QQuickWindow *) -QML_DECLARE_TYPEINFO(QQuickWindow, QML_HAS_ATTACHED_PROPERTIES) #endif // QQUICKWINDOW_H diff --git a/src/quick/items/qquickwindowmodule.cpp b/src/quick/items/qquickwindowmodule.cpp index b0c99782f2..371abd163b 100644 --- a/src/quick/items/qquickwindowmodule.cpp +++ b/src/quick/items/qquickwindowmodule.cpp @@ -79,6 +79,11 @@ public: QQuickWindow::setVisibility(visibility); } + static QQuickWindowAttached *qmlAttachedProperties(QObject *object) + { + return new QQuickWindowAttached(object); + } + Q_SIGNALS: void visibleChanged(bool arg); void visibilityChanged(QWindow::Visibility visibility); @@ -166,16 +171,13 @@ void QQuickWindowModule::defineModule() { const char uri[] = "QtQuick.Window"; - // Since Window is both an attached property and a createable type, - // the attached property declaration must come first so that it can - // be overridden below. - qmlRegisterUncreatableType<QQuickWindow>(uri, 2, 2, "Window", QQuickWindow::tr("Window is available via attached properties")); qmlRegisterType<QQuickWindow>(uri, 2, 0, "Window"); qmlRegisterRevision<QWindow,1>(uri, 2, 1); qmlRegisterRevision<QWindow,2>(uri, 2, 2); qmlRegisterRevision<QQuickWindow,1>(uri, 2, 1);//Type moved to a subclass, but also has new members qmlRegisterRevision<QQuickWindow,2>(uri, 2, 2); qmlRegisterType<QQuickWindowQmlImpl>(uri, 2, 1, "Window"); + qmlRegisterType<QQuickWindowQmlImpl,1>(uri, 2, 2, "Window"); qmlRegisterUncreatableType<QQuickScreen>(uri, 2, 0, "Screen", QStringLiteral("Screen can only be used via the attached property.")); } @@ -183,3 +185,4 @@ void QQuickWindowModule::defineModule() QT_END_NAMESPACE +QML_DECLARE_TYPEINFO(QQuickWindowQmlImpl, QML_HAS_ATTACHED_PROPERTIES) |