Rework radar system
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
"""Builder for switch timing and combo-selection settings section."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from PyQt6.QtWidgets import (
|
||||
QButtonGroup,
|
||||
QComboBox,
|
||||
QFormLayout,
|
||||
QGroupBox,
|
||||
QHBoxLayout,
|
||||
@@ -13,64 +12,71 @@ from PyQt6.QtWidgets import (
|
||||
QVBoxLayout,
|
||||
)
|
||||
|
||||
def build_switch_group(owner) -> QGroupBox:
|
||||
from python_app.gui.controllers.sections.views import SwitchView, SectionView
|
||||
from python_app.models.gui_profile_schema import GuiStateModel
|
||||
from python_app.models.run_config_schema import RunConfigModel
|
||||
|
||||
|
||||
def build_switch_group(config: RunConfigModel, gui: GuiStateModel) -> SwitchView:
|
||||
"""Create switch timing field and two explicit combo-selection modes."""
|
||||
group = QGroupBox("Switches")
|
||||
view = SectionView(QGroupBox("Switches"))
|
||||
group = view.group
|
||||
layout = QVBoxLayout(group)
|
||||
layout.setSpacing(8)
|
||||
|
||||
switch_defaults = owner._gui_defaults.switches
|
||||
switch_defaults = gui.switches
|
||||
|
||||
global_form = QFormLayout()
|
||||
global_form.setFieldGrowthPolicy(QFormLayout.FieldGrowthPolicy.AllNonFixedFieldsGrow)
|
||||
owner._settling_ms = QLineEdit(str(owner._defaults_config.runtime.settling_ms))
|
||||
global_form.addRow("Settling ms", owner._settling_ms)
|
||||
settling_ms = view.add("_settling_ms", QLineEdit(str(config.runtime.settling_ms)))
|
||||
global_form.addRow("Settling ms", settling_ms)
|
||||
layout.addLayout(global_form)
|
||||
|
||||
owner._combos_text = QLineEdit(str(switch_defaults.combos_text))
|
||||
owner._combos_text.setPlaceholderText("empty = full matrix, or input:output,input:output")
|
||||
owner._run_combos_select_button = QPushButton("Select")
|
||||
owner._run_combos_select_button.setCheckable(True)
|
||||
combos_text = view.add("_combos_text", QLineEdit(str(switch_defaults.combos_text)))
|
||||
combos_text.setPlaceholderText("empty = full matrix, or input:output,input:output")
|
||||
run_combos_select_button = QPushButton("Select")
|
||||
run_combos_select_button.setCheckable(True)
|
||||
|
||||
combos_row = QHBoxLayout()
|
||||
combos_row.setSpacing(8)
|
||||
combos_row.addWidget(QLabel("Run combos"))
|
||||
combos_row.addWidget(owner._combos_text, stretch=1)
|
||||
combos_row.addWidget(owner._run_combos_select_button)
|
||||
combos_row.addWidget(combos_text, stretch=1)
|
||||
combos_row.addWidget(run_combos_select_button)
|
||||
layout.addLayout(combos_row)
|
||||
|
||||
owner._single_combo_output = QLineEdit(str(switch_defaults.single_output))
|
||||
owner._single_combo_output.setPlaceholderText("0")
|
||||
owner._single_combo_input = QLineEdit(str(switch_defaults.single_input))
|
||||
owner._single_combo_input.setPlaceholderText("0")
|
||||
owner._single_combo_select_button = QPushButton("Select")
|
||||
owner._single_combo_select_button.setCheckable(True)
|
||||
owner._next_combo_button = QPushButton("Next combination")
|
||||
owner._next_combo_button.setToolTip("Advance through input/output pairs and redraw the selected B-scan.")
|
||||
single_combo_output = view.add("_single_combo_output", QLineEdit(str(switch_defaults.single_output)))
|
||||
single_combo_output.setPlaceholderText("0")
|
||||
single_combo_input = view.add("_single_combo_input", QLineEdit(str(switch_defaults.single_input)))
|
||||
single_combo_input.setPlaceholderText("0")
|
||||
single_combo_select_button = QPushButton("Select")
|
||||
single_combo_select_button.setCheckable(True)
|
||||
|
||||
single_row = QHBoxLayout()
|
||||
single_row.setSpacing(8)
|
||||
single_row.addWidget(QLabel("Single combo"))
|
||||
single_row.addWidget(QLabel("Input"))
|
||||
single_row.addWidget(owner._single_combo_input)
|
||||
single_row.addWidget(single_combo_input)
|
||||
single_row.addWidget(QLabel("Output"))
|
||||
single_row.addWidget(owner._single_combo_output)
|
||||
single_row.addWidget(owner._single_combo_select_button)
|
||||
single_row.addWidget(owner._next_combo_button)
|
||||
single_row.addWidget(single_combo_output)
|
||||
single_row.addWidget(single_combo_select_button)
|
||||
layout.addLayout(single_row)
|
||||
|
||||
owner._combo_select_group = QButtonGroup(group)
|
||||
owner._combo_select_group.setExclusive(True)
|
||||
owner._combo_select_group.addButton(owner._run_combos_select_button)
|
||||
owner._combo_select_group.addButton(owner._single_combo_select_button)
|
||||
combo_select_group = QButtonGroup(group)
|
||||
combo_select_group.setExclusive(True)
|
||||
combo_select_group.addButton(run_combos_select_button)
|
||||
combo_select_group.addButton(single_combo_select_button)
|
||||
|
||||
owner._run_combos_select_button.clicked.connect(lambda: owner._set_combo_selection_mode("text"))
|
||||
owner._single_combo_select_button.clicked.connect(lambda: owner._set_combo_selection_mode("single"))
|
||||
owner._next_combo_button.clicked.connect(owner._select_next_combo)
|
||||
# The live processing config has no combo: picking another one only changes which
|
||||
# B-scan is shown (and, outside matrix mode, the combo of the next run).
|
||||
owner._single_combo_output.editingFinished.connect(owner._on_bscan_display_combo_changed)
|
||||
owner._single_combo_input.editingFinished.connect(owner._on_bscan_display_combo_changed)
|
||||
owner._set_combo_selection_mode(str(switch_defaults.combo_mode))
|
||||
display_row = QHBoxLayout()
|
||||
display_row.addWidget(QLabel("B-scan pair"))
|
||||
display_combo = view.add("_display_combo", QComboBox())
|
||||
display_combo.setEnabled(False)
|
||||
display_row.addWidget(display_combo, stretch=1)
|
||||
next_combo_button = QPushButton("Next combination")
|
||||
next_combo_button.setEnabled(False)
|
||||
display_row.addWidget(next_combo_button)
|
||||
layout.addLayout(display_row)
|
||||
|
||||
return group
|
||||
return SwitchView(group=group, fields=view.fields, select_text=run_combos_select_button,
|
||||
select_single=single_combo_select_button, combos=combos_text,
|
||||
single_input=single_combo_input, single_output=single_combo_output,
|
||||
display_combo=display_combo, next_combo=next_combo_button)
|
||||
|
||||
Reference in New Issue
Block a user