v1.2.0
Improve dataset state management, undo/redo behavior, project close flows, and annotation workflows across classification, localization, description, and dense description. Add broader GUI regression coverage and polish media and editor interactions.
What's new
- Centralized dataset runtime state around the Dataset Explorer flow
- Improved undo/redo behavior for dataset and annotation mutations
- Better dataset header inspector editing and JSON preview handling
- Safer unsaved-changes workflow when closing projects
- Immediate manual-save behavior in Classification
- Autosave support in Description
- Improved Localization smart annotation, head/label management, and label color handling
- Chronological ordering guarantees for Dense Description and Localization events after add/edit/delete
- Updated media controls, including mute support
- Broader GUI regression coverage across lifecycle, explorer, media, history, and mode workflows
Fixes and polish
- Fixed dense description removal behavior
- Improved tab visibility and tab-removal behavior in editor panels
- Refined controller boundaries and signal-based coordination across modules
- Updated tests and workflow coverage for recent projects, dataset explorer behavior, and mode-specific interactions
Commits:
- Merge pull request #11 from OpenSportsLab/dev-silvio
- Fix dense description test: use on_media_position_changed instead of mocking player.position
- Copilot advise: rename question in dialog
- feat(localization): Adjust button styling and hide tab bar when only one tab remains
- feat(localization): Implement label color management and UI integration
- feat(classification): Implement head management with add, rename, and delete functionalities
- feat(classification): Hide training tab and refactor tab removal logic
- feat(localization): Enhance localization inference with head context and configuration management
- feat(localization): Enhance smart event handling and UI interactions
- Refactor Localization and Classification Controllers
- fix: dense desription removal was not working
- feat: Ensure chronological order of dense and localization events after add, modify, and delete operations
- feat: Enhance Dense Description module with improved signal handling and controller API
- feat: Enhance Description module with improved signal handling and API methods
- feat: Improve column layout handling in DenseAnnotationPanel with retry mechanism
- feat: Add mute button with icon and tooltip to MediaCenterPanel
- Refactor tests to use dataset_explorer_controller directly
- feat: Refactor media handling by removing QMediaPlayer dependencies and implementing signal-based playback control
- feat: Enhance dense description functionality with new event handling and UI updates
- feat: Enable immediate saving of manual annotations and update confirm button visibility in ClassificationAnnotationPanel
What's Changed
- Refactor dataset state management and stabilize annotation workflows across all modes by @SilvioGiancola in #11
Full Changelog: v1.1.6.1...v1.2.0