diff options
author | Tor Arne Vestbø <[email protected]> | 2017-01-05 14:13:31 +0100 |
---|---|---|
committer | Tor Arne Vestbø <[email protected]> | 2017-01-05 18:26:47 +0000 |
commit | 725c2346b1789c0cd383af339bcb7fb53e4fe69b (patch) | |
tree | efe92ff333e12569c714a1e8821e82afb0e324ff | |
parent | 2ac50ac15621e303adbf6c35cbc2456f7ae5dd2f (diff) |
Provide default implementation of QPlatformMenuBar::createMenu()
Instead of falling back to createPlatformMenu() in client code.
Change-Id: Ia257449200f5c71f5e164072adce13d1137b1d87
Reviewed-by: J-P Nurmi <[email protected]>
-rw-r--r-- | src/gui/kernel/qplatformmenu.cpp | 5 | ||||
-rw-r--r-- | src/gui/kernel/qplatformmenu.h | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qmenubar.cpp | 4 |
3 files changed, 6 insertions, 5 deletions
diff --git a/src/gui/kernel/qplatformmenu.cpp b/src/gui/kernel/qplatformmenu.cpp index 29124163090..1eb146dd0f5 100644 --- a/src/gui/kernel/qplatformmenu.cpp +++ b/src/gui/kernel/qplatformmenu.cpp @@ -55,4 +55,9 @@ QPlatformMenu *QPlatformMenu::createSubMenu() const return QGuiApplicationPrivate::platformTheme()->createPlatformMenu(); } +QPlatformMenu *QPlatformMenuBar::createMenu() const +{ + return QGuiApplicationPrivate::platformTheme()->createPlatformMenu(); +} + QT_END_NAMESPACE diff --git a/src/gui/kernel/qplatformmenu.h b/src/gui/kernel/qplatformmenu.h index f08f0ef4946..f8561445b13 100644 --- a/src/gui/kernel/qplatformmenu.h +++ b/src/gui/kernel/qplatformmenu.h @@ -150,7 +150,7 @@ public: virtual void handleReparent(QWindow *newParentWindow) = 0; virtual QPlatformMenu *menuForTag(quintptr tag) const = 0; - virtual QPlatformMenu *createMenu() const { return nullptr; } + virtual QPlatformMenu *createMenu() const; }; QT_END_NAMESPACE diff --git a/src/widgets/widgets/qmenubar.cpp b/src/widgets/widgets/qmenubar.cpp index 6b0c2fd6216..ce43740524c 100644 --- a/src/widgets/widgets/qmenubar.cpp +++ b/src/widgets/widgets/qmenubar.cpp @@ -1192,10 +1192,6 @@ QPlatformMenu *QMenuBarPrivate::getPlatformMenu(QAction *action) QPlatformMenu *platformMenu = action->menu()->platformMenu(); if (!platformMenu && platformMenuBar) { platformMenu = platformMenuBar->createMenu(); - // QPlatformMenuBar::createMenu() was introduced in Qt 5.7. Not all third party - // platform themes are using it, so fallback to QPlatformTheme::createPlatformMenu(). - if (!platformMenu) - platformMenu = QGuiApplicationPrivate::platformTheme()->createPlatformMenu(); if (platformMenu) action->menu()->setPlatformMenu(platformMenu); } |