2
* Copyright 2013 Canonical Ltd.
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.
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.
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/>.
17
* Nick Dedekind <nick.dedekind@canonical.com>
21
import Ubuntu.Components 0.1
22
import Unity.Indicators 0.1 as Indicators
24
Indicators.IndicatorWidget {
27
width: networkIcon.width + units.gu(1)
29
property int signalStrength: 0
30
property int connectionState: Indicators.NetworkConnection.Initial
31
rootMenuType: "com.canonical.indicator.root.network"
33
// FIXME : Should us Ubuntu.Icon . results in low res images
36
objectName: "itemImage"
37
source: get_icon_for_signal(connectionState, signalStrength)
39
height: indicatorWidget.iconSize
40
width: indicatorWidget.iconSize
41
anchors.centerIn: parent
44
onActionStateChanged: {
45
if (action == undefined || !action.valid) {
49
if (action.state == undefined) {
54
connectionState = action.state[Indicators.NetworkActionState.Connection];
55
if (connectionState == Indicators.NetworkConnection.Activated) {
56
signalStrength = action.state[Indicators.NetworkActionState.SignalStrength];
61
id: activation_animation
62
target: indicatorWidget
63
property: "signalStrength"
66
duration: 2500 // 5 states in 2.5 seconds
67
loops: Animation.Infinite
73
when: connectionState < Indicators.NetworkConnection.Activating || connectionState > Indicators.NetworkConnection.Deactivating
74
PropertyChanges { target: activation_animation; running: false }
78
when: connectionState == Indicators.NetworkConnection.Activating
79
PropertyChanges { target: activation_animation; running: true }
83
when: connectionState == Indicators.NetworkConnection.Activated
84
PropertyChanges { target: activation_animation; running: false }
88
when: connectionState == Indicators.NetworkConnection.Deactivating
89
PropertyChanges { target: activation_animation; running: true }
94
function get_icon_for_signal(con_state, value) {
95
if (con_state >= Indicators.NetworkConnection.Activating && con_state <= Indicators.NetworkConnection.Deactivating) {
97
return "image://gicon/nm-signal-00";
98
} else if (value <= 25) {
99
return "image://gicon/nm-signal-25";
100
} else if (value <= 50) {
101
return "image://gicon/nm-signal-50";
102
} else if (value <= 75) {
103
return "image://gicon/nm-signal-75";
105
return "image://gicon/nm-signal-100";
107
return "image://gicon/wifi-none";