The Unusual Suspect: Layouts for sleeker KDE applications
-
Upload
openbossa -
Category
Technology
-
view
1.094 -
download
0
description
Transcript of The Unusual Suspect: Layouts for sleeker KDE applications
The Unusual Suspect:
Layouts for sleeker KDE applications
Caio Marcelo de Oliveira FilhoEduardo Madeira FleuryJuly 6th, 2009
Who are we?
• Nokia research institute in Brazil – INdT
• openBossa – FOSS stream at INdT
• Collaborating with Qt Software / KDE:
- Qt Kinetic that's us :-)←
- Qt Webkit
- Plasma Netbook
- ItemViews-NG
Background
• Fluid and Rich UIs have become a standard
• Collaborative work: designers and developers
• Several initiatives to enhance KDE looks
- High level
- Low level
• Layouting tools needed to evolve
Layouts in Qt
• Engine that handles geometry of items
• Widgets can use layouts to manage its children
• Today: Linear, Grid, Stacked and Form
Covered in this presentation
• Flexible Layouts
• Custom Layouts
• Application of Layouts and Widgets
• Multiple Layouts
• Integration with Declarative UI
FLEXIBLE LAYOUTS
Flexible Layouts
• Layout behavior based on its configuration
• Designers can interact with the layout
• More power, less layouts
• AnchorLayout available at Qt Gitorious
• Edje relative positioning is similar
CUSTOM LAYOUTS
Custom Layouts
• Layout behavior rules based on its engine
• Developers implement custom algorithms
• Abstract / Hide internal decisions
• Powerful handling of item addition / removal
• Internal animations
Usage of Flexible vs Custom
• C++: Call methods x Create subclass
• Call methods: Good for high level tool or QML
• Subclasses: More control, require a developer
LAYOUTSOR
CONTAINER WIDGETS
Container Widgets
• Also responsible for children geometries
• Usually create its own items
• ItemViews: “delegates” or “item creators”
• Can be flexible too (e.g. ItemViews-NG)
• Container Widget = Engine + Widget Factory
Layouts or Container Widgets?
• Layouts handle child widgets
• Container Widgets handle data (e.g. models)
• Container Widget = Layout + Widget Factory
MULTIPLE LAYOUTS
Multiple Layouts
• Application screens are dynamic
• Different states associated to the interface
• Single set of widgets, multiple layouts
• Animate from one layout to another
DECLARATIVE UI INTEGRATION
Declarative UI Integration
• Layouts are declarative!
• Layout integration still in discussion
• Use property propagation to “anchor” items
• Support for layouts would be useful:
- Different layouts
- Optimization
Thank you! :-)
Qt Labs America
• Qt / KDE place in America, starting in Brazil
• Promotion and mentoring of FOSS projects
• Tech-days in universities
• Working together with KDE
Caio Marcelo de Oliveira [email protected]
Eduardo Madeira [email protected]
http://eduardofleury.com
Freenode #qt-kinetic