Files
noctalia-shell/Modules/Panels/ControlCenter/Widgets/Network.qml
T
2026-02-12 02:55:40 +01:00

57 lines
1.7 KiB
QML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import QtQuick.Layouts
import Quickshell
import qs.Commons
import qs.Services.Networking
import qs.Services.UI
import qs.Widgets
NIconButtonHot {
property ShellScreen screen
icon: {
try {
if (NetworkService.ethernetConnected) {
return NetworkService.internetConnectivity ? "ethernet" : "ethernet-off";
}
let connected = false;
let signalStrength = 0;
for (const net in NetworkService.networks) {
if (NetworkService.networks[net].connected) {
connected = true;
signalStrength = NetworkService.networks[net].signal;
break;
}
}
return connected ? NetworkService.signalIcon(signalStrength, true) : "wifi-off";
} catch (error) {
Logger.e("Wi-Fi", "Error getting icon:", error);
return "wifi-off";
}
}
tooltipText: {
try {
if (NetworkService.ethernetConnected) {
// Match design: fixed label when on Ethernet
return I18n.tr("control-center.wifi.label-ethernet");
}
// WiFi: SSID — link speed (if available)
for (const net in NetworkService.networks) {
if (NetworkService.networks[net].connected) {
const w = NetworkService.activeWifiDetails || ({});
const rate = (w.rateShort && w.rateShort.length > 0) ? w.rateShort : (w.rate || "");
return rate && rate.length > 0 ? (net + " — " + rate) : net;
}
}
} catch (e) {
// noop
}
return I18n.tr("common.wifi");
}
onClicked: {
var panel = PanelService.getPanel("networkPanel", screen);
panel?.toggle(this);
}
onRightClicked: NetworkService.setWifiEnabled(!Settings.data.network.wifiEnabled)
}