You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.6 KiB
77 lines
2.6 KiB
import QtQuick 2.6 |
|
|
|
Image { |
|
id: root |
|
|
|
sourceSize.width: constants.iconSizeMedium |
|
sourceSize.height: constants.iconSizeMedium |
|
|
|
property bool connected: Network.status == 'connected' |
|
property bool lagging: connected && Network.isLagging |
|
property bool fork: connected && Network.chaintips > 1 |
|
property bool syncing: connected && Daemon.currentWallet && Daemon.currentWallet.synchronizing |
|
property bool proxy: connected && 'mode' in Network.proxy && Network.proxy.mode |
|
|
|
// ?: in order to keep this a binding.. |
|
source: !connected |
|
? '../../../icons/status_disconnected.png' |
|
: syncing |
|
? '../../../icons/status_waiting.png' |
|
: lagging |
|
? fork |
|
? '../../../icons/status_lagging_fork.png' |
|
: '../../../icons/status_lagging.png' |
|
: fork |
|
? proxy |
|
? '../../../icons/status_connected_proxy_fork.png' |
|
: '../../../icons/status_connected_fork.png' |
|
: proxy |
|
? '../../../icons/status_connected_proxy.png' |
|
: '../../../icons/status_connected.png' |
|
|
|
|
|
states: [ |
|
State { |
|
name: 'disconnected' |
|
when: !connected |
|
PropertyChanges { target: root; rotation: 0 } |
|
PropertyChanges { target: root; scale: 1.0 } |
|
}, |
|
State { |
|
name: 'normal' |
|
when: !(syncing || fork) |
|
PropertyChanges { target: root; rotation: 0 } |
|
PropertyChanges { target: root; scale: 1.0 } |
|
}, |
|
State { |
|
name: 'syncing' |
|
when: syncing |
|
PropertyChanges { target: spin; running: true } |
|
PropertyChanges { target: root; scale: 1.0 } |
|
}, |
|
State { |
|
name: 'forked' |
|
when: fork |
|
PropertyChanges { target: root; rotation: 0 } |
|
PropertyChanges { target: pulse; running: true } |
|
} |
|
] |
|
|
|
RotationAnimation { |
|
id: spin |
|
target: root |
|
from: 0 |
|
to: 360 |
|
duration: 1000 |
|
loops: Animation.Infinite |
|
} |
|
|
|
SequentialAnimation { |
|
id: pulse |
|
loops: Animation.Infinite |
|
PauseAnimation { duration: 1000 } |
|
NumberAnimation { target: root; property: 'scale'; from: 1.0; to: 1.5; duration: 200; easing.type: Easing.InCubic } |
|
NumberAnimation { target: root; property: 'scale'; to: 1.0; duration: 500; easing.type: Easing.OutCubic } |
|
PauseAnimation { duration: 30000 } |
|
} |
|
}
|
|
|