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

Enable embedding foreign UI elements in Qt Quick UIs

    XMLWordPrintable

Details

    • Epic
    • Resolution: Unresolved
    • P2: Important
    • 6.x
    • 6.3, 6.2
    • GUI: Other
    • None

    Description

      This is a summary of an internal discussion. Posting it to BugReports for tracking and further comments.

      The prerequisite for QTBUG-100874 would be a support for being able to place native views into a QML scene and make a native view visible and accessible (events) through the QML Scene. Generally, the native view could be

      • a web view component
      • a map view component
      • some other native window

      The first two are mostly asked ATM, since the web view is needed for the Qt Ad team. Supporting native map view with this feature is one of the main reasons to use a native map view at all, since just showing a view on a map w/o an ability to overlay it with some additional information is a serious limitation. 

      The following aspects have been discussed:

      -Stacking, we need to be able to set the WebView and QML scenes stacking order, that is, we need to be able to place one underneath the other. Possibly, there should be code for doing this in the Android platform plugin already. There was a prototype once created for a customer and POC on Gerrit, which uses an environment variable, but we will need a more proper solution if we want to get it into Qt.

      -Event forwarding or input mask support. Events cannot be consumed by the top-layer for the region(s) we "punch" a hole for. It looks like there’s no support for this in the platform plugins or the QPA layer. The patch we have for iOS is working around this with that OpenGL readback trick, but we can’t and shouldn’t do it that way, so we need some better way to let the platform plugins know it shouldn’t consume events for certain regions of the window (e.g., by keeping track of those regions).

      Once we can position the scenes in relation to each other and get the events through to the underlay, the patch we have for iOS to punch a hole in the QML Scene should more or less work just fine for both platforms.

      This task should track works related to this aspect. As soon as this works, we will see what is needed in the WebView.

      Please note that the Qt Ad team needs a working prototype before June  

      Note that this task has been listed for Android and iOS, since the use case in Qt Ad works on other platforms, where Qt WebEngine is used to render ads and so it can be overlayed as needed. Still, we might need this feature on other platforms for other use cases. Please keep this in mind to assure the max cross-platform compability. 

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-102835
          # Subject Branch Project Status CR V

          Activity

            People

              vestbo Tor Arne Vestbø
              vminenko Vladimir Minenko
              Vladimir Minenko Vladimir Minenko
              Volker Hilsheimer Volker Hilsheimer
              Votes:
              15 Vote for this issue
              Watchers:
              20 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes