Skip to content

QtQuick2 Support Status

Volker Krause edited this page Jan 11, 2018 · 22 revisions

This page is used to track the status of support for QtQuick2 throughout GammaRay.

Core

  • allow plug-ins to add custom property editor pages [DONE]
  • allow navigating to objects referred to in properties [DONE]

QML Support Plug-in

  • Show attached properties of an object [DONE]
  • properties for QQmlComponent, QQmlContext, QQmlEngine [DONE]
  • display of QQmlError [DONE]
  • support for QQmlListProperty [DONE]
  • display QML IDs in the object tree [DONE]
  • QML binding/property dependency tree visualizer
    • static: Figure out binding dependencies from the internal QML engine housekeeping
    • dynamic: Figure out binding dependencies from signal spy (only for bindings that changed at least once)
      • only if static not possible

QtQuick2 Scene Inspector Plug-in

Item tree inspector

  • Display QML source file if available [DONE]
    • synchronize scene selector with selecting element in source code text edit
  • scene selector [DONE]
  • scene model following visual parents [DONE]
    • highlight visible items [DONE]
    • mark out-of-view items?
    • type icons as in the widget model [PARTIAL]
  • Animation debugger
    • slow down animations with QUnifiedTimer::instance()->setSlowModeEnabled() and setSlowdownFactor() [DONE]
    • Manually trigger animations
  • visualize states and transitions (separate property tab with QSM-like visualization)

Live Preview

  • selected item shows bounding box, implicit size, child area, baseline, margins, etc. [DONE]
  • Anchor visualization
    • Selecting an item should also display a transparent rectangle overlay of all items it is anchored too
    • Use icons at anchors border to visualize anchor type
    • Visualize margins [DONE]
    • Specially mark items that have hardcoded x and y positions instead of using anchors
  • item picking [DONE]
  • mouse/key/touch event forwarding for remote control [DONE]

Scene graph inspector

  • Synchronize selection with item tree [DONE]
  • Geometry node:
    • show material shaders [DONE]
    • show attribute data [DONE]
      • allow to specify attribute semantics (color, coordinate, etc)
    • show material textures [DONE]
  • Transform node:
    • display QMatrix4x4 [DONE]

Type support

  • properties for QQuickWindow/View [DONE]
  • properties for QQuickItem [DONE]

Integration

  • in-target QQuickItem picking [DONE]

Other Tools

Model Browser

  • target crashes when selecting a QQmlListModel [FIXED]

Timer Profiler

  • support for QQmlTimer [DONE] and QUnifiedTimer

Unsorted ideas

  • QQuick image cache debugging
    • show how much memory is used in total by the image cache
    • actually show which images are cached right now
  • JS engine memory usage details
    • Show how often garbage collection has run, how long a GC run took, ...
    • Show how much memory the JS engine uses, and what the limit for triggering GC is etc
  • focus debugging
    • show icons in tree view to see which items have activeFocus and which have focus set to true
    • maybe even key event debugging - record which items got the key event and which items accepted/ignored it
  • QtQuick controls layouting - similar to what we have for widgets?
  • visualize implicit sizes
    • warn about MouseAreas or Items with children that have size 0,0
  • visualize layers, etc?