On Friday 17 September 2010, Marco Martin wrote: > On Thursday 16 September 2010, Marco Martin wrote: > > Hi all, > > the status of an AppletScript for writing plasmoids in pure QML is > > progressing rather well, i thought to write a detailed status > > report/documentation before significative design problems go too far in > > the implementation, be patient, is really long, but it can be used as a > > basis for a future documentation.
I'll answer myself for hystorical records: > Almost implemented services support (there is a qml nowplaying plasmoid to > test it), but there are two quite ugly problems (that derive from not > having access to the engine): > services: > we need to manipulate kconfiggroup from javascript, but we can't registed > the conversion to scriptvalues: that is valid for any type tht is not a > qobject, oh joy. > at the moment resolved with a function > AppletInterface::setOperationValue(KConfiggroup, key, value) this is unfortunately the way to go(tm) also kontact mobile did this way. since we can't register handlers for KConfiggroup in the engine we can't access, i think should be in the KDE global object konact is using too. for now we can keep a copy, sometimes that class could even go into kdelibs tough i'm not sure since we probably need way less that kontact if we want keep the "sandboxed" behaviour, so a more limited tough api identical versdion could be kept in plasma. > second problem: > services support the neat feature of being automatically associated to a > widget, so doing someting like service.associateWidget(stop, "stop"); > > now, i can call this from the qml javascript, but the thing that gets in > the parameter instead of the widget is some misterious value that i'm not > even sure it started as a pointer (no, it's not a QObject*) > so anohter thing that would not be possible is to pass pointers to the > internal qml items passed by id in an external c++ object. > i see this as another potentially limiting thing. this is actually a QScriptValue (not pointer) so to make for instance Service::associateWidget(QGraphcisWidget, QString) work, the only way to make this work is to add another method like associateDeclarativeWidget(QScriptValue, QString) Cheers, Marco Martin _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel