9#include <QtCore/qjnienvironment.h>
10#include <QtCore/qjniobject.h>
14QAndroidPlatformMenu::QAndroidPlatformMenu()
28 m_menuItems.insert(std::find(m_menuItems.begin(),
30 static_cast<QAndroidPlatformMenuItem *>(before)),
31 static_cast<QAndroidPlatformMenuItem *>(menuItem));
32 m_menuHash.insert(m_nextMenuId++, menuItem);
38 PlatformMenuItemsType::iterator it = std::find(m_menuItems.begin(),
40 static_cast<QAndroidPlatformMenuItem *>(menuItem));
41 if (it != m_menuItems.end())
42 m_menuItems.erase(it);
46 QHash<
int, QPlatformMenuItem *>::iterator it = m_menuHash.begin();
47 while (it != m_menuHash.end()) {
48 if (it.value() == menuItem) {
49 it = m_menuHash.erase(it);
51 maxId = qMax(maxId, it.key());
56 m_nextMenuId = maxId + 1;
62 PlatformMenuItemsType::iterator it;
63 for (it = m_menuItems.begin(); it != m_menuItems.end(); ++it) {
64 if ((*it)->tag() == menuItem->tag())
68 if (it != m_menuItems.end())
109 m_isVisible = visible;
119 Q_UNUSED(parentWindow);
127 for (QAndroidPlatformMenuItem *menuItem : m_menuItems) {
128 if (menuItem->tag() == tag)
137 if (position < m_menuItems.size())
138 return m_menuItems[position];
144 QHash<
int, QPlatformMenuItem *>::const_iterator it;
145 for (it = m_menuHash.constBegin(); it != m_menuHash.constEnd(); ++it) {
146 if (it.value() == menu)
155 return m_menuHash.value(menuId);
165 return &m_menuItemsMutex;
void syncMenu(QAndroidPlatformMenu *)
void androidPlatformMenuDestroyed(QAndroidPlatformMenu *menu)
void showContextMenu(QAndroidPlatformMenu *menu, const QRect &anchorRect)