summaryrefslogtreecommitdiff
path: root/modules/controlcenter/dev/DevDebugPane.qml
diff options
context:
space:
mode:
authorATMDA <atdma2600@gmail.com>2025-11-13 16:56:49 -0500
committerATMDA <atdma2600@gmail.com>2025-11-13 16:56:49 -0500
commitbaa10d6ccfe8ad03a8832c4a43179c21020997ab (patch)
treeba74b57591ccc83e5311e4cb89b3d75f8f27e4c4 /modules/controlcenter/dev/DevDebugPane.qml
parentcontrolcenter: wireless debug removal (preparing for rewrite) (diff)
downloadcaelestia-shell-baa10d6ccfe8ad03a8832c4a43179c21020997ab.tar.gz
caelestia-shell-baa10d6ccfe8ad03a8832c4a43179c21020997ab.tar.bz2
caelestia-shell-baa10d6ccfe8ad03a8832c4a43179c21020997ab.zip
controlcenter: created dev panel for wireless testing
Diffstat (limited to 'modules/controlcenter/dev/DevDebugPane.qml')
-rw-r--r--modules/controlcenter/dev/DevDebugPane.qml170
1 files changed, 170 insertions, 0 deletions
diff --git a/modules/controlcenter/dev/DevDebugPane.qml b/modules/controlcenter/dev/DevDebugPane.qml
new file mode 100644
index 0000000..88d6542
--- /dev/null
+++ b/modules/controlcenter/dev/DevDebugPane.qml
@@ -0,0 +1,170 @@
+pragma ComponentBehavior: Bound
+
+import "."
+import ".."
+import qs.components
+import qs.components.controls
+import qs.components.containers
+import qs.config
+import Quickshell
+import Quickshell.Widgets
+import QtQuick
+import QtQuick.Layouts
+
+Item {
+ id: root
+
+ required property DevSession session
+
+ anchors.fill: parent
+
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.margins: Appearance.padding.large
+ spacing: Appearance.spacing.normal
+
+ StyledText {
+ text: qsTr("Debug Panel")
+ font.pointSize: Appearance.font.size.larger
+ font.weight: 500
+ }
+
+ // Action Buttons Section
+ StyledRect {
+ Layout.fillWidth: true
+ implicitHeight: buttonsLayout.implicitHeight + Appearance.padding.large * 2
+ radius: Appearance.rounding.normal
+ color: Colours.tPalette.m3surfaceContainer
+
+ ColumnLayout {
+ id: buttonsLayout
+
+ anchors.fill: parent
+ anchors.margins: Appearance.padding.large
+ spacing: Appearance.spacing.normal
+
+ StyledText {
+ text: qsTr("Actions")
+ font.pointSize: Appearance.font.size.normal
+ font.weight: 500
+ }
+
+ Flow {
+ Layout.fillWidth: true
+ spacing: Appearance.spacing.small
+
+ TextButton {
+ text: qsTr("Clear Log")
+ onClicked: {
+ debugOutput.text = "";
+ appendLog("Debug log cleared");
+ }
+ }
+
+ TextButton {
+ text: qsTr("Test Action")
+ onClicked: {
+ appendLog("Test action executed at " + new Date().toLocaleTimeString());
+ }
+ }
+
+ TextButton {
+ text: qsTr("Log Network State")
+ onClicked: {
+ appendLog("Network state:");
+ appendLog(" Active: " + (root.session.network.active ? "Yes" : "No"));
+ }
+ }
+ }
+ }
+ }
+
+ // Debug Output Section
+ StyledRect {
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ radius: Appearance.rounding.normal
+ color: Colours.tPalette.m3surfaceContainer
+
+ ColumnLayout {
+ anchors.fill: parent
+ anchors.margins: Appearance.padding.large
+ spacing: Appearance.spacing.small
+
+ RowLayout {
+ Layout.fillWidth: true
+
+ StyledText {
+ text: qsTr("Debug Output")
+ font.pointSize: Appearance.font.size.normal
+ font.weight: 500
+ }
+
+ Item {
+ Layout.fillWidth: true
+ }
+
+ TextButton {
+ text: qsTr("Copy")
+ onClicked: {
+ debugOutput.selectAll();
+ debugOutput.copy();
+ debugOutput.deselect();
+ appendLog("Output copied to clipboard");
+ }
+ }
+ }
+
+ StyledFlickable {
+ id: flickable
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ flickableDirection: Flickable.VerticalFlick
+ contentHeight: debugOutput.implicitHeight
+
+ TextEdit {
+ id: debugOutput
+
+ width: flickable.width
+ readOnly: true
+ wrapMode: TextEdit.Wrap
+ font.family: Appearance.font.family.mono
+ font.pointSize: Appearance.font.size.smaller
+ renderType: TextEdit.NativeRendering
+ textFormat: TextEdit.PlainText
+ color: "#ffb0ca" // Use primary color - will be set programmatically
+
+ Component.onCompleted: {
+ color = Colours.palette.m3primary;
+ appendLog("Debug panel initialized");
+ }
+
+ onTextChanged: {
+ // Ensure color stays set when text changes
+ color = Colours.palette.m3primary;
+ if (flickable.contentHeight > flickable.height) {
+ flickable.contentY = flickable.contentHeight - flickable.height;
+ }
+ }
+ }
+ }
+
+ StyledScrollBar {
+ flickable: flickable
+ policy: ScrollBar.AlwaysOn
+ }
+ }
+ }
+ }
+
+ function appendLog(message: string): void {
+ const timestamp = new Date().toLocaleTimeString();
+ debugOutput.text += `[${timestamp}] ${message}\n`;
+ }
+
+ function log(message: string): void {
+ appendLog(message);
+ }
+}
+