Details

    • Type: Technical task
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Fix Version/s: 6.0.0, 6.0
    • Component/s: Core: Object Model
    • Labels:
      None
    • Platform/s:
      All

      Description

      Qt 5's QML engine implements automatic data bindings on top of the Qt property system using dynamic data structures and change notifications through notifier signals.

      Through research we have learned that it should be possible to implement a more efficient data binding system by encapsulating the property data itself in a type, which can intercept reading and writing.

      This will allow us to support automatic data bindings from C++ and significantly reduce our memory and initialization overhead. It will also form the basis of a new compilation of QML to C++.

      The API could look a little bit like this:

          QProperty<int> width;
          QProperty<int> height;
          QProperty<int> area;
      
          width.bind(height); // keep it square
      
          area.bind([&]() { return width * height; }
      
          height = 100; // marks width and area dirty
      
          print(area); // updates width and area
      

        Attachments

          Issue Links

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

            Activity

              People

              Assignee:
              shausman Simon Hausmann
              Reporter:
              shausman Simon Hausmann
              Votes:
              4 Vote for this issue
              Watchers:
              21 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes