Archive for the ‘KDE’ Category

designing good user interfaces (2 – Removing Useless Clutter)

Monday, November 2nd, 2009
Useless clutter

Useless clutter

Less clutter

Less clutter

The groupbox in the first UI is completely useless and it only adds more clutter for free, so it has been removed in the second UI. What we get is a less cluttered UI and every widget is grouped by the tabwidget.

designing good user interfaces (1 – Label Alignment)

Saturday, October 31st, 2009
Bad Label Alignment

Bad Label Alignment

Good Label Alignment

Good Label Alignment

The first UI has a wrong label alignment (KDE 3.x alignment), while the second UI has the right label alignment (KDE 4.x alignment).
HIG on techbase

Label placement in forms

designing good user interfaces (0)

Thursday, October 29th, 2009
Example of a bad ui layout.

Example of a bad ui layout.

Example of a good ui layout.

Example of a good ui layout.

The first UI (the bad one) has a complex grid layout which is cluttered and confused, while the second UI has a better layout which looks like a book page that can be read easily from left to right and from top to bottom.
The second UI uses more vertical space, but we must not forget that one of our primary goals  is to provide usable UIs.

Moving things to the right place

Saturday, August 29th, 2009

Yesterday I’ve moved desktop theme configuration from Desktop Settings to System Settings style module. Now Desktop Settings dialog looks less cluttered.

New system settings/style desktop theme configuration tab

New system settings/style desktop theme configuration tab

Now I’m still working on Desktop Settings dialog and I will continue to improve it.

Next step is to add categories to wallpaper settings.

tokamak 3 (day 0) :)

Saturday, August 29th, 2009

It has been a long time since my last update…

I’ve been away for a long time due to several reasons (including school exams) but now I’m here in Swiss.

Now I’m in an amazing place with stunning views and fresh. I will post more things about this tokamak later.

KFormat and DeviceKit-disks

Wednesday, May 13th, 2009

KFormat

KFormat


I waited for a long time to play with DeviceKit-disks (DeviceKit-disks is a rather interesting daemon that allows developers to not clutter their code with format related stuff) and now this week I had time to start working on KFormat. The idea behind KFormat is to replace KFloppy then the next step will be to implement KDiskManager and a KDE disk management library.
The first revision of KFormat is now under development in KDE svn and I will blog when I’ll have more interesting updates.

Icon Time: High Definition Oxygen and Nuvola

Saturday, February 14th, 2009

High Definition Oxygen

Without any doubt Tokamak II was a great meeting, as it allowed me to work on several things. Two of these things are High Definition Oxygen icons and Nuvola icons.

High Definition Oxygen is a folder that contains 256×256 icons for mimetypes and places and the really good news is that now Oxygen iconset uses less space on disk than before: we don’t install SVGs anymore (so we can save about 60 mb) and we can use a piece of that free space for the new high definition icons that are incredibly small (they requires only a couple of mb).

Something that I really liked about Oxygen is that it is already ready to render at big sizes (Oxygen artists have done a great work).

I have also great news for Nuvola icon set fans: Nuvola is back and it will be part of KDE 4.3 kdeartwork module :)
During tokamak I spent several hours renaming and fixing Nuvola icon names and now it can be used also on KDE 4 :)

Tokamak (Day 0 + 1)

Saturday, February 7th, 2009

Don’t confuse users: Don’t say “applet”.

Tuesday, February 3rd, 2009

Use the word “applet” only in development contexts (when you are talking about Plasma::Applet), in any other case use the word “widget”.

10 rules for a plasma widgets developer

Friday, January 30th, 2009
  1. Don’t call updateGeometry() during a size constraintsEvent and don’t call resize.
    If you want to keep the same aspect ratio you may be interested in Applet::setAspectRatioMode( ).
  2. If you want to write a new clock widget, you should inherit from libplasmaclock ClockApplet.
  3. Don’t do custom things: use default plasma methods and widgets when possible.
    Some useful methods are: Applet::setBusy( ) if your applet is busy, Applet::setConfigurationRequired( ) if user needs to configure the widget, etc…
    Some useful widgets are: Plasma::CheckBox, Plasma::ComboBox, Plasma::LineEdit, Plasma::PushButton, Plasma::RadioButton, etc…
  4. Don’t reimplement Applet::showConfigurationInterface, reimplement Applet::createConfigurationInterface instead.

    void MyApplet:createConfigurationInterface(KConfigDialog *parent)
    {
    QWidget *widget = new QWidget();
    ui.setupUi(widget); //ui is your configuration interface
    parent->addPage(widget, i18n("General"), icon());
    connect(parent, SIGNAL(applyClicked()), this, SLOT(configAccepted()));
    connect(parent, SIGNAL(okClicked()), this, SLOT(configAccepted()));
    }
  5. Use Plasma::Animator and fast animations (not slower than 150 milliseconds).
  6. Use a standard background when possible.
  7. Avoid installing custom svg graphics when possible.
  8. Load graphics using Plasma::Svg.
  9. Don’t forget that the theme may change while your widget is running.
  10. paintInterface() might be called before init().