diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-11-17 13:18:35 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-11-17 13:18:35 +0100 |
commit | 62a8b8b6886c3b638e309ae3dd28390b1dda83f9 (patch) | |
tree | 92ca3bc27908d3fc03703d82987a5bfe25b74ae4 /examples/ayatanaqmlmenumodel.qml | |
parent | 8089cd5052ff617c05ef981b24881d4b89b5436c (diff) | |
parent | f4e75e132debc82f017ebb95c38b560cdd82d52c (diff) | |
download | qmenumodel-62a8b8b6886c3b638e309ae3dd28390b1dda83f9.tar.gz qmenumodel-62a8b8b6886c3b638e309ae3dd28390b1dda83f9.tar.bz2 qmenumodel-62a8b8b6886c3b638e309ae3dd28390b1dda83f9.zip |
Merge branch 'tari01-pr/rename-unity-symbols'
Attributes GH PR #8: https://github.com/AyatanaIndicators/qmenumodel/pull/8
Diffstat (limited to 'examples/ayatanaqmlmenumodel.qml')
-rw-r--r-- | examples/ayatanaqmlmenumodel.qml | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/examples/ayatanaqmlmenumodel.qml b/examples/ayatanaqmlmenumodel.qml new file mode 100644 index 0000000..00984f0 --- /dev/null +++ b/examples/ayatanaqmlmenumodel.qml @@ -0,0 +1,118 @@ +/* + * Copyright 2013 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * Authors: Lars Uebernickel <lars.uebernickel@canonical.com> + */ + +import QtQuick 2.0 +import QMenuModel 0.1 + +Item { + width: 400; + height: 500; + + AyatanaMenuModel { + id: menu + busName: "org.ayatana.indicator.sound" + actions: { "indicator": "/org/ayatana/indicator/sound" } + menuObjectPath: "/org/ayatana/indicator/sound/desktop" + } + + ListView { + id: listview + anchors.fill: parent + anchors.margins: 10 + spacing: 3 + model: menu + + delegate: Loader { + sourceComponent: { + if (isSeparator) { + return separator; + } + else if (type == "org.ayatana.indicator.slider") { + listview.model.loadExtendedAttributes(index, {'min-icon': 'icon', + 'max-icon': 'icon'}); + return slider; + } + else { + return menuitem; + } + } + + Component { + id: separator + Rectangle { + width: listview.width + height: 4 + color: "blue" + } + } + + Component { + id: slider + Rectangle { + width: listview.width + color: "#ddd" + height: 40 + Row { + anchors.fill: parent + Image { + source: ext.minIcon + } + Text { + text: model.actionState + } + Image { + source: ext.maxIcon + } + } + } + } + + Component { + id: menuitem + Rectangle { + width: listview.width + height: 40 + color: "#ddd" + Row { + anchors.fill: parent + anchors.margins: 5 + Image { + source: icon + } + Text { + height: parent.height + verticalAlignment: Text.AlignVCenter + color: sensitive ? "black" : "#aaa"; + text: label + } + } + MouseArea { + anchors.fill: parent + onClicked: { + var submenu = listview.model.submenu(index); + if (submenu) + listview.model = submenu; + else + action.activate(); + } + } + } + } + } + } +} |