refactor: enhance UI components and improve theme properties for better visual consistency

This commit is contained in:
jack
2026-06-11 13:09:04 -07:00
parent 12bd778f13
commit 1cd54e81fc
4 changed files with 80 additions and 11 deletions
+11 -7
View File
@@ -107,25 +107,29 @@ Item {
x: toggle.leftPadding
y: parent.height / 2 - height / 2
radius: Theme.radiusXs
color: toggle.checked ? Theme.primaryAccent : Theme.fieldBackground
color: toggle.checked ? Theme.primaryAccent : "transparent"
border.width: Theme.borderThin
border.color: toggle.checked ? Theme.primaryAccent : Theme.fieldBorder
Rectangle {
Text {
anchors.centerIn: parent
width: 9
height: 9
radius: Theme.radiusXs
text: "✓"
font.pixelSize: 14
font.bold: true
color: Theme.panelBackground
visible: toggle.checked
color: Theme.fieldBackground
// Small nudge to center the checkmark perfectly
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
}
}
contentItem: Text {
text: toggle.text
color: Theme.checkboxText
color: Theme.headingColor
verticalAlignment: Text.AlignVCenter
leftPadding: toggle.indicator.width + toggle.spacing
font.pixelSize: 13
}
}
+35 -2
View File
@@ -9,6 +9,39 @@ ColumnLayout {
property alias showLabels: labelsToggle.checked
property alias heatmapBlend: heatmapSlider.value
component PanelCheckBox: CheckBox {
id: toggle
indicator: Rectangle {
implicitWidth: 18
implicitHeight: 18
x: toggle.leftPadding
y: parent.height / 2 - height / 2
radius: Theme.radiusXs
color: toggle.checked ? Theme.primaryAccent : "transparent"
border.width: Theme.borderThin
border.color: toggle.checked ? Theme.primaryAccent : Theme.fieldBorder
Text {
anchors.centerIn: parent
text: "✓"
font.pixelSize: 13
font.bold: true
color: Theme.panelBackground
visible: toggle.checked
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
}
}
contentItem: Text {
text: toggle.text
color: Theme.headingColor
verticalAlignment: Text.AlignVCenter
leftPadding: toggle.indicator.width + toggle.spacing
font.pixelSize: toggle.font.pixelSize || 11
}
}
// ── READOUT ───────────────────────────────────────────────────────────
Label {
text: "READOUT"
@@ -142,7 +175,7 @@ ColumnLayout {
bottomPadding: 8
}
CheckBox {
PanelCheckBox {
id: labelsToggle
text: "Labels"
checked: true
@@ -236,7 +269,7 @@ ColumnLayout {
Item { height: 10 }
CheckBox {
PanelCheckBox {
id: autoCheck
text: "Auto range (mean ± 1σ)"
checked: true
@@ -2,6 +2,7 @@ import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import ISC
import ".."
ColumnLayout {
spacing: 6
@@ -23,6 +24,32 @@ ColumnLayout {
Layout.alignment: Qt.AlignVCenter
}
Button {
id: editBtn
text: "✎"
implicitWidth: 26
implicitHeight: 26
hoverEnabled: true
font.pixelSize: 14
background: Rectangle {
color: editBtn.pressed ? Theme.buttonPressed
: editBtn.hovered ? Theme.buttonNeutralHover
: "transparent"
radius: Theme.radiusSm
}
contentItem: Text {
text: parent.text
color: Theme.bodyColor
font: parent.font
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
onClicked: {
file_browser.refreshFiles()
csvEditorDialog.open()
}
}
Button {
id: refreshBtn
text: "⟳"
@@ -260,4 +287,9 @@ ColumnLayout {
color: Theme.bodyColor
font.pixelSize: 10
}
SelectFileDialog {
id: csvEditorDialog
tableModel: file_browser.files
}
}