I can't get my QML plasmoid to work!
Farhad Hedayati-Fard
hf.farhad at gmail.com
Mon Mar 21 08:21:46 CET 2011
Hi!
I've written a QML plasmoid to test the translator dataengine
(plasma/farhad_hf/translator branch of kdeplasma-addons), but I can't get it
to work, code:
import Qt 4.7
import org.kde.plasma.graphicswidgets 0.1 as PlasmaWidgets
import org.kde.plasma.core 0.1 as PlasmaCore
import org.kde.plasma.graphicslayouts 4.7 as GraphicsLayouts
Item {
id: mainwindow
// property string provider
// property string from
// property string to
Component.onCompleted: {
plasmoid.addEventListener('ConfigChanged', configChanged);
}
// function configChanged()
// {
// provider = plasmoid.readConfig("provider");
// from = plasmoid.readConfig("fromLanguage");
// to = plasmoid.readConfig("toLanguage");
// }
function printData() {
for ( i in source.data.keys ) {
print ("K: "+i);
}
}
PlasmaCore.DataSource {
id: source
engine: "translator"
onDataChanged: {
plasmoid.busy = false
printData()
}
}
PlasmaCore.DataModel {
id: dataModel
dataSource: source
}
PlasmaCore.Theme {
id: theme
}
Column {
width: mainwindow.width
height: mainwindow.height
Row {
id: searchWidget
width: parent.width
PlasmaWidgets.LineEdit {
id: searchBox
clearButtonShown: true
width: parent.width
onTextEdited: timer.running = true
}
}
Flickable {
clip: true
Text {
id: translation
wrapMode: Text.Wrap
width: parent.parent.width
text: source.data["googletranslate" + ":" + "en" + ":" + "fa" + ":" +
searchBox.text]["text"]
}
}
}
Timer {
id: timer
running: false
repeat: false
interval: 500
onTriggered: {
plasmoid.busy = true
source.connectedSources = ["googletranslate" + ":" + "en" + ":" + "fa" +
":" + searchBox.text]
}
}
}
I get this error in the console output:
TypeError: Result of expression 'source.data["googletranslate" + ":" + "en" +
":" + "fa" + ":" + searchBox.text]' [undefined] is not an object.
If I remove the `["text"]' from line 89, I get this error:
Unable to assign [undefined] to QString text
and the plasmoid remains in the busy mode even after the dataengine returns
the data (according to the console output!)...
you can download the googletranslate provider plugin from
http://www.digidesk.ir/ggt.tgz
and the plasmoid:
http://www.digidesk.ir/translator.plasmoid
Thanks in advance :)
Farhad Hedayati Fard
More information about the Plasma-devel
mailing list