frameworkintegration/0008-Implement-SystemTrayMenuItem-setMenu-correctly.patch

50 lines
1.8 KiB
Diff

From a09034c57ee00e7c16c2db4fd43f1993ee2e686d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?= <lukas@kde.org>
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<SystemTrayMenu *>(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