Details

    • Technical task
    • Resolution: Done
    • P1: Critical
    • 6.0.0, 6.0
    • Core: Object Model
    • None
    • 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

              shausman Simon Hausmann
              shausman Simon Hausmann
              Votes:
              4 Vote for this issue
              Watchers:
              20 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes