Details
-
Suggestion
-
Resolution: Done
-
P2: Important
-
None
-
None
Description
The current QML views:
- have considerable duplicated code
- are not as flexible as required for fluid layout
- lack entrance/exit transitions, etc.
- have insufficient performance
1. Identify all view requirements
2. Research approaches to satisfy the requirements
3. implement prototypes of at least List, Grid and Path view layouts
Ideally the same layout code is reused for laying out items which are not part of a view, i.e. the layout engine is not tied to the views.
The desired result is a set of lightweight, but flexible views (layouts) suitable for highly dynamic UIs.
They will not necessarily cover the large array of desktop-centric features that traditional Qt views cover.
Initial Requirements:
- support for entry/exit transitions
- view to view transitions
- support multiple delegate types
- add/remove/move transitions
- item selection
- section support
- some support for item creation in threads?
- delegate instance recycling?
Use cases:
- Obviously everything QML does today.
- iPad pinch-to-expand photo stack
- iPhone SMS app. The SMS is originally typed below the conversation view, and then slides up to become part of the view itself.
Attachments
Issue Links
- depends on
-
QTBUG-20105 Data model optimized for QML views
- Closed
- resulted in
-
QTBUG-26682 Support section headers in GridView
- Open
-
QTBUG-26681 Support multiple delegate types in QML views
- Closed
Gerrit Reviews
For Gerrit Dashboard: QTBUG-20107 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
3560,1 | Add API to access and the manipulate items in a VisualDataModel. | master | qt/qtdeclarative | Status: ABANDONED | -1 | 0 |
4033,3 | Refactor QSGVisualDataModel. | master | qt/qtdeclarative | Status: MERGED | +2 | 0 |
4034,3 | Use QDeclarativeChangeSet to communicate changes to views. | master | qt/qtdeclarative | Status: MERGED | +2 | 0 |
4036,2 | Add a createItem function to VisualDataModel. | master | qt/qtdeclarative | Status: ABANDONED | +1 | 0 |
4623,3 | Add a move() overload which transfers items between VisualDataModels. | master | qt/qtdeclarative | Status: ABANDONED | 0 | 0 |