diff options
| author | Soheil Armin <soheil.armin@qt.io> | 2024-04-20 16:49:22 +0300 |
|---|---|---|
| committer | Soheil Armin <soheil.armin@qt.io> | 2024-05-22 15:53:57 +0300 |
| commit | 9166e9ffb62a16ed94743a9080772e8f27ba0299 (patch) | |
| tree | 673490f0c948c95c027845aa3cc17d7db5b70c67 /src/quick/platform/android/qandroidquickviewembedding.cpp | |
| parent | 1163e6a420968508b67e803c3e1f197d5b97cc52 (diff) | |
Android: Add QAndroidQuickView class that owns QAndroidViewSignalManager
Previously QAndroidViewSignalManager was a direct child
of the QQuickView. In JNI calls that we did not have a reference
to the signal manager, we had to use findChild to get access
to the instance of it.
We add QAndroidQuickView as a QQuickView subclass that owns
the QAndroidViewSignalManager instance.
Task-number: QTBUG-124488
Change-Id: I02ad10756a4af1ac82f130f349e7c8b6f563c70c
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/quick/platform/android/qandroidquickviewembedding.cpp')
| -rw-r--r-- | src/quick/platform/android/qandroidquickviewembedding.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/quick/platform/android/qandroidquickviewembedding.cpp b/src/quick/platform/android/qandroidquickviewembedding.cpp index f6d4f04b22..925120bc09 100644 --- a/src/quick/platform/android/qandroidquickviewembedding.cpp +++ b/src/quick/platform/android/qandroidquickviewembedding.cpp @@ -53,14 +53,13 @@ namespace QtAndroidQuickViewEmbedding qmlUrl, importPaths] { QWindow *parentWindow = reinterpret_cast<QWindow *>(parentWindowReference); - QQuickView *view = new QQuickView(parentWindow); + QAndroidQuickView *view = new QAndroidQuickView(parentWindow); QQmlEngine *engine = view->engine(); - new QAndroidViewSignalManager(view); - QObject::connect(view, &QQuickView::statusChanged, - [qtViewObject](QQuickView::Status status) { + QObject::connect(view, &QAndroidQuickView::statusChanged, + [qtViewObject](QAndroidQuickView::Status status) { qtViewObject.callMethod<void>("handleStatusChange", status); }); - view->setResizeMode(QQuickView::SizeRootObjectToView); + view->setResizeMode(QAndroidQuickView::SizeRootObjectToView); view->setColor(QColor(Qt::transparent)); view->setWidth(width); view->setHeight(height); @@ -76,9 +75,9 @@ namespace QtAndroidQuickViewEmbedding }); } - std::pair<QQuickView *, QQuickItem *> getViewAndRootObject(jlong windowReference) + std::pair<QAndroidQuickView *, QQuickItem *> getViewAndRootObject(jlong windowReference) { - QQuickView *view = reinterpret_cast<QQuickView *>(windowReference); + QAndroidQuickView *view = reinterpret_cast<QAndroidQuickView *>(windowReference); QQuickItem *rootObject = Q_LIKELY(view) ? view->rootObject() : nullptr; return std::make_pair(view, rootObject); } @@ -195,7 +194,7 @@ namespace QtAndroidQuickViewEmbedding return -1; } - QAndroidViewSignalManager *signalManager = view->findChild<QAndroidViewSignalManager *>(); + QAndroidViewSignalManager *signalManager = view->signalManager(); const QByteArray javaArgClass = QJniObject(argType).className(); const char *qArgName = QMetaType(javaToQMetaType.value(javaArgClass, QMetaType::Type::UnknownType)).name(); @@ -299,7 +298,7 @@ namespace QtAndroidQuickViewEmbedding return false; } - QAndroidViewSignalManager *signalManager = view->findChild<QAndroidViewSignalManager *>(); + QAndroidViewSignalManager *signalManager = view->signalManager(); if (!signalManager->connections.contains(signalListenerId)) return false; |
