refactor: modernize WaferMapTab layout and redesign ReadoutPanel statistics display
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user