Shortcuts / konsolepart conflict

Michael Jansen kde at
Sat Mar 29 18:03:22 GMT 2008

Am Samstag 29 März 2008 11:18:31 schrieb Anders Lund:
> On lørdag 29 Marts 2008, Eduardo Robles Elvira wrote:
> > Some time ago David Faure told me that this should be fixed with Qt 4.4
> > because it has support for WidgetWithChildrenShortcut. I'm using Qt 4.4
> > with trunk and it's not fixed though, so the fix is not automatic or it's
> > not working. I was also told that all this have to do with KAccel not
> > being in use in KDE anymore.
> AFAIK the new kded shortcut module prevents it from working. But I may be
> wrong, which is one of the reasons for my mail :)

I'm pretty sure that's not the case.

But i think we can work this out. There are 4 contexts for shortcuts. ( see 
docu of Qt::ShortcutContext )

And as i could see from the code all shortcuts were changed to 
Qt::WidgetWithChildrenShortcut. But i can't figure out why? The description 
states clearly that it only prevents a shortcut to be valid over the 
boundaries of top level widgets. In kate i can't see where top level widgets 
should be involved. Because i see the term top level widget in the qt 
documentation but no explanation i can only guess what a top level widgets is. 
widgets with th either dialog, window or popup type. Some others from 
Qt::WindowFlags are not valid for the case here.  It's explicitly stated that 
popups don't count as top level widgets for the shortcut context so we are 
left with two. But none of them apply here.

The kate konsole is just a widget because kparts are just widgets and a child 
of the mainwindow. So setting this shortcut context should makes no 
difference. For the fun of it go to kateconsole.cpp line 181 and insert  
m_part->widget()->setWindowFlags( Qt::Window ); . The konsole will be a 
standalone window and the shortcut work as expected.

I'm pretty sure this is not solvable with some Qt Flags.


Michael Jansen
Available for contract work ( Development / Configuration Management )

More information about the kde-core-devel mailing list