diff options
author | Ivan Solovev <ivan.solovev@qt.io> | 2022-07-18 15:10:15 +0200 |
---|---|---|
committer | Ivan Solovev <ivan.solovev@qt.io> | 2022-07-21 23:12:15 +0200 |
commit | 4b9c738185c771127eb8e7c73868f60bd31f7fce (patch) | |
tree | 660a9234fc720a4df24c5e4edb76a99cbe9aeac8 /src/widgets | |
parent | 8fed0a6aa66bf2a78d7e00b60b1ff27979873b86 (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.cpp | 10 |
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)); |