Bug 218485

Summary: Configure a keyboard shortcut by right clicking on a menu item does not work
Product: [Unmaintained] kdelibs Reporter: Christos Gourdoupis <xrigou>
Component: kdeuiAssignee: kdelibs bugs <kdelibs-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: cedric.laczny, cfeck, luke-jr+kdebugs, peter.penz19
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Christos Gourdoupis 2009-12-13 11:29:56 UTC
Application: dolphin (1.3.80)
KDE Platform Version: 4.3.81 (KDE 4.3.81 (KDE 4.4 >= 20091204)) "release 2"
Qt Version: 4.6.0
Operating System: Linux 2.6.31.5-0.1-desktop x86_64
Distribution: "openSUSE 11.2 (x86_64)"

-- Information about the crash:
Any menu, any configuration. Konqueror does it too, in all modes.


The crash can be reproduced everytime.

 -- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault
[KCrash Handler]
#5  QAction::data (this=0x0) at kernel/qaction.cpp:1193
#6  0x00007fc4cabd124f in KMenu::contextMenuFocusAction () at /usr/src/debug/kdelibs-4.3.81svn1058695/kdeui/widgets/kmenu.cpp:559
#7  0x00007fc4cac0c0c7 in KDEPrivate::KMenuMenuHandler::slotSetShortcut (this=0x810f40) at /usr/src/debug/kdelibs-4.3.81svn1058695/kdeui/xmlgui/kmenumenuhandler_p.cpp:98
#8  0x00007fc4cac0cf07 in KDEPrivate::KMenuMenuHandler::qt_metacall (this=0x810f40, _c=InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffe95c4d80)
    at /usr/src/debug/kdelibs-4.3.81svn1058695/build/kdeui/kmenumenuhandler_p.moc:76
#9  0x00007fc4c9eca46f in QMetaObject::activate (sender=0xb9eba0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x1) at kernel/qobject.cpp:3275
#10 0x00007fc4c9299562 in QAction::triggered (this=0x7fffe95c4ac0, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#11 0x00007fc4c929b5db in QAction::activate (this=0xb9eba0, event=<value optimized out>) at kernel/qaction.cpp:1251
#12 0x00007fc4c96b8a8d in QMenuPrivate::activateCausedStack (this=<value optimized out>, causedStack=..., action=0xb9eba0, action_e=Trigger, self=true) at widgets/qmenu.cpp:1014
#13 0x00007fc4c96be5aa in QMenuPrivate::activateAction (this=0xb73a40, action=0xb9eba0, action_e=Trigger, self=<value optimized out>) at widgets/qmenu.cpp:1106
#14 0x00007fc4c92f5868 in QWidget::event (this=0xb65330, event=0x7fffe95c5820) at kernel/qwidget.cpp:7976
#15 0x00007fc4c96c076b in QMenu::event (this=0xb65330, e=0x7fffe95c5820) at widgets/qmenu.cpp:2424
#16 0x00007fc4c929f5bc in QApplicationPrivate::notify_helper (this=0x6abb60, receiver=0xb65330, e=0x7fffe95c5820) at kernel/qapplication.cpp:4253
#17 0x00007fc4c92a63f4 in QApplication::notify (this=0x7fffe95c6520, receiver=0xb65330, e=0x7fffe95c5820) at kernel/qapplication.cpp:3824
#18 0x00007fc4caaf37b6 in KApplication::notify (this=0x7fffe95c6520, receiver=0xb65330, event=0x7fffe95c5820) at /usr/src/debug/kdelibs-4.3.81svn1058695/kdeui/kernel/kapplication.cpp:302
#19 0x00007fc4c9eb770c in QCoreApplication::notifyInternal (this=0x7fffe95c6520, receiver=0xb65330, event=0x7fffe95c5820) at kernel/qcoreapplication.cpp:704
#20 0x00007fc4c92a5566 in sendEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:215
#21 QApplicationPrivate::sendMouseEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qapplication.cpp:2958
#22 0x00007fc4c9324655 in QETWidget::translateMouseEvent (this=0xb65330, event=<value optimized out>) at kernel/qapplication_x11.cpp:4302
#23 0x00007fc4c9322f2a in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fffe95c6140) at kernel/qapplication_x11.cpp:3501
#24 0x00007fc4c934d122 in x11EventSourceDispatch (s=0x6b7570, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#25 0x00007fc4c4a3cdde in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#26 0x00007fc4c4a407a8 in ?? () from /usr/lib64/libglib-2.0.so.0
#27 0x00007fc4c4a408d0 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#28 0x00007fc4c9ee0c23 in QEventDispatcherGlib::processEvents (this=0x67df00, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:407
#29 0x00007fc4c934cd0e in QGuiEventDispatcherGlib::processEvents (this=0x7fffe95c4ac0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#30 0x00007fc4c9eb6022 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#31 0x00007fc4c9eb63fc in QEventLoop::exec (this=0x7fffe95c6470, flags=) at kernel/qeventloop.cpp:201
#32 0x00007fc4c9eba14b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#33 0x0000000000435d65 in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kdebase-4.3.81svn1058695/apps/dolphin/src/main.cpp:94

