mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-29 16:02:51 -05:00
new network service
This commit is contained in:
@@ -30,42 +30,41 @@ Rectangle {
|
|||||||
0.12)
|
0.12)
|
||||||
border.width: NetworkService.networkStatus === "ethernet" ? 2 : 1
|
border.width: NetworkService.networkStatus === "ethernet" ? 2 : 1
|
||||||
|
|
||||||
Column {
|
Row {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: Theme.spacingM
|
anchors.leftMargin: Theme.spacingM
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.right: ethernetToggle.left
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: Theme.spacingM
|
anchors.rightMargin: Theme.spacingM
|
||||||
spacing: Theme.spacingS
|
spacing: Theme.spacingM
|
||||||
|
|
||||||
Row {
|
DankIcon {
|
||||||
spacing: Theme.spacingM
|
name: "lan"
|
||||||
|
size: Theme.iconSize
|
||||||
|
color: NetworkService.networkStatus === "ethernet" ? Theme.primary : Theme.surfaceText
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
|
||||||
DankIcon {
|
Column {
|
||||||
name: "lan"
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
size: Theme.iconSize
|
spacing: 2
|
||||||
color: NetworkService.networkStatus === "ethernet" ? Theme.primary : Theme.surfaceText
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
}
|
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
text: "Ethernet"
|
text: "Ethernet"
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: NetworkService.networkStatus === "ethernet" ? Theme.primary : Theme.surfaceText
|
color: NetworkService.networkStatus === "ethernet" ? Theme.primary : Theme.surfaceText
|
||||||
font.weight: Font.Medium
|
font.weight: Font.Medium
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
text: NetworkService.ethernetConnected ? (NetworkService.ethernetIP
|
text: NetworkService.ethernetConnected ? (NetworkService.ethernetIP
|
||||||
|| "Connected") : "Disconnected"
|
|| "Connected") : "Disconnected"
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g,
|
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g,
|
||||||
Theme.surfaceText.b, 0.7)
|
Theme.surfaceText.b, 0.7)
|
||||||
leftPadding: Theme.iconSize + Theme.spacingM
|
elide: Text.ElideRight
|
||||||
elide: Text.ElideRight
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +74,7 @@ Rectangle {
|
|||||||
name: "refresh"
|
name: "refresh"
|
||||||
size: Theme.iconSize - 4
|
size: Theme.iconSize - 4
|
||||||
color: Theme.primary
|
color: Theme.primary
|
||||||
anchors.right: ethernetToggle.left
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: Theme.spacingS
|
anchors.rightMargin: Theme.spacingS
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
visible: NetworkService.changingPreference
|
visible: NetworkService.changingPreference
|
||||||
@@ -93,24 +92,11 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DankToggle {
|
|
||||||
id: ethernetToggle
|
|
||||||
|
|
||||||
checked: NetworkService.ethernetConnected
|
|
||||||
enabled: true
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.rightMargin: Theme.spacingM
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
onClicked: {
|
|
||||||
NetworkService.toggleNetworkConnection("ethernet")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: ethernetPreferenceArea
|
id: ethernetPreferenceArea
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.rightMargin: 60 // Exclude toggle area
|
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
cursorShape: (NetworkService.ethernetConnected && NetworkService.wifiEnabled
|
cursorShape: (NetworkService.ethernetConnected && NetworkService.wifiEnabled
|
||||||
&& NetworkService.networkStatus
|
&& NetworkService.networkStatus
|
||||||
|
|||||||
@@ -48,30 +48,31 @@ Rectangle {
|
|||||||
border.width: NetworkService.networkStatus === "wifi" ? 2 : 1
|
border.width: NetworkService.networkStatus === "wifi" ? 2 : 1
|
||||||
visible: NetworkService.wifiAvailable
|
visible: NetworkService.wifiAvailable
|
||||||
|
|
||||||
Column {
|
Row {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: Theme.spacingM
|
anchors.leftMargin: Theme.spacingM
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.right: wifiToggle.left
|
anchors.right: wifiToggle.left
|
||||||
anchors.rightMargin: Theme.spacingM
|
anchors.rightMargin: Theme.spacingM
|
||||||
spacing: Theme.spacingS
|
spacing: Theme.spacingM
|
||||||
|
|
||||||
Row {
|
DankIcon {
|
||||||
spacing: Theme.spacingM
|
name: {
|
||||||
|
if (!NetworkService.wifiEnabled)
|
||||||
DankIcon {
|
return "wifi_off"
|
||||||
name: {
|
else if (NetworkService.currentWifiSSID !== "")
|
||||||
if (!NetworkService.wifiEnabled)
|
return getWiFiSignalIcon(NetworkService.wifiSignalStrength)
|
||||||
return "wifi_off"
|
else
|
||||||
else if (NetworkService.currentWifiSSID !== "")
|
return "wifi"
|
||||||
return getWiFiSignalIcon(NetworkService.wifiSignalStrength)
|
|
||||||
else
|
|
||||||
return "wifi"
|
|
||||||
}
|
|
||||||
size: Theme.iconSize
|
|
||||||
color: NetworkService.networkStatus === "wifi" ? Theme.primary : Theme.surfaceText
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
}
|
}
|
||||||
|
size: Theme.iconSize
|
||||||
|
color: NetworkService.networkStatus === "wifi" ? Theme.primary : Theme.surfaceText
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
Column {
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
spacing: 2
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
text: {
|
text: {
|
||||||
@@ -85,25 +86,23 @@ Rectangle {
|
|||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: NetworkService.networkStatus === "wifi" ? Theme.primary : Theme.surfaceText
|
color: NetworkService.networkStatus === "wifi" ? Theme.primary : Theme.surfaceText
|
||||||
font.weight: Font.Medium
|
font.weight: Font.Medium
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
StyledText {
|
StyledText {
|
||||||
text: {
|
text: {
|
||||||
if (!NetworkService.wifiEnabled)
|
if (!NetworkService.wifiEnabled)
|
||||||
return "Turn on WiFi to see networks"
|
return "Turn on WiFi to see networks"
|
||||||
else if (NetworkService.wifiEnabled && NetworkService.currentWifiSSID)
|
else if (NetworkService.wifiEnabled && NetworkService.currentWifiSSID)
|
||||||
return NetworkService.wifiIP || "Connected"
|
return NetworkService.wifiIP || "Connected"
|
||||||
else
|
else
|
||||||
return "Select a network below"
|
return "Select a network below"
|
||||||
|
}
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g,
|
||||||
|
Theme.surfaceText.b, 0.7)
|
||||||
|
elide: Text.ElideRight
|
||||||
}
|
}
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
|
||||||
color: Qt.rgba(Theme.surfaceText.r, Theme.surfaceText.g,
|
|
||||||
Theme.surfaceText.b, 0.7)
|
|
||||||
leftPadding: Theme.iconSize + Theme.spacingM
|
|
||||||
elide: Text.ElideRight
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,7 +142,7 @@ Rectangle {
|
|||||||
onClicked: {
|
onClicked: {
|
||||||
if (NetworkService.wifiEnabled) {
|
if (NetworkService.wifiEnabled) {
|
||||||
NetworkService.currentWifiSSID = ""
|
NetworkService.currentWifiSSID = ""
|
||||||
NetworkService.wifiSignalStrength = "excellent"
|
NetworkService.wifiSignalStrength = 100
|
||||||
NetworkService.wifiNetworks = []
|
NetworkService.wifiNetworks = []
|
||||||
NetworkService.savedWifiNetworks = []
|
NetworkService.savedWifiNetworks = []
|
||||||
NetworkService.connectionStatus = ""
|
NetworkService.connectionStatus = ""
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Item {
|
|||||||
var allNetworks = NetworkService.wifiNetworks
|
var allNetworks = NetworkService.wifiNetworks
|
||||||
var savedNetworks = NetworkService.savedWifiNetworks
|
var savedNetworks = NetworkService.savedWifiNetworks
|
||||||
var currentSSID = NetworkService.currentWifiSSID
|
var currentSSID = NetworkService.currentWifiSSID
|
||||||
var signalStrength = NetworkService.wifiSignalStrength
|
var signalStrength = NetworkService.wifiSignalStrengthStr
|
||||||
var refreshTrigger = forceRefresh
|
var refreshTrigger = forceRefresh
|
||||||
|
|
||||||
// Force recalculation
|
// Force recalculation
|
||||||
@@ -60,15 +60,12 @@ Item {
|
|||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
NetworkService.addRef()
|
NetworkService.addRef()
|
||||||
NetworkService.autoRefreshEnabled = true
|
|
||||||
if (NetworkService.wifiEnabled)
|
if (NetworkService.wifiEnabled)
|
||||||
NetworkService.scanWifi()
|
NetworkService.scanWifi()
|
||||||
wifiMonitorTimer.start()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onDestruction: {
|
Component.onDestruction: {
|
||||||
NetworkService.removeRef()
|
NetworkService.removeRef()
|
||||||
NetworkService.autoRefreshEnabled = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
@@ -79,6 +76,7 @@ Item {
|
|||||||
width: (parent.width - Theme.spacingM) / 2
|
width: (parent.width - Theme.spacingM) / 2
|
||||||
height: parent.height
|
height: parent.height
|
||||||
spacing: Theme.spacingS
|
spacing: Theme.spacingS
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|
||||||
Flickable {
|
Flickable {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
@@ -110,9 +108,7 @@ Item {
|
|||||||
width: parent.width
|
width: parent.width
|
||||||
spacing: Theme.spacingM
|
spacing: Theme.spacingM
|
||||||
|
|
||||||
WiFiCard {
|
WiFiCard {}
|
||||||
refreshTimer: refreshTimer
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollBar.vertical: ScrollBar {
|
ScrollBar.vertical: ScrollBar {
|
||||||
@@ -125,6 +121,7 @@ Item {
|
|||||||
width: (parent.width - Theme.spacingM) / 2
|
width: (parent.width - Theme.spacingM) / 2
|
||||||
height: parent.height
|
height: parent.height
|
||||||
spacing: Theme.spacingS
|
spacing: Theme.spacingS
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
|
||||||
Flickable {
|
Flickable {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
@@ -212,104 +209,20 @@ Item {
|
|||||||
wifiPasswordModalRef: networkTab.wifiPasswordModalRef
|
wifiPasswordModalRef: networkTab.wifiPasswordModalRef
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: refreshTimer
|
|
||||||
interval: 2000
|
|
||||||
running: visible && refreshTimer.triggered
|
|
||||||
property bool triggered: false
|
|
||||||
onTriggered: {
|
|
||||||
NetworkService.refreshNetworkStatus()
|
|
||||||
if (NetworkService.wifiEnabled && !NetworkService.isScanning) {
|
|
||||||
NetworkService.scanWifi()
|
|
||||||
}
|
|
||||||
triggered = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: NetworkService
|
target: NetworkService
|
||||||
function onWifiEnabledChanged() {
|
function onWifiEnabledChanged() {
|
||||||
if (NetworkService.wifiEnabled && visible) {
|
if (NetworkService.wifiEnabled && visible) {
|
||||||
wifiScanDelayTimer.start()
|
// Trigger a scan when WiFi is enabled
|
||||||
wifiMonitorTimer.start()
|
|
||||||
} else {
|
|
||||||
NetworkService.currentWifiSSID = ""
|
|
||||||
NetworkService.wifiSignalStrength = "excellent"
|
|
||||||
NetworkService.wifiNetworks = []
|
|
||||||
NetworkService.savedWifiNetworks = []
|
|
||||||
NetworkService.connectionStatus = ""
|
|
||||||
NetworkService.connectingSSID = ""
|
|
||||||
NetworkService.isScanning = false
|
|
||||||
NetworkService.refreshNetworkStatus()
|
|
||||||
wifiMonitorTimer.stop()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: wifiScanDelayTimer
|
|
||||||
interval: 1500
|
|
||||||
running: false
|
|
||||||
repeat: false
|
|
||||||
onTriggered: {
|
|
||||||
if (NetworkService.wifiEnabled && visible) {
|
|
||||||
if (!NetworkService.isScanning) {
|
|
||||||
NetworkService.scanWifi()
|
|
||||||
} else {
|
|
||||||
wifiRetryTimer.start()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: wifiRetryTimer
|
|
||||||
interval: 2000
|
|
||||||
running: false
|
|
||||||
repeat: false
|
|
||||||
onTriggered: {
|
|
||||||
if (NetworkService.wifiEnabled && visible
|
|
||||||
&& NetworkService.wifiNetworks.length === 0) {
|
|
||||||
if (!NetworkService.isScanning) {
|
|
||||||
NetworkService.scanWifi()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: wifiMonitorTimer
|
|
||||||
interval: 8000 // Check every 8 seconds
|
|
||||||
running: false
|
|
||||||
repeat: true
|
|
||||||
onTriggered: {
|
|
||||||
if (!visible || !NetworkService.wifiEnabled) {
|
|
||||||
running = false
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var shouldScan = false
|
|
||||||
var reason = ""
|
|
||||||
|
|
||||||
if (NetworkService.networkStatus !== "wifi") {
|
|
||||||
shouldScan = true
|
|
||||||
reason = "not connected to WiFi"
|
|
||||||
} else if (NetworkService.wifiNetworks.length === 0) {
|
|
||||||
shouldScan = true
|
|
||||||
reason = "no networks cached"
|
|
||||||
}
|
|
||||||
|
|
||||||
if (shouldScan && !NetworkService.isScanning) {
|
|
||||||
NetworkService.scanWifi()
|
NetworkService.scanWifi()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
if (visible && NetworkService.wifiEnabled) {
|
if (visible && NetworkService.wifiEnabled && NetworkService.wifiNetworks.length === 0) {
|
||||||
wifiMonitorTimer.start()
|
// Scan when tab becomes visible if we don't have networks cached
|
||||||
} else {
|
NetworkService.scanWifi()
|
||||||
wifiMonitorTimer.stop()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ Rectangle {
|
|||||||
if (NetworkService.networkStatus === "ethernet")
|
if (NetworkService.networkStatus === "ethernet")
|
||||||
return "lan"
|
return "lan"
|
||||||
else if (NetworkService.networkStatus === "wifi")
|
else if (NetworkService.networkStatus === "wifi")
|
||||||
return getWiFiSignalIcon(NetworkService.wifiSignalStrength)
|
return getWiFiSignalIcon(NetworkService.wifiSignalStrengthStr)
|
||||||
else
|
else
|
||||||
return "wifi_off"
|
return "wifi_off"
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user