refactor: modernize WaferMapTab layout and redesign ReadoutPanel statistics display

This commit is contained in:
jack
2026-06-11 12:57:52 -07:00
parent 72334795da
commit 12bd778f13
6 changed files with 194 additions and 110 deletions
+98 -84
View File
@@ -16,118 +16,120 @@ ColumnLayout {
font.pixelSize: 10
font.letterSpacing: 1.8
font.weight: Font.Medium
bottomPadding: 4
topPadding: 6
bottomPadding: 8
}
GridLayout {
columns: 2
rowSpacing: 4
columnSpacing: 4
Rectangle {
Layout.fillWidth: true
implicitHeight: statsLayout.implicitHeight + 20
color: Theme.subtleSectionBackground
radius: Theme.radiusSm
border.color: Theme.cardBorder
border.width: 1
// MIN TEMP
Rectangle {
Layout.fillWidth: true; height: 52
color: Theme.subtleSectionBackground; radius: Theme.radiusSm
border.color: Theme.cardBorder; border.width: 1
ColumnLayout {
anchors { fill: parent; margins: 7 }
spacing: 1
Label { text: "MIN TEMP"; color: Theme.bodyColor; font.pixelSize: 9; font.letterSpacing: 1 }
Label {
text: s.min !== undefined ? s.min + " #" + s.minIndex : "—"
color: Theme.sensorLow
font.pixelSize: 15; font.weight: Font.Bold
ColumnLayout {
id: statsLayout
anchors { fill: parent; margins: 10 }
spacing: 8
// Min Temp Row
RowLayout {
Layout.fillWidth: true
Label { text: "Min Temp"; color: Theme.bodyColor; font.pixelSize: 11 }
Item { Layout.fillWidth: true }
RowLayout {
spacing: 4
Label {
text: s.min !== undefined ? s.min : "—"
color: Theme.sensorLow
font.pixelSize: 13; font.weight: Font.Bold
}
Label {
text: s.minIndex !== undefined ? "#" + s.minIndex : ""
color: Theme.bodyColor
font.pixelSize: 10
}
}
}
}
// MAX TEMP
Rectangle {
Layout.fillWidth: true; height: 52
color: Theme.subtleSectionBackground; radius: Theme.radiusSm
border.color: Theme.cardBorder; border.width: 1
ColumnLayout {
anchors { fill: parent; margins: 7 }
spacing: 1
Label { text: "MAX TEMP"; color: Theme.bodyColor; font.pixelSize: 9; font.letterSpacing: 1 }
Label {
text: s.max !== undefined ? s.max + " #" + s.maxIndex : "—"
color: Theme.sensorHigh
font.pixelSize: 15; font.weight: Font.Bold
// Max Temp Row
RowLayout {
Layout.fillWidth: true
Label { text: "Max Temp"; color: Theme.bodyColor; font.pixelSize: 11 }
Item { Layout.fillWidth: true }
RowLayout {
spacing: 4
Label {
text: s.max !== undefined ? s.max : "—"
color: Theme.sensorHigh
font.pixelSize: 13; font.weight: Font.Bold
}
Label {
text: s.maxIndex !== undefined ? "#" + s.maxIndex : ""
color: Theme.bodyColor
font.pixelSize: 10
}
}
}
}
// DIFFERENTIAL
Rectangle {
Layout.fillWidth: true; height: 52
color: Theme.subtleSectionBackground; radius: Theme.radiusSm
border.color: Theme.cardBorder; border.width: 1
ColumnLayout {
anchors { fill: parent; margins: 7 }
spacing: 1
Label { text: "DIFFERENTIAL"; color: Theme.bodyColor; font.pixelSize: 9; font.letterSpacing: 1 }
Rectangle { Layout.fillWidth: true; height: 1; color: Theme.cardBorder }
// Differential Row
RowLayout {
Layout.fillWidth: true
Label { text: "Differential"; color: Theme.bodyColor; font.pixelSize: 11 }
Item { Layout.fillWidth: true }
Label {
text: s.diff !== undefined ? s.diff : "—"
color: Theme.headingColor
font.pixelSize: 15; font.weight: Font.Bold
font.pixelSize: 13; font.weight: Font.Bold
}
}
}
// AVERAGE
Rectangle {
Layout.fillWidth: true; height: 52
color: Theme.subtleSectionBackground; radius: Theme.radiusSm
border.color: Theme.cardBorder; border.width: 1
ColumnLayout {
anchors { fill: parent; margins: 7 }
spacing: 1
Label { text: "AVERAGE"; color: Theme.bodyColor; font.pixelSize: 9; font.letterSpacing: 1 }
// Average Row
RowLayout {
Layout.fillWidth: true
Label { text: "Average"; color: Theme.bodyColor; font.pixelSize: 11 }
Item { Layout.fillWidth: true }
Label {
text: s.avg !== undefined ? s.avg : "—"
color: Theme.headingColor
font.pixelSize: 15; font.weight: Font.Bold
font.pixelSize: 13; font.weight: Font.Bold
}
}
}
}
// SIGMA — full-width
Rectangle {
Layout.fillWidth: true; height: 44
color: Theme.subtleSectionBackground; radius: Theme.radiusSm
border.color: Theme.cardBorder; border.width: 1
RowLayout {
anchors { fill: parent; leftMargin: 7; rightMargin: 7; topMargin: 4; bottomMargin: 4 }
ColumnLayout {
spacing: 1
Label { text: "SIGMA (σ)"; color: Theme.bodyColor; font.pixelSize: 9; font.letterSpacing: 1 }
Label { text: "3σ"; color: Theme.bodyColor; font.pixelSize: 9; font.letterSpacing: 1 }
}
Item { Layout.fillWidth: true }
ColumnLayout {
spacing: 1
Rectangle { Layout.fillWidth: true; height: 1; color: Theme.cardBorder }
// Sigma Row
RowLayout {
Layout.fillWidth: true
Label { text: "Sigma (σ)"; color: Theme.bodyColor; font.pixelSize: 11 }
Item { Layout.fillWidth: true }
Label {
text: s.sigma !== undefined ? s.sigma : "—"
color: Theme.headingColor
font.pixelSize: 15; font.weight: Font.Bold
Layout.alignment: Qt.AlignRight
font.pixelSize: 13; font.weight: Font.Bold
}
}
// 3-Sigma Row
RowLayout {
Layout.fillWidth: true
Label { text: "3σ Value"; color: Theme.bodyColor; font.pixelSize: 11 }
Item { Layout.fillWidth: true }
Label {
text: s.threeSigma !== undefined ? s.threeSigma : "—"
color: Theme.bodyColor
font.pixelSize: 12; font.weight: Font.Medium
Layout.alignment: Qt.AlignRight
}
}
}
}
Item { height: 8 }
Item { height: 12 }
Rectangle { Layout.fillWidth: true; height: 1; color: Theme.cardBorder }
Item { height: 8 }
Item { height: 12 }
// ── DISPLAY ───────────────────────────────────────────────────────────
Label {
@@ -136,7 +138,8 @@ ColumnLayout {
font.pixelSize: 10
font.letterSpacing: 1.8
font.weight: Font.Medium
bottomPadding: 4
topPadding: 6
bottomPadding: 8
}
CheckBox {
@@ -164,9 +167,9 @@ ColumnLayout {
}
}
Item { height: 8 }
Item { height: 12 }
Rectangle { Layout.fillWidth: true; height: 1; color: Theme.cardBorder }
Item { height: 8 }
Item { height: 12 }
// ── THRESHOLDS ────────────────────────────────────────────────────────
Label {
@@ -175,10 +178,16 @@ ColumnLayout {
font.pixelSize: 10
font.letterSpacing: 1.8
font.weight: Font.Medium
bottomPadding: 4
topPadding: 6
bottomPadding: 8
}
Label { text: "Set Point (°C)"; color: Theme.bodyColor; font.pixelSize: 11 }
Label {
text: "Set Point (°C)"
color: Theme.bodyColor
font.pixelSize: 11
bottomPadding: 3
}
TextField {
id: spField
Layout.fillWidth: true
@@ -198,9 +207,14 @@ ColumnLayout {
onEditingFinished: pushThresholds()
}
Item { height: 4 }
Item { height: 10 }
Label { text: "Margin (±°C)"; color: Theme.bodyColor; font.pixelSize: 11 }
Label {
text: "Margin (±°C)"
color: Theme.bodyColor
font.pixelSize: 11
bottomPadding: 3
}
TextField {
id: mgField
Layout.fillWidth: true
@@ -220,7 +234,7 @@ ColumnLayout {
onEditingFinished: pushThresholds()
}
Item { height: 4 }
Item { height: 10 }
CheckBox {
id: autoCheck