aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/platform/android/qandroidquickviewembedding.cpp
diff options
context:
space:
mode:
authorPetri Virkkunen <petri.virkkunen@qt.io>2025-07-11 14:34:19 +0300
committerPetri Virkkunen <petri.virkkunen@qt.io>2025-08-08 16:25:56 +0300
commitf82d8386b67cb37d36165f4faab25616d5fdf656 (patch)
tree54a6445e3f1f83d3e233370b91fa8ea256b2110c /src/quick/platform/android/qandroidquickviewembedding.cpp
parent012f554473f021158c18ada4a046d1249a7ed7c9 (diff)
QQ4A: Add possibility to register signals before QML is loaded
This commit adds a queue mechanism and API in QAndroidViewSignalManager that allows callers to add signal listeners before the QML view has been loaded. API Added to QAndroidViewSignalManager always returns true, but might still fail if a signal with the desired signalName does not exist. If using the QtQuickViewContent API, this should never happen, but with the QtQuickView API, this is a possibility with typos or signal names that are computed with some logic in code. Internally, QAndroidViewSignalManager listens to the QQuickView::statusChanged signal to detect when the QML view is done loading. Task-number: QTBUG-137057 Change-Id: I2ea95f096517f2b7f45a60f236923d42cb5cf1fe 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.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/quick/platform/android/qandroidquickviewembedding.cpp b/src/quick/platform/android/qandroidquickviewembedding.cpp
index 8b6114bb4e..4c09aff70c 100644
--- a/src/quick/platform/android/qandroidquickviewembedding.cpp
+++ b/src/quick/platform/android/qandroidquickviewembedding.cpp
@@ -170,16 +170,16 @@ namespace QtAndroidQuickViewEmbedding
{
Q_ASSERT(env);
- auto [view, rootObject] = getViewAndRootObject(windowReference);
- if (!rootObject) {
+ auto [view, _] = getViewAndRootObject(windowReference);
+ if (!view) {
qWarning("Cannot connect to signal %s %s",
qPrintable(QJniObject(signalName).toString()), uninitializedViewMessage);
- return -1;
+ return false;
}
QAndroidViewSignalManager *signalManager = view->signalManager();
return signalManager->addConnection(QJniObject(signalName).toString(), argTypes,
- QJniObject(listener), *rootObject);
+ QJniObject(listener));
}
bool removeRootObjectSignalListener(JNIEnv *, jobject, jlong windowReference,