KF5's KActionMenu which is based on QWidgetAction can, to my understanding, only be added to a single menu at a time on OS X. Adding it to multiple menus leads to repeated errors being printed: ``` void QCocoaMenu::insertNative(QCocoaMenuItem *, QCocoaMenuItem *) Menu item "Set &Encoding" is already in menu "View" , remove it from the other menu first before inserting into "Untitled" void QCocoaMenu::insertNative(QCocoaMenuItem *, QCocoaMenuItem *) Menu item "Switch Profile" is already in menu "Settings" , remove it from the other menu first before inserting into "Untitled" void QCocoaMenu::insertNative(QCocoaMenuItem *, QCocoaMenuItem *) Menu item "Set &Encoding" is already in menu "View" after item "" , remove it from the other menu first before inserting into "View" void QCocoaMenu::insertNative(QCocoaMenuItem *, QCocoaMenuItem *) Menu item "Switch Profile" is already in menu "Settings" after item "Manage Profiles..." , remove it from the other menu first before inserting into "Settings" void QCocoaMenu::insertNative(QCocoaMenuItem *, QCocoaMenuItem *) Menu item "Set &Encoding" is already in menu "View" after item "" , remove it from the other menu first before inserting into "View" void QCocoaMenu::insertNative(QCocoaMenuItem *, QCocoaMenuItem *) Menu item "Switch Profile" is already in menu "Settings" after item "Manage Profiles..." , remove it from the other menu first before inserting into "Settings" ``` (the errors are more informative thanks to a local patch) and can apparently also lead to crashing (here on exit): ``` Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x000007fe6884d0ba VM Regions Near 0x7fe6884d0ba: CG backing stores 00000001cba61000-00000001cba8b000 [ 168K] rw-/rw- SM=SHM --> MALLOC_TINY 00007fe688400000-00007fe688600000 [ 2048K] rw-/rwx SM=PRV Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 org.qt-project.QtCore 0x000000010402a814 QObject::property(char const*) const + 36 (qobject.cpp:3876) 1 libqcocoa.dylib 0x0000000108c9e31a QCocoaMenuItem::~QCocoaMenuItem() + 58 (qcocoamenuitem.mm:109) 2 libqcocoa.dylib 0x0000000108c9e4ce QCocoaMenuItem::~QCocoaMenuItem() + 14 (qcocoamenuitem.mm:106) 3 org.qt-project.QtWidgets 0x000000010309b9bd QMenu::actionEvent(QActionEvent*) + 749 (qmenu.cpp:3224) 4 org.qt-project.QtWidgets 0x0000000102f673d0 QWidget::event(QEvent*) + 1232 (qwidget.cpp:9044) 5 org.qt-project.QtWidgets 0x0000000103099bdc QMenu::event(QEvent*) + 1164 (qmenu.cpp:2678) 6 org.qt-project.QtWidgets 0x0000000102f2953b QApplicationPrivate::notify_helper(QObject*, QEvent*) + 251 (qapplication.cpp:3716) 7 org.qt-project.QtWidgets 0x0000000102f2c8f4 QApplication::notify(QObject*, QEvent*) + 8212 (qapplication.cpp:3681) 8 org.qt-project.QtCore 0x0000000103ff9433 QCoreApplication::notifyInternal(QObject*, QEvent*) + 115 (qthread_p.h:291) 9 org.qt-project.QtWidgets 0x0000000102f5b2ed QWidget::removeAction(QAction*) + 125 (qcoreapplication.h:224) 10 org.qt-project.QtWidgets 0x0000000102f1f711 QAction::~QAction() + 97 (qaction.cpp:566) 11 org.qt-project.QtWidgets 0x0000000102f7016c QWidgetAction::~QWidgetAction() + 444 (qwidgetaction.cpp:122) 12 libKF5WidgetsAddons.5.dylib 0x0000000102cbf353 KActionMenu::~KActionMenu() + 67 (kactionmenu.cpp:77) 13 org.qt-project.QtCore 0x0000000104021d75 QObjectPrivate::deleteChildren() + 245 (qobject.cpp:1943) 14 org.qt-project.QtCore 0x0000000104021b40 QObject::~QObject() + 1792 (qobject.cpp:1027) 15 libkonsoleprivate.15.dylib 0x00000001017d13c8 Konsole::ViewProperties::~ViewProperties() + 104 (ViewProperties.cpp:37) 16 libkonsoleprivate.15.dylib 0x00000001017a1f16 Konsole::SessionController::~SessionController() + 614 (SessionController.cpp:218) 17 libkonsoleprivate.15.dylib 0x00000001017a1f5e Konsole::SessionController::~SessionController() + 14 (SessionController.cpp:209) 18 org.qt-project.QtCore 0x0000000104021d75 QObjectPrivate::deleteChildren() + 245 (qobject.cpp:1943) 19 org.qt-project.QtCore 0x0000000104021b40 QObject::~QObject() + 1792 (qobject.cpp:1027) 20 libkonsoleprivate.15.dylib 0x00000001017ca788 Konsole::ViewManager::~ViewManager() + 200 (ViewManager.cpp:103) 21 libkonsoleprivate.15.dylib 0x00000001017ca7ae Konsole::ViewManager::~ViewManager() + 14 (ViewManager.cpp:102) 22 org.qt-project.QtCore 0x0000000104021d75 QObjectPrivate::deleteChildren() + 245 (qobject.cpp:1943) 23 org.qt-project.QtWidgets 0x0000000102f56ee1 QWidget::~QWidget() + 1441 (qwidget.cpp:1658) 24 libKF5XmlGui.5.dylib 0x000000010200471a KMainWindow::~KMainWindow() + 218 (kmainwindow.cpp:362) 25 libkdeinit5_konsole.dylib 0x00000001016fb41b Konsole::MainWindow::~MainWindow() + 107 (MainWindow.h:57) 26 org.qt-project.QtCore 0x0000000104022748 QObject::event(QEvent*) + 776 (qobject.cpp:4455) 27 org.qt-project.QtWidgets 0x0000000102f67d26 QWidget::event(QEvent*) + 3622 (qwidget.cpp:9105) 28 org.qt-project.QtWidgets 0x000000010306f45f QMainWindow::event(QEvent*) + 911 (qmainwindow.cpp:1495) 29 libKF5XmlGui.5.dylib 0x0000000102006810 KMainWindow::event(QEvent*) + 624 (kmainwindow.cpp:829) 30 libKF5XmlGui.5.dylib 0x000000010203e398 KXmlGuiWindow::event(QEvent*) + 24 (kxmlguiwindow.cpp:118) 31 org.qt-project.QtWidgets 0x0000000102f2953b QApplicationPrivate::notify_helper(QObject*, QEvent*) + 251 (qapplication.cpp:3716) 32 org.qt-project.QtWidgets 0x0000000102f2c8f4 QApplication::notify(QObject*, QEvent*) + 8212 (qapplication.cpp:3681) 33 org.qt-project.QtCore 0x0000000103ffa0db QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 971 (qthread_p.h:291) 34 org.qt-project.QtCore 0x0000000103ff9a2c QCoreApplication::exec() + 412 (qcoreapplication.cpp:1240) 35 libkdeinit5_konsole.dylib 0x00000001016e893f kdemain + 4143 (main.cpp:125) 36 libdyld.dylib 0x00007fff8e8b05fd start + 1 ``` Reproducible: Always Steps to Reproduce: 1. start konsole5 from a terminal, e.g. `/path/to/konsole.app/Contents/MacOS/konsole` (kate5 is similarly affected) 2. observe the errors being printed 3. quit using the menu Actual Results: An "in-window" menubar is shown IN ADDITION TO a Mac-style toplevel menubar. Errors are printed each time an attempt is made to (re)generate the menu. The application crashes on exit most of the time but not always (notably not when typing `exit` in the last active shell). Expected Results: No error messages and no crashing. And either a toplevel, Mac-style menubar or one in the window, not both. I would love to know why a global menubar is shown too, and where the choice is made what items from the KActionCollection() are added to the context menu instead of only to the menubar. I would propose to add both the "Switch Profile" and the "Set Encoding" actions to the context menu only. NB: the "Edit Current Profile" action is not affected, which supports the notion that only objects derived from QWidgetAction are concerned by this issue.
Dear Bug Submitter, This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond. Thank you for helping us make KDE software even better for everyone!
Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone!
This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging Thank you for helping us make KDE software even better for everyone!