nova-shell/shell/applets/NetworkApplet.qml

76 lines
2.5 KiB
QML

import QtQuick
import "../services" as S
Column {
id: root
required property color accentColor
Repeater {
model: S.NetworkService.networks
delegate: HoverableListItem {
id: entry
required property var modelData
required property int index
Text {
id: netIcon
anchors.left: parent.left
anchors.leftMargin: 12
anchors.verticalCenter: parent.verticalCenter
text: entry.modelData.isWifi ? "\uF1EB" : "\uDB80\uDE00"
color: entry.modelData.active ? root.accentColor : S.Theme.base05
font.pixelSize: S.Theme.fontSize + 1
font.family: S.Theme.iconFontFamily
}
Text {
anchors.left: netIcon.right
anchors.leftMargin: 8
anchors.right: sigLabel.left
anchors.rightMargin: 4
anchors.verticalCenter: parent.verticalCenter
text: entry.modelData.name
color: entry.modelData.active ? root.accentColor : S.Theme.base05
font.pixelSize: S.Theme.fontSize
font.family: S.Theme.fontFamily
font.bold: entry.modelData.active
elide: Text.ElideRight
}
Text {
id: sigLabel
anchors.right: parent.right
anchors.rightMargin: 12
anchors.verticalCenter: parent.verticalCenter
text: entry.modelData.signal >= 0 ? entry.modelData.signal + "%" : ""
color: S.Theme.base04
font.pixelSize: S.Theme.fontSize - 1
font.family: S.Theme.fontFamily
width: entry.modelData.signal >= 0 ? implicitWidth : 0
}
TapHandler {
onTapped: {
if (entry.modelData.active)
S.NetworkService.disconnectNetwork(entry.modelData.uuid);
else
S.NetworkService.connectNetwork(entry.modelData.uuid);
}
}
}
}
Text {
visible: S.NetworkService.networks.length === 0
width: root.width
height: 32
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: S.NetworkService.wifiEnabled ? "No networks available" : "Wi-Fi is off"
color: S.Theme.base04
font.pixelSize: S.Theme.fontSize
font.family: S.Theme.fontFamily
}
}