SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
The Unusual Suspect:
Layouts for sleeker KDE applications

Caio Marcelo de Oliveira Filho
Eduardo Madeira Fleury
July 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
LAYOUTS
       OR
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 Filho
 caio.oliveira@openbossa.org

  Eduardo Madeira Fleury
eduardo.fleury@openbossa.org
   http://eduardofleury.com

    Freenode #qt-kinetic

Más contenido relacionado

Destacado

Connecting Technology for Great Experiences - How does QML and Web fit together?
Connecting Technology for Great Experiences - How does QML and Web fit together?Connecting Technology for Great Experiences - How does QML and Web fit together?
Connecting Technology for Great Experiences - How does QML and Web fit together?
OpenBossa
 

Destacado (9)

KDE in Your Life from Desktop to Pocket
KDE in Your Life from Desktop to PocketKDE in Your Life from Desktop to Pocket
KDE in Your Life from Desktop to Pocket
 
Connecting Technology for Great Experiences - How does QML and Web fit together?
Connecting Technology for Great Experiences - How does QML and Web fit together?Connecting Technology for Great Experiences - How does QML and Web fit together?
Connecting Technology for Great Experiences - How does QML and Web fit together?
 
Brasil, Open Source e o Mundo dos Negócios
Brasil, Open Source e o Mundo dos NegóciosBrasil, Open Source e o Mundo dos Negócios
Brasil, Open Source e o Mundo dos Negócios
 
PySide
PySidePySide
PySide
 
Multi View Constructed Right
Multi View Constructed RightMulti View Constructed Right
Multi View Constructed Right
 
Negócios e Open Source
Negócios e Open SourceNegócios e Open Source
Negócios e Open Source
 
What's up about Plasma-MID?
What's up about Plasma-MID?What's up about Plasma-MID?
What's up about Plasma-MID?
 
Qt
QtQt
Qt
 
Intro to QML / Declarative UI
Intro to QML / Declarative UIIntro to QML / Declarative UI
Intro to QML / Declarative UI
 

Similar a The Unusual Suspect: Layouts for sleeker KDE applications

Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Chris Jang
 

Similar a The Unusual Suspect: Layouts for sleeker KDE applications (20)

The Developers World
The Developers WorldThe Developers World
The Developers World
 
Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1
 
Mastering azure devOps - Dot Net Tricks
Mastering azure devOps - Dot Net TricksMastering azure devOps - Dot Net Tricks
Mastering azure devOps - Dot Net Tricks
 
Qt programming-using-cpp
Qt programming-using-cppQt programming-using-cpp
Qt programming-using-cpp
 
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
Google Tech Talk with Dr. Eric Brewer in Korea Apr.27.2015
 
Webcast: DevOps in AWS is different! How can containers help?
Webcast: DevOps in AWS is different! How can containers help? Webcast: DevOps in AWS is different! How can containers help?
Webcast: DevOps in AWS is different! How can containers help?
 
Go for building cross-platform graphical apps
Go for building cross-platform graphical appsGo for building cross-platform graphical apps
Go for building cross-platform graphical apps
 
The Power of Azure DevOps
The Power of Azure DevOpsThe Power of Azure DevOps
The Power of Azure DevOps
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_u
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Dot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsDot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentals
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
The new way of managing layouts and blocks
The new way of managing layouts and blocksThe new way of managing layouts and blocks
The new way of managing layouts and blocks
 
A Tight Ship: How Containers and SDS Optimize the Enterprise
 A Tight Ship: How Containers and SDS Optimize the Enterprise A Tight Ship: How Containers and SDS Optimize the Enterprise
A Tight Ship: How Containers and SDS Optimize the Enterprise
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
 
Atlassian User Group NYC 20170830 PreSummit Event Slides
Atlassian User Group NYC 20170830 PreSummit Event SlidesAtlassian User Group NYC 20170830 PreSummit Event Slides
Atlassian User Group NYC 20170830 PreSummit Event Slides
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

The Unusual Suspect: Layouts for sleeker KDE applications

  • 1. The Unusual Suspect: Layouts for sleeker KDE applications Caio Marcelo de Oliveira Filho Eduardo Madeira Fleury July 6th, 2009
  • 2. 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
  • 3. 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
  • 4. Layouts in Qt • Engine that handles geometry of items • Widgets can use layouts to manage its children • Today: Linear, Grid, Stacked and Form
  • 5. Covered in this presentation • Flexible Layouts • Custom Layouts • Application of Layouts and Widgets • Multiple Layouts • Integration with Declarative UI
  • 7. 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
  • 9. 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
  • 10. 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
  • 11. LAYOUTS OR CONTAINER WIDGETS
  • 12. 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
  • 13. Layouts or Container Widgets? • Layouts handle child widgets • Container Widgets handle data (e.g. models) • Container Widget = Layout + Widget Factory
  • 15. Multiple Layouts • Application screens are dynamic • Different states associated to the interface • Single set of widgets, multiple layouts • Animate from one layout to another
  • 17. 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
  • 19. 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
  • 20. Caio Marcelo de Oliveira Filho caio.oliveira@openbossa.org Eduardo Madeira Fleury eduardo.fleury@openbossa.org http://eduardofleury.com Freenode #qt-kinetic