on dbb8563 help sign in
unity8/tests/mocks/Unity/Indicators/ModelActionRootState.qml
81 lines 3.1 kB history raw
1/*
2 * Copyright 2013-2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Nick Dedekind <nick.dedekind@canonical.com>
18 */
20import QtQuick 2.4
22Item {
23 property var menu: null
24 property bool valid: cachedState !== undefined
25 property string title: cachedState && cachedState.hasOwnProperty("title") ? cachedState["title"] : ""
26 property string leftLabel: cachedState && cachedState.hasOwnProperty("pre-label") ? cachedState["pre-label"] : ""
27 property string rightLabel: cachedState && cachedState.hasOwnProperty("label") ? cachedState["label"] : ""
28 property var icons: cachedState && cachedState.hasOwnProperty("icons") ? cachedState["icons"] : []
29 property string accessibleName: cachedState && cachedState.hasOwnProperty("accessible-desc") ? cachedState["accessible-desc"] : ""
30 property bool indicatorVisible: cachedState && cachedState.hasOwnProperty("visible") ? cachedState["visible"] : true
32 property var cachedState: menu ? menu.get(0, "actionState") : undefined
33 property string submenuAction: {
34 if (!menu) return "";
35 var ext = menu.get(0, "ext");
36 var action = ext ? ext["submenu-action"] : undefined;
37 return action ? action : ""
38 }
40 property string secondaryAction: {
41 if (!menu) return "";
42 var ext = menu.get(0, "ext");
43 var action = ext ? ext["x-canonical-secondary-action"] : undefined;
44 return action ? action : ""
45 }
47 property string scrollAction: {
48 if (!menu) return "";
49 var ext = menu.get(0, "ext");
50 var action = ext ? ext["x-canonical-scroll-action"] : undefined;
51 return action ? action : ""
52 }
54 Connections {
55 target: menu
56 onModelDataChanged: {
57 cachedState = menu.get(0, "actionState");
59 var ext = menu.get(0, "ext");
61 var action = ext ? ext["submenu-action"] : undefined;
62 submenuAction = action ? action : ""
64 action = ext ? ext["x-canonical-secondary-action"] : undefined;
65 secondaryAction = action ? action : ""
67 action = ext ? ext["x-canonical-scroll-action"] : undefined;
68 scrollAction = action ? action : ""
69 }
70 }
72 signal updated
74 onValidChanged: updated()
75 onTitleChanged: updated()
76 onLeftLabelChanged: updated()
77 onRightLabelChanged: updated()
78 onIconsChanged: updated()
79 onAccessibleNameChanged: updated()
80 onIndicatorVisibleChanged: updated()