Reported using DrKonqi
Comment 1 Christoph Feck 2010-01-04 14:10:45 UTC
SVN commit 1069933 by cfeck:

Fix crash with context menus on KMenu

CCBUG: 218485
CCBUG: 221123

This only fixes the crash, but the invoked action still
does not work. There seems to be a Qt 4.6 regression.



 M  +3 -0      kmenu.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1069933
Comment 2 Christoph Feck 2010-01-05 17:13:04 UTC
SVN commit 1070420 by cfeck:

Fix context menus on KMenu

QMenu::activeAction() is already 0 when the action is emitted.

BUG: 218485
BUG: 221123


 M  +6 -4      kmenu.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1070420
Comment 3 Christos Gourdoupis 2010-01-09 21:31:51 UTC
It is *almost* fixed. We can define shortcuts now.
It doesn't work for View->Panels though.
Which is how I run into this bug in the first place :)
Comment 4 Christoph Feck 2010-01-11 14:15:53 UTC
Peter, what could prevent configuring shortcuts for View->Panels actions from working? Other checkable actions work.
Comment 5 Peter Penz 2010-01-11 14:55:25 UTC
SVN commit 1073053 by ppenz:

Fixed issue that the keyboard shortcuts for the docks places, folders, information and terminal could not be changed.

BUG: 218485

 M  +13 -8     dolphinmainwindow.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1073053
Comment 6 Peter Penz 2010-01-11 14:56:35 UTC
SVN commit 1073055 by ppenz:

Backport of SVN commit SVN 1073053: Fixed issue that the keyboard shortcuts for the docks places, folders, information and terminal could not be changed.

CCBUG: 218485

 M  +13 -8     dolphinmainwindow.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1073055
Comment 7 Peter Penz 2010-01-11 14:58:14 UTC
@Christoph: The QActions from QDock had been used directly, but they are not visible for the shortcuts dialog (an instance of KAction is required). I used now KActions that delegate the triggering to the corresponding QActions...
Comment 8 Christoph Feck 2010-02-01 00:29:58 UTC
Thanks Peter. I doubt it will ever be possible to support plain QAction in the shortcut dialog:

    // This code doesn't allow editing of QAction. It can not distinguish
    // between default and active shortcuts. This breaks many assumptions the
    // editor makes.

I am still closing this as fixed; if there is really a need to support QAction in the dialog, it would have to be filed as a separate request.
Comment 9 Eike Hein 2010-04-17 19:06:47 UTC
*** Bug 234589 has been marked as a duplicate of this bug. ***
Comment 10 Frank Reininghaus 2010-04-27 16:01:18 UTC
*** Bug 235549 has been marked as a duplicate of this bug. ***