Notes from "Async and representation"

Marco Martin notmart at gmail.com
Tue Jan 14 19:14:55 UTC 2014


Hi all,
those are some notes in a probable API change that will probably happen (let's 
discuss!) on how QML plasmoids are written.

The problem:
* plasmoids needs some properties in the root object, such as minimumWidth, 
maximumWidth, compactRepresentation..
* the user has to declare *and* implement them: completely magic, the bad 
magic
* we want async loading as much as possible: ifwe are in a popup, the "main" 
applet area should be loaded only when the popup opens. this is right now 
possible but has to be made quite explicitly with the ConditionalLoader 
component

The proposal:
* force plasmoids implementations to implement a new component, called Applet 
or something like that
* this component is a simple QObject, so it can't contain any UI
* it exports explicitly the properties we need: minimumWidth/height other 
sizes, compactRepresentation..
* and a new component: fullRepresentation: it will contain the stuff that are 
intended to go in the full applet, so the popup contents or the full view in 
the desktop.
* both compact and full representation are created on demand when needed, so 
are *not* guaranteed to always exist.
* everything that needs to always exist is stuff like model and dataengines 
(therefore not graphical) this will have to be child of the root Applet item. 
(another proposal was to make another property that contains it)
* another thing i was thinking about is that some AppletInterface 
functionalities can be moved there (can be "plasmoid" the root object? i am 
not sure how much technically feasible, it may be experimented tough)


Pros:
* allows experiments: one day we may have a "mediacenterrepresentation" and so 
on
* neat api

Cons:
* may not make fully sense in containments: compactRepresentation is 
meaningless here
* will break *all* plasmoids, will be necessary to adapt everything, how much 
will delay?

a draft of the Appelt api can be found in the branch mart/AppletComponent in 
plasma-framework

Cheers,
Marco Martin


More information about the Plasma-devel mailing list