Installing Plasma.Service *.operations file

Aaron J. Seigo aseigo at kde.org
Thu Dec 23 00:40:59 CET 2010


On Wednesday, December 22, 2010, Thomas Olsen wrote:
> Except that it doesn't work until it's installed in
> ~/.kde/share/apps/plasma/services. I thought I had messed up my code but it
> works again after I copied it there.

no, that's quite wrong: packages should never install files outside of 
themselves ...

 bet the Python DataEngine bindings are messed up and don't check for the file 
in the "services" location.

*looks*

yes, that's it. *grumble*

the Javascript bindings have a class called JavaScriptService which does this:

void JavaScriptService::registerOperationsScheme()
{
    if (!m_dataEngine) {
        return;
    }

    const QString path = m_dataEngine.data()->filePath("services", name() + 
".operations");

    if (path.isEmpty()) {
        kDebug() << "Cannot find operations description:" << name() << 
".operations";
        m_dataEngine.clear();
        return;
    }

    QFile file(path);
    setOperationsScheme(&file);
}

since the Service does not know about the DataEngine (and can't, at least not 
in a reliable fasion; it can be told about the DataEngine, but only after its 
too late .. and using the QObject hierarchy is just too error prone and would 
invalidate valid use cases where the DataEngine isn't an ancestor), the 
ScriptEngine needs to provide a service subclass that does as the above.

you may be able to work around that in your Python code by creating a 
Plasma::Service subclass yourself which does the above? it realy does belong 
in the Python ScriptEngine, in any case, but that's beyond my python mojo to 
do :)

-- 
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Qt Development Frameworks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/plasma-devel/attachments/20101222/1c3e7e0c/attachment.sig 


More information about the Plasma-devel mailing list