update examples to fix path issues
This commit is contained in:
@@ -15,16 +15,11 @@ from PyQt5.QtWidgets import (
|
||||
QWidget,
|
||||
)
|
||||
|
||||
from viz.render_2d import ArrowBackground
|
||||
from orisys.finger import DEFAULT_FINGER_EXPORT_DIR
|
||||
from viz.render_2d import ArrowBackground
|
||||
|
||||
from ..layout import DashboardLayout, LAYOUT
|
||||
from ..mesh_view_state import MeshViewState
|
||||
from ..presets import (
|
||||
SensorBundlePreset,
|
||||
discover_sensor_bundle_presets,
|
||||
sensor_bundle_preset_index,
|
||||
)
|
||||
from ..transport_icons import reset_icon, transport_icon
|
||||
|
||||
_PLAY_PAUSE_BUTTON_NAME = "btnPlayPause"
|
||||
@@ -91,7 +86,7 @@ class SettingsPanelWidget(QWidget):
|
||||
self.show_log_check = QCheckBox("Show log panel")
|
||||
self.show_log_check.setChecked(show_log)
|
||||
self.show_log_check.toggled.connect(self.log_visibility_changed.emit)
|
||||
self.show_log_check.hide()
|
||||
root.addWidget(self.show_log_check)
|
||||
|
||||
self.show_flow_arrows_check = QCheckBox("Show displacement arrows")
|
||||
self.show_flow_arrows_check.setChecked(self._mesh_state.flow_arrows_enabled)
|
||||
@@ -139,38 +134,36 @@ class SettingsPanelWidget(QWidget):
|
||||
self._video_file_path = ""
|
||||
self._updating_camera_options = False
|
||||
|
||||
root.addWidget(self._caption("Sensor bundle"))
|
||||
bundle_row = QHBoxLayout()
|
||||
bundle_row.setSpacing(6)
|
||||
self.sensor_bundle_combo = QComboBox()
|
||||
self.sensor_bundle_combo.setToolTip("Select a finger sensor bundle")
|
||||
self._bundle_presets = discover_sensor_bundle_presets()
|
||||
for preset in self._bundle_presets:
|
||||
self.sensor_bundle_combo.addItem(preset.label, preset)
|
||||
self.sensor_bundle_combo.addItem("Custom…", None)
|
||||
self._updating_bundle_combo = False
|
||||
self.sensor_bundle_combo.currentIndexChanged.connect(self._on_bundle_combo_changed)
|
||||
bundle_row.addWidget(self.sensor_bundle_combo, 1)
|
||||
self.btn_browse_finger_assets = QPushButton("…")
|
||||
self.btn_browse_finger_assets.setFixedWidth(32)
|
||||
self.btn_browse_finger_assets.setToolTip("Browse sensor bundle folder")
|
||||
self.btn_browse_finger_assets.clicked.connect(self.browse_finger_assets_requested.emit)
|
||||
bundle_row.addWidget(self.btn_browse_finger_assets)
|
||||
root.addLayout(bundle_row)
|
||||
|
||||
root.addWidget(self._caption("Config"))
|
||||
config_row = QHBoxLayout()
|
||||
config_row.setSpacing(6)
|
||||
self.config_edit = QLineEdit("finger")
|
||||
self.config_edit.hide()
|
||||
config_row.addWidget(self.config_edit, 1)
|
||||
self.btn_browse_config = QPushButton("…")
|
||||
self.btn_browse_config.hide()
|
||||
self.btn_browse_config.setFixedWidth(32)
|
||||
self.btn_browse_config.setToolTip("Browse config JSON")
|
||||
self.btn_browse_config.clicked.connect(self.browse_config_requested.emit)
|
||||
config_row.addWidget(self.btn_browse_config)
|
||||
root.addLayout(config_row)
|
||||
|
||||
# Optional calibration path is kept for future re-enablement but hidden for now.
|
||||
self.cal_edit = QLineEdit("")
|
||||
self.cal_edit.setPlaceholderText("Optional calibration path")
|
||||
self.cal_edit.hide()
|
||||
|
||||
root.addWidget(self._caption("Finger assets"))
|
||||
finger_assets_row = QHBoxLayout()
|
||||
finger_assets_row.setSpacing(6)
|
||||
self.finger_assets_edit = QLineEdit(DEFAULT_FINGER_EXPORT_DIR)
|
||||
self.finger_assets_edit.hide()
|
||||
self._apply_bundle_preset(self._bundle_presets[0])
|
||||
self.finger_assets_edit.setPlaceholderText("Blender export bundle directory")
|
||||
finger_assets_row.addWidget(self.finger_assets_edit, 1)
|
||||
self.btn_browse_finger_assets = QPushButton("…")
|
||||
self.btn_browse_finger_assets.setFixedWidth(32)
|
||||
self.btn_browse_finger_assets.setToolTip("Browse finger asset directory")
|
||||
self.btn_browse_finger_assets.clicked.connect(self.browse_finger_assets_requested.emit)
|
||||
finger_assets_row.addWidget(self.btn_browse_finger_assets)
|
||||
root.addLayout(finger_assets_row)
|
||||
|
||||
root.addWidget(self._caption("CSV save directory"))
|
||||
csv_dir_row = QHBoxLayout()
|
||||
csv_dir_row.setSpacing(6)
|
||||
@@ -344,18 +337,16 @@ class SettingsPanelWidget(QWidget):
|
||||
|
||||
def set_config_path(self, value: str) -> None:
|
||||
self.config_edit.setText(value)
|
||||
self._sync_bundle_combo_from_paths()
|
||||
|
||||
def set_calibration_path(self, value: str) -> None:
|
||||
self.cal_edit.setText(value or "")
|
||||
|
||||
def set_finger_export_dir(self, value: str) -> None:
|
||||
self.finger_assets_edit.setText(value)
|
||||
self._sync_bundle_combo_from_paths()
|
||||
|
||||
def set_finger_export_dir_enabled(self, enabled: bool) -> None:
|
||||
self.finger_assets_edit.setEnabled(enabled)
|
||||
self.btn_browse_finger_assets.setEnabled(enabled)
|
||||
self.sensor_bundle_combo.setEnabled(enabled)
|
||||
|
||||
def set_csv_save_dir(self, value: str) -> None:
|
||||
self.csv_dir_edit.setText(value)
|
||||
@@ -396,33 +387,6 @@ class SettingsPanelWidget(QWidget):
|
||||
return
|
||||
self.csv_record_toggled.emit(not self._csv_recording)
|
||||
|
||||
def _apply_bundle_preset(self, preset: SensorBundlePreset) -> None:
|
||||
self.config_edit.setText(preset.config)
|
||||
self.finger_assets_edit.setText(preset.export_dir)
|
||||
|
||||
def _on_bundle_combo_changed(self, _index: int) -> None:
|
||||
if self._updating_bundle_combo:
|
||||
return
|
||||
preset = self.sensor_bundle_combo.currentData()
|
||||
if isinstance(preset, SensorBundlePreset):
|
||||
self._apply_bundle_preset(preset)
|
||||
|
||||
def _sync_bundle_combo_from_paths(self) -> None:
|
||||
idx = sensor_bundle_preset_index(
|
||||
self.config_edit.text(),
|
||||
self.finger_assets_edit.text(),
|
||||
self._bundle_presets,
|
||||
)
|
||||
if idx < 0:
|
||||
idx = self.sensor_bundle_combo.findData(None)
|
||||
if idx < 0:
|
||||
return
|
||||
self._updating_bundle_combo = True
|
||||
self.sensor_bundle_combo.blockSignals(True)
|
||||
self.sensor_bundle_combo.setCurrentIndex(idx)
|
||||
self.sensor_bundle_combo.blockSignals(False)
|
||||
self._updating_bundle_combo = False
|
||||
|
||||
def _emit_arrow_background_changed(self, _index: int) -> None:
|
||||
value = self.arrow_background_combo.currentData()
|
||||
if value:
|
||||
@@ -449,15 +413,6 @@ class SettingsPanelWidget(QWidget):
|
||||
def finger_export_dir(self) -> str:
|
||||
return self.finger_assets_edit.text().strip()
|
||||
|
||||
def sensor_bundle_dir(self) -> str:
|
||||
preset = self.sensor_bundle_combo.currentData()
|
||||
if isinstance(preset, SensorBundlePreset):
|
||||
return preset.bundle_dir
|
||||
config = self.config_path()
|
||||
if config.endswith("/sensor.json") or config.endswith("\\sensor.json"):
|
||||
return config.rsplit("/", 1)[0].rsplit("\\", 1)[0]
|
||||
return ""
|
||||
|
||||
def csv_save_dir(self) -> str:
|
||||
return self.csv_dir_edit.text().strip()
|
||||
|
||||
@@ -465,7 +420,6 @@ class SettingsPanelWidget(QWidget):
|
||||
"""Serialize user-facing settings suitable for preference.json."""
|
||||
return {
|
||||
"video_source": self.video_source(),
|
||||
"sensor_bundle_dir": self.sensor_bundle_dir(),
|
||||
"config_path": self.config_path(),
|
||||
"finger_assets_dir": self.finger_export_dir(),
|
||||
"csv_save_dir": self.csv_save_dir(),
|
||||
@@ -511,8 +465,6 @@ class SettingsPanelWidget(QWidget):
|
||||
if isinstance(assets, str) and assets.strip():
|
||||
self.set_finger_export_dir(assets.strip())
|
||||
|
||||
self._sync_bundle_combo_from_paths()
|
||||
|
||||
csv_dir = state.get("csv_save_dir")
|
||||
if isinstance(csv_dir, str) and csv_dir.strip():
|
||||
self.set_csv_save_dir(csv_dir.strip())
|
||||
|
||||
Reference in New Issue
Block a user