Changing my mind: reverting my menubar, toolbars and statusbar changes

Aurélien Gâteau agateau at
Sat Nov 6 14:31:45 GMT 2010


I have been quite busy trying to convince everyone actions to toggle UI
items such as menubar, toolbars, sidebars or statusbar should be labeled
"Show/hide Foo" depending on the visibility of Foo rather than
implemented as a checkable "[ ] Show Foo" item.

Having started to work on converting applications, I came to the
conclusion that:

1. It is a lot of work to fix this in all KDE SC (not even taking into
account applications outside the SC) for little gain.

2. The gain is actually not that obvious: I find myself having a harder
time to read some menus after the port. The fact that the "Show" and
"Hide" words have different widths makes it more difficult to parse a
menu which contains a series of "Show <ui item>" elements because the
"<ui item>" part of the labels are not aligned on the same column anymore.

With this in mind, I believe it is better to revert my changes. I am
sorry for wasting other people valuable time, but now that I realize it
is not so much of a good idea, I think it is better to acknowledge it
and fix it before we freeze kdelibs API.

# The "Fix my mess" plan

I would like to revert r1186566, r1186567 and r1192393:

The last one can be reverted without any consequences as it's only internal.

The first two introduce two methods: KStandardAction::showHideMenubar()
and showHideStatusbar(), and deprecate two others:
KStandardAction::showMenubar() and showStatusbar().

A quick look at tells me at least three applications
(Dolphin, Konqueror and Konsole) have already switched to these new
methods. I think the best way to deal with those changes is to:

1. Next Monday (11/8): Swap the deprecated flags: Remove them from the
show*() methods and add them to the showHide*() methods.

2. Revert the use of the showHide*() methods in Dolphin, Konqueror and

3. Monday after (11/15): Remove the showHide*() methods.

This should reduce the risk of build failures since any application I
missed which switched to showHide*() methods will continue to build but
get warnings for one week. Does this make sense?

# Future plan

In order to get something positive out of this story, I am going to go
through main KDE SC applications and fix a quite common mistake related
to these actions: Applications which have "[ ] Show <ui item>" menu
items should not change them  to "[x] Hide <ui item>" when it is
toggled. This is clearly wrong.


More information about the kde-core-devel mailing list