tag:blogger.com,1999:blog-40368402502559641252024-02-07T14:26:51.883-08:00Arthur's BlogArthurhttp://www.blogger.com/profile/05803281394846057485noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-4036840250255964125.post-75228561308796100812012-08-04T22:50:00.002-07:002012-08-04T22:50:31.854-07:00Status Report - QML Plasmoid for Plasma NMHello everyone,<br />
<br />
A long time has passed since the last post I created here (sorry about that). I have been very busy working on my GSoC <a href="http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/arthur_sr/13002">proposal</a> and intend to show the results I got so far.<br />
<br />
As you could see in my <a href="http://arthursribeiro.blogspot.com.br/2012/04/lakademy-days-of-code-and-fun.html">previous post</a>, 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:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGNZwCGLAn9WIzK_uU_CXHSG7gAazMaoOfYDSS65KMzDv8e3Z6vupZl_2Zl90Pvnjp-Qs970cELjnn4f3D-pzJ1ag4P1Lwg2rO9Q2aly5NJ6DDk7bmabXx3HWREO6nFCqcoZ-ATHOLninR/s1600/plasmoid-connections.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="291" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGNZwCGLAn9WIzK_uU_CXHSG7gAazMaoOfYDSS65KMzDv8e3Z6vupZl_2Zl90Pvnjp-Qs970cELjnn4f3D-pzJ1ag4P1Lwg2rO9Q2aly5NJ6DDk7bmabXx3HWREO6nFCqcoZ-ATHOLninR/s320/plasmoid-connections.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Connections List Model in QML</td></tr>
</tbody></table>
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:<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivggGwLlckg_SwyHYL5E-R-TDJqf4GHwiN-UxJoVdXdKTZhw-q76GPy7w9CKq6MfO5IUSWODpMxJTB_hj3jj95IqjZW7nLzvuKe8kq3eQcJE9-FmduHwdHlOGnoYwIcuTz4udfkgwqkFlm/s1600/plasmoid-shared.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="353" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivggGwLlckg_SwyHYL5E-R-TDJqf4GHwiN-UxJoVdXdKTZhw-q76GPy7w9CKq6MfO5IUSWODpMxJTB_hj3jj95IqjZW7nLzvuKe8kq3eQcJE9-FmduHwdHlOGnoYwIcuTz4udfkgwqkFlm/s400/plasmoid-shared.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Connections shown in each tab.</td></tr>
</tbody></table>
<div>
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:</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAVG4Ovcy6bhhUrRLfhOC1-Rj2Uz4q7iv6EY2kp2AXsc6jfppPQGUjd0xJeSSONn83xJAAV35_7pynEH7bINMk4BAaOw8KD3YUeYR5up06O91Kvx6siaZnv1TkDUy2edYbRTS8nujL_rir/s1600/plasmoid-interfaces.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAVG4Ovcy6bhhUrRLfhOC1-Rj2Uz4q7iv6EY2kp2AXsc6jfppPQGUjd0xJeSSONn83xJAAV35_7pynEH7bINMk4BAaOw8KD3YUeYR5up06O91Kvx6siaZnv1TkDUy2edYbRTS8nujL_rir/s320/plasmoid-interfaces.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Interface and Connection List Widgets</td></tr>
</tbody></table>
<div>
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. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_XFYdoFLMwgGvUaziLdKySlNOOEB6cJBoRlB7rhP1aZz39pDCD-BQWF9woOfOouE-aqCJmGVhC6cvixMRDEokB2Es1ideKBPSk9TLWdcudZIcrSyIGONfzqIF0t2TiK3nfOXzWvbydijt/s1600/plasmoid-details.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_XFYdoFLMwgGvUaziLdKySlNOOEB6cJBoRlB7rhP1aZz39pDCD-BQWF9woOfOouE-aqCJmGVhC6cvixMRDEokB2Es1ideKBPSk9TLWdcudZIcrSyIGONfzqIF0t2TiK3nfOXzWvbydijt/s320/plasmoid-details.png" width="320" /></a></div>
<div>
<br />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:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW-f3FO_xPxep1h1FjpuPY3ilTDReRmxhmKXYRsZNTGRTBeEDuJl665wZLWM5IH09fCn5IVmKdEW6hvRQzgXngUXakpI7lvYc1NO_PIU07qhTICcs9aK0MJGJJLgdpU3_M24NN8mg0PsPX/s1600/plasmoid-current.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW-f3FO_xPxep1h1FjpuPY3ilTDReRmxhmKXYRsZNTGRTBeEDuJl665wZLWM5IH09fCn5IVmKdEW6hvRQzgXngUXakpI7lvYc1NO_PIU07qhTICcs9aK0MJGJJLgdpU3_M24NN8mg0PsPX/s320/plasmoid-current.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">C++ Plasmoid for Plasma NM</td></tr>
</tbody></table>
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.<br />
<br />
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.<br />
<br />
That's all for today. Thanks for reading! :) Bye!</div>Arthurhttp://www.blogger.com/profile/05803281394846057485noreply@blogger.com11tag:blogger.com,1999:blog-4036840250255964125.post-57092847427887866222012-04-30T12:56:00.001-07:002012-05-01T20:47:30.405-07:00LaKademy - Days of code and fun.<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Hi everyone,</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
My GSoC project is to develop a new plasmoid for Plasma NetworkManagement using QML (<a href="http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/arthur_sr/13002">link</a>). 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.</div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://farm9.staticflickr.com/8002/7122693689_efda9082d7.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://farm9.staticflickr.com/8002/7122693689_efda9082d7.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">First day of LaKademy</td></tr>
</tbody></table>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://farm8.staticflickr.com/7208/7122723147_db9e85229b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://farm8.staticflickr.com/7208/7122723147_db9e85229b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">LaKademy room at FLISOL</td></tr>
</tbody></table>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://farm8.staticflickr.com/7120/6978245194_857dff4975.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://farm8.staticflickr.com/7120/6978245194_857dff4975.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Promo meeting in LaKademy</td></tr>
</tbody></table>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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:</div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2lqE0Ih1uAGWtAFwIRTQzGg2JjKEdDESltQse_JwDnCzvmPERb-zALphgdv-K8W99kYSd3s9F-b0tgVonCRbUbqHzL0x5E3fiFqZHJ3ZDYOVN_dJnzxGNyk7GbkexuFKqgyTv8cQkuhxq/s1600/print-popup.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2lqE0Ih1uAGWtAFwIRTQzGg2JjKEdDESltQse_JwDnCzvmPERb-zALphgdv-K8W99kYSd3s9F-b0tgVonCRbUbqHzL0x5E3fiFqZHJ3ZDYOVN_dJnzxGNyk7GbkexuFKqgyTv8cQkuhxq/s320/print-popup.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">QML screen for Plasma NM Popup</td></tr>
</tbody></table>
<div style="text-align: justify;">
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.</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
I really enjoyed participating of LaKademy and wonder to participate of other events that community will provide. Thanks to everyone.</div>
</div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://blog.filipesaraiva.info/wp-content/uploads/2012/04/531194_331401383593730_100001716125440_793041_189106717_n.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="http://blog.filipesaraiva.info/wp-content/uploads/2012/04/531194_331401383593730_100001716125440_793041_189106717_n.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">LaKademy participants</td></tr>
</tbody></table>
<div>
<div>
<div style="text-align: justify;">
<br /></div>
</div>
<div>
<div style="text-align: justify;">
That's all. I hope to post soon here. Bye!</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
</div>
</div>Arthurhttp://www.blogger.com/profile/05803281394846057485noreply@blogger.com7