From a09034c57ee00e7c16c2db4fd43f1993ee2e686d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?= Date: Fri, 30 Jan 2015 00:05:43 +0100 Subject: [PATCH 8/8] Implement SystemTrayMenuItem::setMenu() correctly REVIEW: 122171 --- src/platformtheme/kdeplatformsystemtrayicon.cpp | 5 +++-- src/platformtheme/kdeplatformsystemtrayicon.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/platformtheme/kdeplatformsystemtrayicon.cpp b/src/platformtheme/kdeplatformsystemtrayicon.cpp index d3a1d4fe2f135ea241e97598a2589558656c1099..84dc6c06aa5d076990229edc00b500b26e41258b 100644 --- a/src/platformtheme/kdeplatformsystemtrayicon.cpp +++ b/src/platformtheme/kdeplatformsystemtrayicon.cpp @@ -144,7 +144,6 @@ QMenu *SystemTrayMenu::menu() const SystemTrayMenuItem::SystemTrayMenuItem() : QPlatformMenuItem() , m_tag(0) - , m_menu(Q_NULLPTR) , m_action(new QAction(this)) { connect(m_action, &QAction::triggered, this, &QPlatformMenuItem::activated); @@ -187,7 +186,9 @@ void SystemTrayMenuItem::setIsSeparator(bool isSeparator) void SystemTrayMenuItem::setMenu(QPlatformMenu *menu) { - m_menu = menu; + if (SystemTrayMenu *ourMenu = qobject_cast(menu)) { + m_action->setMenu(ourMenu->menu()); + } } void SystemTrayMenuItem::setRole(QPlatformMenuItem::MenuRole role) diff --git a/src/platformtheme/kdeplatformsystemtrayicon.h b/src/platformtheme/kdeplatformsystemtrayicon.h index 3c1bbf71bc1e730754504a123c7bdfd8e1f19a24..e9e872e39e253b7cfbab6cb58cfbc7272e5046f5 100644 --- a/src/platformtheme/kdeplatformsystemtrayicon.h +++ b/src/platformtheme/kdeplatformsystemtrayicon.h @@ -82,7 +82,6 @@ public: private: quintptr m_tag; - QPlatformMenu *m_menu; QAction *m_action; }; #endif -- 2.2.2