on 7fb8cd2 help sign in
unity8/plugins/Unity/Indicators/qml/IndicatorWidget.qml
68 lines 2.1 kB history raw
1/*
2 * Copyright 2013 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.0
21import Unity.Indicators 0.1 as Indicators
23IndicatorBase {
24 id: indicatorWidget
26// enabled: false // FIXME : should be disabled until bus available when we have desktop indicators
27 property var action: undefined
28 property bool started: (busType != 0) && (busName != "") && (deviceMenuObjectPath != "")
29 property int iconSize: height - units.gu(0.5)
30 property string rootMenuType: "com.canonical.indicator.root"
32 signal actionStateChanged()
34 onStartedChanged: {
35 if (started) {
36 proxyModel.start();
37 actionGroup.start();
38 } else {
39 proxyModel.stop();
40 actionGroup.stop();
41 }
42 }
43 onActionChanged: actionStateChanged()
44 onActionGroupUpdated: update_state()
45 onModelUpdated: update_state()
48 function update_state() {
49 var extra = proxyModel.data(0, Indicators.FlatMenuProxyModelRole.Extra);
50 if (extra == undefined) {
51 return;
52 }
54 if (!extra.hasOwnProperty("canonical_type")) {
55 return;
56 }
58 if (extra.canonical_type === rootMenuType) {
59 action = actionGroup.action(proxyModel.data(0, Indicators.FlatMenuProxyModelRole.Action));
60 }
61 }
63 Connections {
64 target: action == undefined ? null : action
65 onStateChanged: actionStateChanged()
66 onValidChanged: actionStateChanged()
67 }