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

Many Declarative element properties are missing NOTIFYs and signals needed in data binding

    XMLWordPrintable

Details

    Description

      Each property needs to have a NOTIFY for the QML data binding to work. Data binding is used in some properties more than others, so traditional configuration type properties (and stuff you normally set once) have lacked NOTIFYs. Problem here is that non-C++ developer knows nothing about C++ property declarations and has no way of knowing what properties actually are data bindable and what not, also there often are many valid use cases for data binding properties that the original creator of the component didn't think about. Thus all the properties in Declarative elements (accessible from QML) should be data bindable.

      Properties that are still missing NOTIFYs

      QDeclarativeState: name, when, extends,
      QDeclarativeStateGroup: target, explicity, restoreEntryValues
      QDeclarativeParentChange: target, parent, x, y, width, height, scale, rotation
      QDeclarativeAnchorChanges: target, reset, left, right, horizontalCenter, top, bottom, verticalCenter, baseline
      QDeclarativeScriptAction: script, stateChangeScriptName
      QDeclarativeParentAction: target, parent
      QDeclarativeParentAnimation: target, via
      QDeclarativeTransition: from, to, reversible
      QDeclarativeSpringFollow: source, velocity, spring, damping, epsilon, enabled, value, modulus, mass, inSync
      QDeclarativeBehavior: animation
      QDeclarativeVisualDataModel: model, part, parts
      QDeclarativeFlipable: front, back miss NOTIFYs, but didn't at them as the code states they are write once properties

      These require the property be defined in graphicsobject
      QDeclarativeItem: graphicsEffect
      QDeclarativeTextEdit: inputMethodHints
      QDeclarativeTextInput: inputMethodHints

      Element properties, where I have added NOTIFYs during the last two weeks

      QDeclarativeItem: smooth, clip
      QDeclarativeMouseRegion: changed drag to CONSTANT
      QDeclarativeDrag: target, axis, minimumX, maximumX, minimumY, maximumY
      QDeclarativeFlickable: overShoot, maximumFlickVelocity, flickDeceleration, pressDelay
      QDeclarativeLoader: resizeMode
      QDeclarativeRepeater: model, delegate
      QDeclarativeWebView: html, pressGrabTime, newWindowComponent, newWindowParent, renderingEnabled
      QDeclarativePositioner: move, add
      QDeclarativeGrid: rows, columns
      QDeclarativeListView: model, highlight, delegate, header, footer, highlightFollowsCurrentItem, preferredHighlightBegin, preferredHighlightEnd, highlightRangeMode, keyNavigationWraps, cacheBuffer, snapMode
      QDeclarativeGridView: model, delegate, highlight, flow, wrapEnabled, cacheBuffer
      QDeclarativePath variants: name, startX, startY
      QDeclarativePathView: model, path, dragMargin, snapPosition, delegate, pathItemCount
      QDeclarativeXmlListModel: source, xml, query, namespaceDeclarations
      QDeclarativeXmlListModelRole: name, query, isKey
      QDeclarativeTimer: interval, repeat, triggeredOnStart

      Elements that are already covered, either had NOTIFYS or don't have properties at all

      QDeclarativeRectangle
      QDeclarativeBorderImage
      QDeclarativeImage
      QDeclarativeText
      QDeclarativeFocusPanel
      QDeclarativeFocusScope
      QmlSystemPalette
      QmlStateGroup
      QGraphicsEffect
      QGraphicsOpacityEffect
      QGraphicsBlurEffect
      QGraphicsDropShadowEffect
      QGraphicsColorizeEffect
      QDeclarativeAbstractAnimation
      QDeclarativePauseAnimation
      QDeclarativePropertyAction
      QDeclarativePropertyAnimation
      QDeclarativeColorAnimation
      QDeclarativeVector3dAnimation
      QDeclarativeRotationAnimation
      QDeclarativeAnimationGroup
      QDeclarativeSequentialAnimation
      QDeclarativeParallelAnimation
      QDeclarativeEaseFollow
      QDeclarativeConnections
      QDeclarativeVisualModel
      QDeclarativeListModel
      QDeclarativeListElement
      QDeclarativeComponent
      QDeclarativeLayoutItem

      Attachments

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

        Activity

          People

            jpetrell Joona Petrell
            jpetrell Joona Petrell
            Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 1 week, 3 days
                1w 3d
                Remaining:
                Remaining Estimate - 1 week, 3 days
                1w 3d
                Logged:
                Time Spent - Not Specified
                Not Specified

                Gerrit Reviews

                  There are no open Gerrit changes