Changes in QML scriptengine
    Marco Martin 
    notmart at gmail.com
       
    Wed Feb 13 14:36:48 UTC 2013
    
    
  
Hi all,
since i'm going forward with the porting of the qml scriptengine to plasma2, i 
got to think about the current implementation and how to implement missing 
pieces (that leads to what to change)
This could be a topic for a monday telco, but putting this forward already.
right now the scriptengine already lost most of the files/stuff it had in 
plasma1, what remains is
common:
* authorization.h
* scriptenv.cpp/.h
declarative:
*packageaccessmanager
*packageaccessfactory
*qmlobject (this is basically the api of QQuickView, but just a qobject, so 
makes very easy to parse qml with its own scriptengine in a way completely 
independent from a view: is probably material for KDeclarative)
plasmoid:
* appletinterface
* declarativeappletscript
Now, what i would change:
* ScriptEnv is basically not used anymore and should probably go: it was a 
class to register dynamic properties and methods to the plasmoid object. 
unfortunately there is no way to do it in qml anymore, so plasmoid will have a 
static number of properties/methods, can onlt be 1:1 to the exported stuff of 
AppletInterface
* DeclarativeappletScript and AppletInterface:
I tought for approximately 0.22 seconds about merging those two, but would be 
a quite bad idea, since we need anyways a class that is a graphical object, so
DeclarativeappletScript becomes simply what instantiates AppletScript and not 
much else.
AppletScript becomes a QQuickItem (it is already in master) and is the one 
that actually instantiates the qml part of the plasmoid. if the qml object 
instantiation is moved all there means that will be quite easy to restore the 
behavior of popupapplet, just it loading a piece of qml from the Corona 
package that provides ui for the icon and the popup.
so most of the functionality goes from DeclarativeappletScript, apart being 
pretty much a relayer of signals from the applet to the appletinterface.
Cheers,
Marco Martin
    
    
More information about the Plasma-devel
mailing list