Search This Blog

Friday, December 30, 2011

Wireless sharing with Plasma NM 0.9 (part 3)

Last Christmas I received my usual presents: bugs to solve :-/ Bug #289812 drew my attention because it looks like NetworkManager supports WPA shared connections after all. I do not know since when but that does not matter :-)

This week I pushed some changes to make Plasma NM create WPA shared connections. The changes went to both master and nm09 branches. The instructions to create the connection are the same as I described in my last post about shared connections, just change the security type in the "Wireless Security" tab:


Now the tests. Well, my two notebooks can communicate with each other when both use Gentoo Linux. When my old notebook uses Windows XP it detects the network, tries to connect but the connection times out. The Symbian S60v5 in my cellphone also does almost the same: detects the ad-hoc network, tries to connect, shows an error message about missing feature (although it does not specify which feature) and gives up faster than Windows XP.

Although my notebooks talk to each other I am not sure if the communication is really encrypted. I guess I will have to find another computer to run a wifi sniffer to check it out :-)

New Plasma NM interface

Those who use Plasma NM's master branch have already noticed that I started to push the usability changes. For now the changes are very similar to the ones I announced in my first post about usability changes:



And the screencast:

There are still more changes to come, for example: 1. Increase the height of each item in the network list (maybe two lines per item) to make it easier to tap on touchscreen devices; 2. Add a new item called "Connect to another network" to create new networks instead of using the control module; 3. Move the "<hidden network>" item to "Connect to another network"; 4. Find a new place for the "Enable Networking" checkbox, maybe move it to the control module since it is rarelly used; 5. Find a way to correctly align the elements in the GUI, QML looks much easier in this regard :-/

I saved all the comments I have received about Plasma NM GUI. I just do not have enough time to evaluate all of them, so be patient.

Update 01/01/2012: I had forgotten about a use of the interface list that is important. When you have more than one instance of the same interface (or device) it is difficult to distinguish each connection is associated to each interface. I tried to add a "Show Interfaces" button to toggle the old interface list:



As you can see it is not ready yet and of course if you clock on the "Hide Interfaces" it will look again like the first screenshot in this post. The plasmoid's height is bigger now because of the interface details tab, which is hidden, but takes up the space anyway. I will have to change the implementation to prevent the plasmoid from growing like that.

I also changed the disconnect button to "call-stop" icon, which still does not look that great but I did it for a reason: to make disconnecting easier. The old icon was small and if you do not click exactly on the icon it will show the interface details tab instead of disconnecting. I needed a bigger icon and that one was the best I could find. Actually, Plasma NM really needs new icons everywhere, there are icons that do not fit well, some are just ugly and some are not in standard KDE location. That is one of my long list of things to fix in Plasma NM :-/

Saturday, December 24, 2011

Merry Christmas

In the last weeks I have been working more in Plasma Active (PA) than Plasma NM for obvious reasons. This week I have fixed several bugs assigned to PA, some of them still needs more developement, but still it has been a productive week.

In Plasma NM front things are slow, which can be seen as a good thing if you take into account the number of reported bugs is very low these weeks. Or I am doing a good job at fixing bugs or everybody is dropping Plasma NM, I hope it is the former :-) I have fixed most the of Krazy2 issues, the remaining ones are not solvable and I have not figure how to make Krazy2 ignores them. The issues are in the .kcfg files, which are XML files. The .kcfg files used by Plasma NM include some attributes for dbus configuration that trigger Krazy2 errors. I cannot remove the attributes, so I cannot fix those issues. I have tried extending the .kcfg specification using the tags but it did not work.

Next week everybody in basysKom is going to be on vacation (me too), so I will try to make some work on Plasma NM.

Today is Christmas evening, so merry Christmas everyone.

Sunday, December 11, 2011

New job

Since last November 14 I am working for basysKom. At last a job to work with KDE :-)

I am working in the Contour project, which is part of Plasma Active. One of the things I am working on is a replacement for the shutdown dialog used in KDE. The intention is make it more suitable for touchscreen devices, like the ones that Plasma Active is target to. The current result is this:



Ok, I admit we need to improve this. Well, the fact it has only three big buttons is intentional, the less buttons the less problems to use and big buttons are easier to press. The implementation is in branch ksmserver/qml-shutdowndlg of git://anongit.kde.org/kde-workspace and it is made partially in C++ and partially in QML. This mini-project is being a good way to learn QML, maybe in the (not near)  future I can use what I have learnt in Plasma NM.

To implement that simpler dialog I did not have many problems. On the other hand the replacement for the current dialog has been giving me some headaches to implement all its look-and-feel, specially the button's context menu. It's  not that difficult to implement static context menu in QML, but adding items dynamically is more difficult. Another problem in the current implemenation is the lack of tab order and some other keyboard for features, such as default widget when pressing the ENTER key and label's accelerators. I have not found how to do use those features in QML, maybe because QML is target to thouchscreen and not keyboard use.

This weekend I have finished to implement all features except the keybord features:

oxygen

And it works with other Plasma themes:

Air

Androbit

Elegance

And here the button's context menus (notice the small triangle on the buttons):







If you want to try it you can do it in KDE SC 4.7 too. You need to compile plasmacomponents from kde-runtime master first:

git clone git://anongit.kde.org/kde-runtime
mkdir kde-runtime/build
cd kde-runtime/build
cmake -DCMAKE_INSTALL_PREFIX=..
cd plasma/declarativeimports
make && make install


Then you need to compile the branch mentioned earlier:

git clone git://anongit.kde.org/kde-workspace
cd kde-workspace
git checkout ksmserver/qml-shutdowndlg
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
cd ksmserver
make && make install

Update 12/Dec/2012: some people asked how the dialog looks like with compositing disabled. Here it is:


Wednesday, December 7, 2011

New names for libmm-qt and libnm-qt

I am in the process of moving the Qt bindings for ModemManager and NetworkManager to freedesktop.org. The next step for that is moving them to kdereview, which I asked to do last week.

The kdereview aim is allow other KDE developers to review the source code and suggest changes. One of the changes suggested is to use more descriptive names, so libmm-qt is now called QtModemManager and libnm-qt is now called QtNetworkManager. I chose those names because they follow Qt's library name convention. I have just commited the changes to QtModemManager, QtNetworkManager and networkmanagement (only master branch) repositories.

If everything does well, the next step is move QtModemManager and QtNetworkManager to extragear and from there to freedesktop.org.

To enter extragear I had to fix Krazy2 issues in QtModemManager and QtNetworkManager first. I also tested networkmanagement repository and it has lots of issues to solve, so for the time being I am fixing those issues as well.