DeepLabCut / DeepLabCut/DeepLabCut-live-GUI

Refactor: settings persistence

Offen
#113 0 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

@C-Achard arbeitet bereits daran.

Seit 14.8.2026.

config enhancement gui
Vorherrschende Sprache
Python
Sterne
72
Forks
28
Ø Merge
1 T. 10 Std.
Gemergte PRs (30 T.)
2

Beschreibung

Improve configuration persistence and recovery UX

Goal

Prevent loss of unsaved experiment settings while keeping portable configuration separate from QSettings UI preferences.
Unsaved changes should be persisted in a temp recovery JSON, which the user can access.
This is to prevent settings being buried in QSettings, and allow for better inspection.

Persist in the recovery JSON

Autosave the complete portable experiment configuration:

  • multi_camera
    • Camera list, including single-camera setups
    • Backend and device identity
    • Resolution, FPS, exposure, gain, crop, rotation
    • Trigger and backend-specific properties
  • dlc
    • Model path and type
    • Device, precision, resize, dynamic crop
    • Additional processor options
  • recording
    • Output directory
    • Filename and container
    • Codec and CRF
    • Fast encoding
  • bbox
  • visualization
  • Not part of the schema yet:
    • Selected inference camera
    • Selected processor and enabled state
Keep in QSettings
  • Last explicit configuration path
  • Recovery config JSON path and maybe metadata
  • Recent configuration paths
  • Last directory used by file dialogs
  • Window geometry, dock layout, and theme (maybe)
  • Session name
  • Timestamp-based versus indexed run folder preference (or according to Session scope rework)
  • Other local UI preferences
Recovery behavior
  • Autosave modified configuration to a readable temporary JSON file
  • Include:
    • Schema version
    • Autosave timestamp
    • Associated explicit configuration path
  • Never overwrite the user’s explicit JSON file automatically
  • On startup, load the last valid explicit configuration best-effort
    • If a newer or different recovery file exists, offer:
      • Restore recovered configuration
      • Use saved configuration
      • Save recovery as...
  • Provide a way to open the recovery JSON file location
Unsaved config changes UX

Track whether the current UI differs from the last explicit save.

Before closing, loading another configuration, or replacing the current setup, show a warning message.

Additional low-effort UX improvements
  • Add a Recent configurations menu
  • Improve Save As for duplicating an experiment configuration
  • Extra validation?
  • Later consider a Start experiment action that starts preview, initializes inference, and optionally begins recording in a single click

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.