Making Network via singleton
This commit is contained in:
@@ -0,0 +1,37 @@
|
|||||||
|
pragma Singleton
|
||||||
|
import QtQuick
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
|
||||||
|
QtObject {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
property string status: "..."
|
||||||
|
property bool running: false
|
||||||
|
|
||||||
|
// Timer property
|
||||||
|
property Timer networkTimer: Timer {
|
||||||
|
interval: 10000
|
||||||
|
repeat: true
|
||||||
|
running: true
|
||||||
|
onTriggered: networkScript.running = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process property
|
||||||
|
property Process networkScript: Process {
|
||||||
|
running: true
|
||||||
|
command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Network.sh"]
|
||||||
|
|
||||||
|
stdout: StdioCollector {
|
||||||
|
onStreamFinished: {
|
||||||
|
root.status = this.text.trim()
|
||||||
|
console.log("Network status:", root.status)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
networkScript.start()
|
||||||
|
networkTimer.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
singleton NetworkState NetworkState.qml
|
||||||
@@ -3,6 +3,7 @@ import Quickshell
|
|||||||
import Quickshell.Hyprland
|
import Quickshell.Hyprland
|
||||||
import Quickshell.Io
|
import Quickshell.Io
|
||||||
import "../../../colors"
|
import "../../../colors"
|
||||||
|
import "../states/Network" as Global
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: networkButton
|
id: networkButton
|
||||||
@@ -13,7 +14,8 @@ MouseArea {
|
|||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
networkStatus.running = true
|
Global.NetworkState.networkScript.start()
|
||||||
|
// networkStatus.running = true
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
@@ -26,30 +28,31 @@ MouseArea {
|
|||||||
|
|
||||||
Text {
|
Text {
|
||||||
id: networkText
|
id: networkText
|
||||||
|
text: Global.NetworkState.status
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
font.pixelSize: 26
|
font.pixelSize: 26
|
||||||
font.family: "Nerd Font"
|
font.family: "Nerd Font"
|
||||||
color: networkButton.containsMouse ? Colors.tertiary_fg : networkText.text === " /" ? Colors.error : Colors.primary
|
color: networkButton.containsMouse ? Colors.tertiary_fg : networkText.text === " /" ? Colors.error : Colors.primary
|
||||||
}
|
}
|
||||||
|
|
||||||
Process {
|
// Process {
|
||||||
id: networkStatus
|
// id: networkStatus
|
||||||
command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Network.sh"]
|
// command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Network.sh"]
|
||||||
running: true
|
// running: true
|
||||||
|
|
||||||
stdout: StdioCollector {
|
// stdout: StdioCollector {
|
||||||
onStreamFinished: {
|
// onStreamFinished: {
|
||||||
networkText.text = this.text.trim()
|
// networkText.text = this.text.trim()
|
||||||
// console.log("networkScript networkText:", this.text.trim())
|
// // console.log("networkScript networkText:", this.text.trim())
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
Timer {
|
// Timer {
|
||||||
interval: 10000
|
// interval: 10000
|
||||||
running: true
|
// running: true
|
||||||
repeat: true
|
// repeat: true
|
||||||
onTriggered: networkStatus.running = true
|
// onTriggered: networkStatus.running = true
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user