mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-21 18:54:01 -04:00
46 lines
1.6 KiB
QML
46 lines
1.6 KiB
QML
import QtQuick
|
|
import qs.Common
|
|
import qs.Services
|
|
import qs.Modules.ControlCenter.Widgets
|
|
import qs.Modules.ControlCenter.Details
|
|
import qs.Modules.Plugins
|
|
|
|
PluginComponent {
|
|
id: root
|
|
|
|
readonly property bool vpnActivating: DMSNetworkService.vpnIsBusy || DMSNetworkService.activeState === "activating"
|
|
readonly property bool vpnActivated: DMSNetworkService.connected && DMSNetworkService.activeState === "activated"
|
|
|
|
ccWidgetIcon: "vpn_key"
|
|
ccWidgetPrimaryText: I18n.tr("VPN", "virtual private network, widget and page title")
|
|
ccWidgetSecondaryText: {
|
|
if (vpnActivating)
|
|
return I18n.tr("Connecting...");
|
|
if (!vpnActivated)
|
|
return I18n.tr("Disconnected");
|
|
const names = DMSNetworkService.activeNames || [];
|
|
if (names.length <= 1)
|
|
return names[0] || I18n.tr("Connected");
|
|
return names[0] + " +" + (names.length - 1);
|
|
}
|
|
ccWidgetIsActive: vpnActivated
|
|
|
|
onCcWidgetToggled: DMSNetworkService.toggleVpn()
|
|
|
|
ccDetailContent: Component {
|
|
VpnDetailContent {}
|
|
}
|
|
ccExpandedContent: Component {
|
|
CcTileActions {
|
|
actions: DMSNetworkService.profiles.map(profile => ({
|
|
text: profile.name,
|
|
icon: "vpn_key",
|
|
toggle: true,
|
|
active: DMSNetworkService.vpnStateForUuid(profile.uuid) === "activated",
|
|
enabled: !DMSNetworkService.isVpnConnectingUuid(profile.uuid),
|
|
trigger: () => DMSNetworkService.toggle(profile.uuid)
|
|
}))
|
|
}
|
|
}
|
|
}
|