summaryrefslogtreecommitdiffstats
path: root/src/qmlandroid/view/qqmlandroidmenu.cpp
blob: 92ffbacf7a2103deaa43bed43eb29e7cd35a024a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "qqmlandroidmenu_p.h"
#include "qqmlandroidmenuitem_p.h"

QT_BEGIN_NAMESPACE

QQmlAndroidMenu::QQmlAndroidMenu(QObject *parent) :
    QQmlAndroidContextual(parent)
{
}

QList<QQmlAndroidMenuItem *> QQmlAndroidMenu::items() const
{
    QList<QQmlAndroidMenuItem *> lst;
    foreach (QObject *child, children()) {
        QQmlAndroidMenuItem *item = qobject_cast<QQmlAndroidMenuItem *>(child);
        if (item)
            lst += item;
    }
    return lst;
}

QAndroidJniObject QQmlAndroidMenu::onCreate()
{
    return QAndroidJniObject("qt/android/view/QmlMenu");
}

void QQmlAndroidMenu::onInflate(QAndroidJniObject &instance)
{
    foreach (QQmlAndroidMenuItem *item, items()) {
        item->construct();
        if (item->isValid())
            instance.callMethod<void>("add", "(Lqt/android/view/QmlMenuItem;)V", item->instance().object());
    }
}

QT_END_NAMESPACE