Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 3 additions & 33 deletions apps/arstack_studio/qml/FirmwarePanel.qml
Original file line number Diff line number Diff line change
Expand Up @@ -41,38 +41,6 @@ SurfacePanel {
}
}

component DarkComboBox: ComboBox {
id: combo
implicitHeight: 40
font.family: panel.uiFont
font.pixelSize: 11
leftPadding: 12
rightPadding: 34
contentItem: Text {
leftPadding: 2
rightPadding: 2
text: combo.displayText
color: combo.enabled ? panel.theme.text : panel.theme.muted2
font: combo.font
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
indicator: Label {
x: combo.width - width - 12
y: (combo.height - height) / 2
text: "⌄"
color: combo.enabled ? panel.theme.textSoft : panel.theme.muted2
font.family: panel.uiFont
font.pixelSize: 13
}
background: Rectangle {
radius: 7
color: combo.hovered ? panel.theme.raisedHover : panel.theme.surface2
border.width: 1
border.color: combo.activeFocus ? panel.theme.accent : panel.theme.line
}
}

Component.onCompleted: if (panel.session) panel.session.requestRefreshPorts()

ColumnLayout {
Expand Down Expand Up @@ -219,7 +187,9 @@ SurfacePanel {
RowLayout {
Layout.fillWidth: true
spacing: 8
DarkComboBox {
StudioDarkComboBox {
theme: panel.theme
uiFont: panel.uiFont
id: firmwarePort
Layout.preferredWidth: 205
model: panel.device.ports
Expand Down
4 changes: 3 additions & 1 deletion apps/arstack_studio/qml/Main.qml
Original file line number Diff line number Diff line change
Expand Up @@ -789,7 +789,9 @@ ApplicationWindow {
CalmButton { theme: studioTheme; uiFont: root.uiFont; text: "50"; implicitWidth: 44; onClicked: root.setFrequencyValue(50) }
CalmButton { theme: studioTheme; uiFont: root.uiFont; text: "60"; implicitWidth: 44; onClicked: root.setFrequencyValue(60) }
Rectangle { width: 1; height: 24; color: studioTheme.lineSoft }
CheckBox {
StudioDarkCheckBox {
theme: studioTheme
uiFont: root.uiFont
enabled: root.signalFrequency > 0
checked: root.phaseLink
text: "3-phase link"
Expand Down
7 changes: 6 additions & 1 deletion apps/arstack_studio/qml/PtpExpertPanel.qml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ SurfacePanel {

readonly property string activeRole: panel.device.ptpRole
readonly property bool sourceRole: activeRole === "SOURCE"
readonly property string svTimingEvidence: panel.device.smpSynchSimulated
? "SIMULATED FLAG · sample clock not necessarily synchronized"
: panel.device.smpSynchMeasured
? "MEASURED SYNC FLAG · verify sample-phase evidence independently"
: "FREE-RUN / UNQUALIFIED · PTP packets do not prove SV sample lock"
Comment on lines +59 to +61

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not label clock acquisition as free-running

When a TIME_RECEIVER is ACQUIRING, smpSynchMeasured remains false until enough qualified samples establish lock, but PtpClockDiscipline::observe() is already issuing phase or frequency corrections. This branch therefore displays FREE-RUN for a clock that is actively being disciplined, potentially misleading an operator assessing timing behavior; use only UNQUALIFIED here or derive the wording from ptpDiscipline.

Useful? React with 👍 / 👎.

readonly property bool receiverRole: activeRole === "RECEIVER"
readonly property bool sourceEvidence: Number(panel.device.ptpAnnounceSent) > 0
&& Number(panel.device.ptpSyncSent) > 0
Expand Down Expand Up @@ -277,7 +282,7 @@ SurfacePanel {
}
Label {
Layout.fillWidth: true
text: "AUTO = measured evidence; 0 / 1 / 2 = on-wire simulation flag only. PTP packets and sampling clock are separate."
text: panel.svTimingEvidence + "\nAUTO uses measured evidence; 0 / 1 / 2 only simulates the on-wire flag."
wrapMode: Text.WordWrap
color: panel.theme.textSoft
font.family: panel.uiFont
Expand Down
4 changes: 3 additions & 1 deletion apps/arstack_studio/qml/QualityEditor.qml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,9 @@ RowLayout {
}
}

ComboBox {
StudioDarkComboBox {
theme: editor.theme
uiFont: editor.uiFont
id: presetBox
implicitWidth: editor.compact ? 98 : 108
model: ["Good", "Invalid", "Questionable", "Test"]
Expand Down
16 changes: 12 additions & 4 deletions apps/arstack_studio/qml/SignalMatrix.qml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Rectangle {
id: magnitudeMenu
background: Rectangle { color: matrix.theme.raised; radius: 8; border.color: matrix.theme.line }
MenuItem {
text: "Equal ABC values to " + signalRow.sid
text: "Equal Value · A/B/C = " + signalRow.sid
enabled: signalRow.rowIndex < 3
onTriggered: matrix.controller.equalGroupMagnitudes(matrix.groupIndex, signalRow.rowIndex)
contentItem: Label { text: parent.text; color: matrix.theme.text; font.family: matrix.uiFont; font.pixelSize: 12 }
Expand All @@ -139,14 +139,14 @@ Rectangle {
id: phaseMenu
background: Rectangle { color: matrix.theme.raised; radius: 8; border.color: matrix.theme.line }
MenuItem {
text: "Equal ABC angles to " + signalRow.sid
text: "Equal Angle · A/B/C = " + signalRow.sid
enabled: signalRow.rowIndex < 3
onTriggered: matrix.controller.equalGroupAngles(matrix.groupIndex, signalRow.rowIndex)
contentItem: Label { text: parent.text; color: matrix.theme.text; font.family: matrix.uiFont; font.pixelSize: 12 }
background: Rectangle { color: parent.highlighted ? matrix.theme.accentSoft : "transparent" }
}
MenuItem {
text: "Balance ABC angles (120 degrees)"
text: "Balance Angle · 120° from " + signalRow.sid
enabled: signalRow.rowIndex < 3
onTriggered: matrix.controller.balanceGroupAngles(matrix.groupIndex, signalRow.rowIndex)
contentItem: Label { text: parent.text; color: matrix.theme.text; font.family: matrix.uiFont; font.pixelSize: 12 }
Expand Down Expand Up @@ -195,7 +195,9 @@ Rectangle {
anchors.rightMargin: 9
spacing: 6

CheckBox {
StudioDarkCheckBox {
theme: matrix.theme
uiFont: matrix.uiFont
Layout.preferredWidth: 25
Layout.alignment: Qt.AlignVCenter
checked: signalRow.channelEnabled
Expand Down Expand Up @@ -227,6 +229,9 @@ Rectangle {

NumericField {
id: magnitudeField
ToolTip.visible: hovered && !activeFocus
ToolTip.delay: 650
ToolTip.text: "Right-click: Equal Value (set phases A/B/C to this magnitude)"
MouseArea {
anchors.fill: parent
z: 5
Expand Down Expand Up @@ -282,6 +287,9 @@ Rectangle {

NumericField {
id: phaseField
ToolTip.visible: hovered && !activeFocus
ToolTip.delay: 650
ToolTip.text: "Right-click: Equal Angle or Balance phases A/B/C by 120°"
MouseArea {
anchors.fill: parent
z: 5
Expand Down
Loading