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!

segunda-feira, 30 de abril de 2012

LaKademy - Days of code and fun.

Hi everyone,

I'm posting directly from Porto Alegre, Brazil, where it is happening the LaKademy 2012. I came this year as a newcomer (passed in GSoC this year), and expect to keep working hard to help the community and attend to other KDE events too.

I arrived in Porto Alegre on Thursday (April 26th) at night and only had time to rest a little to start working hard on Friday (inauguration day of the event). I did not know anyone that came here (except  Lamarque (my GSoC mentor), so, it is a good opportunity to know everybody and integrate myself in the Latin America KDE community.

My GSoC project is to develop a new plasmoid for Plasma NetworkManagement using QML (link). So, on Friday (April 27th) I talked to Lamarque about the best way to implement the new connections List Model to show wireless networks in the area. After that we defined the architecture that fits better to our purposes and I started implementing it. So, on Friday I could create the first part of the code, but, couldn't see anything on the screen yet. At night, as usual, everyone went to drink a beer somewhere near the hostel. These times are really fun and we laugh a lot.

First day of LaKademy
On the second day, we went to FLISOL, had some meetings there and they set up a room for us, so, we could work from there too. By the end of that day, I could see some connections inside my QML Plasmoid, so, I was able to see the implementation working on the screen. One thing that I really like about events like LaKademy is that everyone is always willing to help you with problems that you might have, this is very useful and made me see how important events like these are.

LaKademy room at FLISOL

The third day started with a meeting about KDE Promo, the meeting was very good and some things were decided to be done to help promote KDE in all Latin America. Besides this meeting, I implemented a way to show all wireless connections on the Plasmoid Popup, and update their signal strength (my main goal for this lakademy! :) ). However, I was still facing a segmentation fault error, that I decided to solve on the next day.

Promo meeting in LaKademy

Today is my last day here T LaKademy and I finally fixed the segmentation fault in my code, so, I am now showing all the wireless network connections near my computer, on the QML Plasmoid Popup.  The Popup is also updated when a network appears or disappears. The screen of my current implementation is showed below:

QML screen for Plasma NM Popup
I intend now to concentrate my efforts in showing other interface connection types that Plasma NM supports, so, I can advance my work for summer of code and anticipate some problems that I might encounter.

I really enjoyed participating of LaKademy and wonder to participate of other events that community will provide. Thanks to everyone.

LaKademy participants

That's all. I hope to post soon here. Bye!