summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2022-07-18 15:10:15 +0200
committerIvan Solovev <ivan.solovev@qt.io>2022-07-21 23:12:15 +0200
commit4b9c738185c771127eb8e7c73868f60bd31f7fce (patch)
tree660a9234fc720a4df24c5e4edb76a99cbe9aeac8 /src/widgets
parent8fed0a6aa66bf2a78d7e00b60b1ff27979873b86 (diff)
QAction: add QT_DEPRECATED_VERSION_6_0 to deprecated methods
And fix all the new warnings. Task-number: QTBUG-104857 Pick-to: 6.4 6.3 6.2 Change-Id: I2a5791f495575d71d2344429aca3363f9922e31b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/widgets/qmenu.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp
index 6e4c39e03f..ff4236f4f1 100644
--- a/src/widgets/widgets/qmenu.cpp
+++ b/src/widgets/widgets/qmenu.cpp
@@ -215,13 +215,21 @@ void QMenuPrivate::syncPlatformMenu()
platformMenu->setEnabled(q->isEnabled());
}
+static QWidget *getParentWidget(const QAction *action)
+{
+ auto result = action->parent();
+ while (result && !qobject_cast<QWidget *>(result))
+ result = result->parent();
+ return static_cast<QWidget *>(result);
+}
+
void QMenuPrivate::copyActionToPlatformItem(const QAction *action, QPlatformMenuItem *item)
{
item->setText(action->text());
item->setIsSeparator(action->isSeparator());
if (action->isIconVisibleInMenu()) {
item->setIcon(action->icon());
- if (QWidget *w = action->parentWidget()) {
+ if (QWidget *w = getParentWidget(action)) {
QStyleOption opt;
opt.initFrom(w);
item->setIconSize(w->style()->pixelMetric(QStyle::PM_SmallIconSize, &opt, w));