KAcceleratorManager is broken wrt QDockWidget

Friedrich W. H. Kossebau kossebau at kde.org
Wed Dec 31 01:32:51 GMT 2008


Hi,

who is experienced with KAcceleratorManager & friends? I think I have found a 
problem with regard to QDockWidgets:

The title of a QDockWidget appears in up to three places:
1) title bar
2) tab bar title
3) toggle action menu entry

A) endless loop due to automatically reset texts
Currently KAcceleratorManager gives all three different accelerators - but as 
on a title change the QDockWidget updates it's toggle action and also the tab 
title, this leads to an endless loop, if AutoCheckAccelerators=true (see 
below).
Can be even seen by executing "QT_FLUSH_PAINT=1 okteta" and stacking two or 
more tool views onto each other: the QDockWidget tabbar will now flash all 
the time. Does not block the program, but steals cpu time also without 
QT_FLUSH_PAINT set, up to 50 % if tools are visible.

B) Tab vs titlebar
If a tabbed QDockWidget is visible, both it's title bar and the tab are shown, 
including their shortcut.
Should it be the same? Should it be different?
Should one shortcut be omitted? Which one?
How to have consistency with untabbed QDockWidget, which always show their 
title bar including the focus shortcut?

C) Accelerator also with title of floating widgets
The title bar also receives a accelerator if a the dock widget is undocked, 
i.e. floating. I do not think this is expected.

How to solve all of this? I have no real idea (at least at 2.30 in the night), 
so no patch.

But at least I learned about Dr. Klash:
Edit your kdeglobals (`kde-config --localprefix`share/config/kdeglobals) and 
check your own program with adding a section
	[Development]
	CheckAccelerators=F12
	# default true
	AutoCheckAccelerators=false
	#default false
	AlwaysShowCheckAccelerators=false
See 
http://techbase.kde.org/Development/Tools#Internationalization_.28i18n.29_Tools

Cheers
Friedrich
-- 
Okteta - KDE 4 Hex Editor - http://utils.kde.org/projects/okteta




More information about the kde-core-devel mailing list