RSS

GSoC Update 4: QML Plasmoids (almost) ready to use!

23 Aug

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 ;-)

 
15 Comments

Posted by on August 23, 2011 in gsoc, kde

 

Tags: , , , , ,

15 Responses to GSoC Update 4: QML Plasmoids (almost) ready to use!

  1. 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.

           
  2. 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)

     
  3. 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.

     
  4. thehayro

    August 24, 2011 at 3:01 pm

    Great job. Thanks for the QMenu Binding.

     
  5. 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.

       
  6. 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.

       
  7. 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 ;)

       
  8. 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!

     

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 86 other followers