Don’t get tempted by the title, only 3 of the QML plasmoids are fairly usable by a user:
Battery monitor:

Lock/logout applet:

Device notifier:

These are one of the outcomes of my post-midterm work. There are of course some edge cases where these plasmoids go haywire, but all in all, they’re pretty much usable (I have started using them myself!).
Another outcome of post-midterm work is the QMenu QML component. I wrote a QMenu for use by task manager applet. I invested much of time in it, making it simple to use in the plasmoids, but was rendered unusable in task manager because plasma intercepts the right-clicks (to show the standard plasmoid config menu) and does not allow the plasmoid to receive the event. So I will have to make a C++/QML plasmoid for the task manager, which I will work on after GSoC’s final evaluation. Here’s the task manager so far:

Here’s something for developers, you can use the QMenu QML bindings as follows:
import org.kde.qtextracomponents 0.1
...
QMenu {
id: menu
QMenuAction {
icon: QIcon("foo")
text: "foo"
onTriggered: {
// do your stuff here
}
}
QMenuAction {
icon: QIcon("bar")
text: "bar"
onTriggered: {
// do your stuff here
}
}
}
...
MouseArea {
onClicked: {
var globalPos = parent.mapToItem(null, x, y);
menu.showMenu(globalPos.x, globalPos.y);
}
}
...
The code is self-explanatory, it constructs a menu with “foo” and “bar” actions, with respective icons, and triggers. I know the popping up of the menu seems to be a dirty little hack, but that’s how it goes for now. This is the thing I spent most time on.
So this is my GSoC work, will continue after the final results are out. My mentor, Marco Martin, helped through a lot of issues during the project, and he’s awesome! GSoC was a great experience for me overall and gave me a great opportunity to get involved with KDE, which I was planning to do since long before GSoC, but never found my way in. But finally, I’m now a proud KDE contributor
Fazer
August 23, 2011 at 11:23 pm
Don’t you think some of the plasmoids are almost unreadable due to the transparency?
Viranch
August 24, 2011 at 2:05 am
I don’t think so, they’re pretty readable. Some of them will mostly be on panels which have blurred background which would make them very much readable.
Ernesto Manriquez Mendoza
August 24, 2011 at 2:46 am
…unless you are blurring a dark background (I love them
) Black text over a near-black background isn’t readable for me. I can switch theme, I know, but, first, you need to move some workarounds with shadows and changing performance conditions that reside in the Air theme upstream. Every theme deserves that.
iang
August 24, 2011 at 5:57 pm
Agree. For me “Screen Brightness” in the first image is barely readable. Texts in the task also not readable. Adding white drop shadow to the text might help, only if it’s done right.
David Edmundson
August 24, 2011 at 3:06 am
They look amazing.
From a personal viewpoint it would be good to have access to QMenu from any QML component, that would be awesome.
I hope you keep up the good work (even after GSOC finishes)
Viranch
August 24, 2011 at 2:27 pm
Qt guys are already working on Desktop Qt Components (http://qt.gitorious.org/qt-components/desktop), which includes QMenu for QML, apart from other components
I also look forward to keep up the work after GSoC
Viranch
August 24, 2011 at 2:30 pm
@ernesto.. Well, the primary task for now is to get them fully functional like the present ones and port as many plasmoids as possible, then if time permits, probably we could go over the UI and other issues.
thehayro
August 24, 2011 at 3:01 pm
Great job. Thanks for the QMenu Binding.
sebas
August 24, 2011 at 4:32 pm
Great work, Viranch
I think in the Battery Plasmoid, the configure power management button is missing though.
Viranch
August 25, 2011 at 2:04 am
Yes, the configure button needs to run the kcmshell4 command, and I’m not yet aware of a way to do it in QML. So that’s pending for now.
g
August 24, 2011 at 5:13 pm
To solve the black text on black background issue, put
PlasmaCore.Theme { id: theme }
in the main item of your main qml file (where of course you have import org.kde.plasma.core 0.1 as PlasmaCore) and set the color of the text items to theme.textColor, e.g.
Text {
id: label
text: “Some text”
color: theme.textColor
}
or use PlasmaWidgets.Label as a text item (but this item is not so flexible as a Text item).
Viranch
August 25, 2011 at 2:07 am
Hey thanks for that! I’ll try that soon.
Harshil!
August 24, 2011 at 8:59 pm
if you are making apps then id advice you to make something that might entirly make life wayy to simple! meet up soon and yeah if you need to make some designs for your interfaces lemme know i can do the frontend.
Viranch
August 25, 2011 at 2:09 am
Oh sure, I was anyway looking for a UI designer. See you when I’m in town
mutlu
August 27, 2011 at 9:33 pm
Excellent job! I am looking forward to playing with this on my machine and to seeing more of you in the KDE community. You rock!