diff options
Diffstat (limited to 'src/plugins/platforms/android')
4 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/platforms/android/androidjnimenu.cpp b/src/plugins/platforms/android/androidjnimenu.cpp index 6a979b9255..9dc8395888 100644 --- a/src/plugins/platforms/android/androidjnimenu.cpp +++ b/src/plugins/platforms/android/androidjnimenu.cpp @@ -68,6 +68,7 @@ namespace QtAndroidMenu static jmethodID openContextMenuMethodID = 0; static jmethodID closeContextMenuMethodID = 0; static jmethodID resetOptionsMenuMethodID = 0; + static jmethodID openOptionsMenuMethodID = 0; static jmethodID clearMenuMethodID = 0; static jmethodID addMenuItemMethodID = 0; @@ -87,6 +88,13 @@ namespace QtAndroidMenu env.jniEnv->CallStaticVoidMethod(applicationClass(), resetOptionsMenuMethodID); } + void openOptionsMenu() + { + AttachedJNIEnv env; + if (env.jniEnv) + env.jniEnv->CallStaticVoidMethod(applicationClass(), openOptionsMenuMethodID); + } + void showContextMenu(QAndroidPlatformMenu *menu, JNIEnv *env) { QMutexLocker lock(&visibleMenuMutex); @@ -409,6 +417,7 @@ namespace QtAndroidMenu GET_AND_CHECK_STATIC_METHOD(openContextMenuMethodID, appClass, "openContextMenu", "()V"); GET_AND_CHECK_STATIC_METHOD(closeContextMenuMethodID, appClass, "closeContextMenu", "()V"); GET_AND_CHECK_STATIC_METHOD(resetOptionsMenuMethodID, appClass, "resetOptionsMenu", "()V"); + GET_AND_CHECK_STATIC_METHOD(openOptionsMenuMethodID, appClass, "openOptionsMenu", "()V"); jclass clazz; FIND_AND_CHECK_CLASS("android/view/Menu"); diff --git a/src/plugins/platforms/android/androidjnimenu.h b/src/plugins/platforms/android/androidjnimenu.h index 2ae406901a..3ca0fb555f 100644 --- a/src/plugins/platforms/android/androidjnimenu.h +++ b/src/plugins/platforms/android/androidjnimenu.h @@ -55,6 +55,7 @@ class QWindow; namespace QtAndroidMenu { // Menu support + void openOptionsMenu(); void showContextMenu(QAndroidPlatformMenu *menu, JNIEnv *env = 0); void hideContextMenu(QAndroidPlatformMenu *menu); void syncMenu(QAndroidPlatformMenu *menu); diff --git a/src/plugins/platforms/android/qandroidplatformtheme.cpp b/src/plugins/platforms/android/qandroidplatformtheme.cpp index 1c9be189c8..b24085f5ea 100644 --- a/src/plugins/platforms/android/qandroidplatformtheme.cpp +++ b/src/plugins/platforms/android/qandroidplatformtheme.cpp @@ -39,6 +39,7 @@ ** ****************************************************************************/ +#include "androidjnimenu.h" #include "qandroidplatformtheme.h" #include "qandroidplatformmenubar.h" #include "qandroidplatformmenu.h" @@ -104,6 +105,11 @@ QPlatformMenuItem *QAndroidPlatformTheme::createPlatformMenuItem() const return new QAndroidPlatformMenuItem; } +void QAndroidPlatformTheme::showPlatformMenuBar() +{ + QtAndroidMenu::openOptionsMenu(); +} + static inline int paletteType(QPlatformTheme::Palette type) { switch (type) { diff --git a/src/plugins/platforms/android/qandroidplatformtheme.h b/src/plugins/platforms/android/qandroidplatformtheme.h index c37c9986c6..786e7e5650 100644 --- a/src/plugins/platforms/android/qandroidplatformtheme.h +++ b/src/plugins/platforms/android/qandroidplatformtheme.h @@ -55,6 +55,7 @@ public: virtual QPlatformMenuBar *createPlatformMenuBar() const; virtual QPlatformMenu *createPlatformMenu() const; virtual QPlatformMenuItem *createPlatformMenuItem() const; + virtual void showPlatformMenuBar(); virtual const QPalette *palette(Palette type = SystemPalette) const; virtual const QFont *font(Font type = SystemFont) const; virtual QVariant themeHint(ThemeHint hint) const; |