Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-137057

Early QML signal listener registration

    XMLWordPrintable

Details

    • User Story
    • Resolution: Unresolved
    • P1: Critical
    • None
    • None
    • QPA: Android
    • None

    Description

      What

      The API currently does not allow users to register signal listeners until the QQuickView is fully loaded. This is a limitation that makes usage of the API more complex for no reason.

      Adding this early-registration feature would allow the users to initialize their views once and be done with it, rather than having to implement the onStatusChangeListener for the QtQuickView, and then handling the signals separately there, allowing for much better code quality, maintainability and user experience, in user projects.

      Why

      User experience, usability, maintainability of user projects.

      In usecases where the Android UI thread may be under heavy load, very early signal emits are missed completely by the current implementation. See QTBUG-137025.

      How

      Options:

        1. Modify QtQuickViewContent to initialize the underlying QQuickView* data object when QtQuickViewContent itself is initialized.
        2. For registrations that happen before the QQuickView is done loading, register a slot, connecting it with QQuickView::statusChanged, where these signals are then plumbed correctly to Java.
        3. For registrations that happen after QQuickView is ready, bypass the queuing portion.
      1. Up to the dev, if there is a better option.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qtandroidteam Qt Android Team
            pevirkku Petri Virkkunen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes