feat(ui): refine AboutDialog layout and add nav pill tooltips

This commit is contained in:
jack
2026-07-09 13:56:48 -07:00
parent 4ee139ad8f
commit 2fe8aef805
2 changed files with 61 additions and 47 deletions
+27 -12
View File
@@ -26,6 +26,8 @@ Rectangle {
}
}
property bool memoryRead: false
property bool waferDetected: false
// TODO P2.2: add `property bool waferLicensed: false`; set it in
@@ -213,9 +215,24 @@ Rectangle {
ListModel {
id: pillModel
ListElement { label: "STATUS"; icon: "Tabs/icons/status.svg"; expandW: 86 }
ListElement { label: "DATA"; icon: "Tabs/icons/data.svg"; expandW: 66 }
ListElement { label: "MAP"; icon: "Tabs/icons/map.svg"; expandW: 58 }
ListElement {
label: "STATUS"
icon: "Tabs/icons/status.svg"
expandW: 86
desc: "Monitor real-time device connection, serial communication, and execute wafer actions."
}
ListElement {
label: "DATA"
icon: "Tabs/icons/data.svg"
expandW: 66
desc: "Manage, review, compare (DTW), and split historical sensor data records."
}
ListElement {
label: "MAP"
icon: "Tabs/icons/map.svg"
expandW: 58
desc: "Visualize spatial sensor readings on a 2D thin-plate spline RBF interpolated heatmap."
}
}
RowLayout {
@@ -227,15 +244,6 @@ Rectangle {
model: pillModel
delegate: Button {
id: pillBtn
// TODO P3.1: lock MAP pill (index 2) when no license:
// `enabled: index !== 2 || licenseModel.licenses.length > 0`
// and dim icon/label when disabled. licensesChanged
// notify already fires on Load License → unlocks live,
// no restart. Rule is "any valid license" (not
// per-wafer): Map also replays CSVs with no wafer
// attached. Also gate the Map Loader (see TODO at the
// StackLayout below) and the auto-switch at
// onParsedDataReady. See plan §3.1.
checked: root.selectedTabIndex === index
flat: true
Layout.fillWidth: true
@@ -305,6 +313,11 @@ Rectangle {
}
}
AppToolTip {
visible: pillBtn.hovered
text: "<b>" + model.label + "</b>: " + model.desc
}
onClicked: root.selectedTabIndex = index
}
}
@@ -598,6 +611,8 @@ Rectangle {
UtilityFooter {
id: utilFooter
Layout.fillWidth: true
settingsPopup: settingsPopup
aboutDialog: aboutDialog
}
}
}