Changing my mind: reverting my menubar, toolbars and statusbar changes
agateau at kde.org
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
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 lxr.kde.org 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