sábado, 4 de agosto de 2012

Status Report - QML Plasmoid for Plasma NM

Hello everyone,

A long time has passed since the last post I created here (sorry about that). I have been very busy working on my GSoC proposal and intend to show the results I got so far.

As you could see in my previous post, at LaKademy I could start the creation of the connections List Model to show wireless connections. After talking to Lamarque we decided to create a plasmoid with the same features that exist in the C++ one. So I improved my List Model to support other kinds of connections too (Wired ethernet and VPN e.g.). It's also possible to connect to a network, disconnect and enable or disable the wireless interface just like it can be done in the C++ popup. An example of how the connections tab is organized can be seen below:

Connections List Model in QML
Another thing that I did, was to filter the Normal Connections from the VPN and Shared ones. Every time a user selects a different tab in the plasmoid, the connections' list will change and show different ones corresponding to the tab that it was selected. The next illustration shows what I said before:
Connections shown in each tab.
Besides the Connections List Model I also created the Interfaces List Model, in other words, the list widget that will show what interfaces are available in the machine or not. As it's possible to see inside the C++ plasmoid, when an interface item gets hovered in by the mouse cursor, the connection items that correspond to the interface item changes their states too. Furthermore, each time an interface item gets clicked, the interface details widget for the selected interface appears. An example of the interfaces List Model can be seen below:
Interface and Connection List Widgets
As I said before, when an interface item gets clicked, the interface details widget appears, so, I ported it to QML too, the best thing to do was to embed the C++ object inside the QML Plasmoid, by the end, the result was pretty good and it's possible to see the traffic plotter inside the plasmoid to the interface or connection (if it was connected before) that was clicked. 

So, today, we have a QML Plasmoid for Plasma NM with almost the same features of the C++ one (I didn't show, but the Mobile Broadbad interface is also treated). To compare with what we have today, there you go two screenshots of the C++ Plasmoid for Plasma NM:

C++ Plasmoid for Plasma NM
By this last week before the pencils down date I intend to improve some GUI features, like checking relative positioning in QML, find some bugs to fix (and fix them, of course) and create the "Show %1 more connections" widget, it's present inside the C++ plasmoid but I didn't create it in the QML version yet.

I intend to post more frequently here, so, I will post soon to show the improved QML plasmoid and some things about all the experience too.

That's all for today. Thanks for reading! :) Bye!