Let us QMLify the code : Journey from SoK 2012 to GSoC 2013 to GCI 2013

Short Form


QML (Qt Meta Language or Qt Modeling Language) is a JavaScript-based, declarative language for designing user interface–centric applications. QML elements can be augmented by standard JavaScript both inline and via included .js files.

I will be presenting why QML is gaining popularity over the purely Qt codebase,what is QML, how to get involved with it, and its future in the open source world.

A great advantage in porting the code to QML from Qt is that it reduces the code maintenance effort for the communities like KDE. The plasmoids written in QML will have considerably less code as QML allows the creation of fluid UIs in a powerful declarative way.


With introduction of Qt Quick/QML in Qt 4.7, the gap between the developers and UI designers got narrowed down with its rich set of QML elements and intuitive declarative QML language.

QML allows designers to create fluid like animated UIs very quickly. And most importantly, the animations happen without the slightest glitch. The JavaScript/C++ bundle efficiently handles all the back-end implementation, leaving the designers to concentrate on the animations and UI simplicity.
So, I was quite fascinated with the QML front end code when I was providing the themes in season of kde 2012 to kde-edu “QML” game pairs. I gradually started porting plasmoids like trashcan, window-list and the beautiful clock with calendar to QML in google summer of code 2013.

The plasmoids written in QML will have considerably less code as QML allows the creation of fluid UIs in a powerful declarative way. The QML code depending on QtQuick 1.x (present since Qt 4.7) is almost a straightforward porting since QtQuick 2.0 kept the source code compatibility with the previous version.Though porting C++codebase to Qt5 can be a bit complex since QTDeclarativemodule in Qt5 uses openGL and scenegraph.

The window-list uses tasks data engine to provide services so I added services like unclutter and cascade to it which was then made available to the QML code which acts as the front end.It gave a very smooth slide movements on scrolling up and down the list of windows.In digital clock, the plasmoids had to use the locale time and a calendar appears as a pop up .
I then ported these plasmoids to plasma 2 which uses QML 2.0 and Qt 5.2 .

Plasma Workspace is very well designed to accommodate various panels, widgets, etc. on the desktop and has seen many changes since KDE 4.1 in the plasma design and architecture. Its developer friendly code-base allows various programmers to easily create custom plasmoids which can be distributed as a small bundle and be easily integrated into the plasma workspace.

I will explain about the impact of QML, how to get involved with it, how to port the plasmoids from Qt to QML codebase, providing a sample plasmoid to provide a demo, a brief introduction about the QML game pairs, how plasma is evolving, the vital use of data engines in QML plasmoids, its impact and the present scenario of Qt and QML in open source technology and the future implementations of QML .

And, with the coming of QML, a better world is created in the open source technology. I later provided various QML based tasks in Google code in 2013 as well to promote the QML culture among young students and got a healthy participation so I would say QML is the new generation’s codebase .


QML, Qt, KDE, gsoc, sok, gci, plasma

Speaking experience

Presented a talk about lucid touch technology and multi touch technology at Delhi College of Engineering, India.


  • L0


    I am a Season of KDE 2012 student(kde-edu game pairs), Google summer of code 2013 student under KDE where I worked with plasma team, Google Code In 2013 mentor where I provided tasks under KDE for plasma, administrator of Season of KDE 2014 and organization administrator of KDE for Google Code In 2014 as well. I am also a mentor in Learn IT, girl. Moreover, I am also the co-founder, organizer and director of Women Who Code Delhi, India.