There is quite a lot of work going on in plasma land at the moment.
For PlasmaWorkspace 4.10 you may expect an overhauled visual appearance and an overhauled user interface on some plasmoids.
The two weather plasmoids and the pager were rewritten in QML by Luis as part of his gsoc, while others are in the works.
The Notifications and jobs plasmoid is in the works, solving many behavioural bugs that were a limit of the previous architecture (more on that later;)
A Kickoff replacement is on the works as well, and if everything goes allright another important one will arrive for 4.10.
This is made possible by the contribution of the people, I’m seeing a renewed interest in working on plasmoids, also due the new architecture that significantly decrease the learning curve.
But, there is always a but 😉
There is a small problem I seen in some converted QML plasmoids: sometimes the needed data arrives from a Plasma dataengine. there is a nice system to map that data directly to a model usable in a QML ListView, Repeater and so forth, DataModel from org.kde.plasma.core
This is a (strong) simplification of the device notifier plasmoid:
PlasmaCore.DataSource { id: sdSource engine: "soliddevice" //hpSource is a datasource connected to the hotplug engine connectedSources: hpSource.sources } ListView { id: notifierDialog model: PlasmaCore.DataModel { dataSource: sdSource } delegate: PlasmaComponents.Label { text: i18nc("@info:status Free disk space", "%1 free", model["Free Space Text"]) } }
The keys of the dataengine are directly mapped to the ListView model, so directly accessible to the delegates via the “model” variable, or directly as their own variables.
However, due to a limitation in QML, if the dataengine doesn’t immediately do a setData() of a particular key, or a key is not always available, it won’t be mapped as a role in the delegates, if you encounter this roadblock, feear not, you can still access the data with something that in the above example would map sdSource.data[“DataengineSource”][“Free Space Text”]
When possible tough use the model mechanism, since some nice optimizations are planned for it 😉
One of the things I wish for plasma2 is a formal specification of dataengine available data in a way that would avoid situations like that and most important nice documentation may be extracted from 😉