DeepLabCut / DeepLabCut/DeepLabCut-live-GUI

Refactor: settings persistence

未关闭
#113 0 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

@C-Achard 已经在做这个了。

开始于 2026年8月14日。

config enhancement gui
主要语言
Python
星标
72
派生
28
平均合并
1 天 10 小时
30 天内合并 PR
2

描述

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

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。