diff options
author | Robert Tari <robert@tari.in> | 2021-11-16 08:10:18 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2021-11-17 13:14:54 +0100 |
commit | f8036895f95acc49f484af564d2b56f14c158dd9 (patch) | |
tree | 8d4b07d34520f61b2557cd5ba4977343ee496cb8 /examples/ayatanaqmlmenumodel.qml | |
parent | 8089cd5052ff617c05ef981b24881d4b89b5436c (diff) | |
download | qmenumodel-f8036895f95acc49f484af564d2b56f14c158dd9.tar.gz qmenumodel-f8036895f95acc49f484af564d2b56f14c158dd9.tar.bz2 qmenumodel-f8036895f95acc49f484af564d2b56f14c158dd9.zip |
Rename unity* source files
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..e7360e0 --- /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; + + UnityMenuModel { + 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(); + } + } + } + } + } + } +} |