Skip to content

Features/object tag issue explorer - #25

Merged
fwrise merged 7 commits into
RI-SE:mainfrom
BastianHavers:features/objectTagIssueExplorer
Jun 24, 2026
Merged

Features/object tag issue explorer#25
fwrise merged 7 commits into
RI-SE:mainfrom
BastianHavers:features/objectTagIssueExplorer

Conversation

@BastianHavers

Copy link
Copy Markdown
Contributor

Editable object/frame tags, tag generation from inspection, and sidebar overhaul

This PR adds first-class support for editing object tags, moves the inspection workflow into the tag system, and cleans up the sidebar layout.

Editable object tags

Object tags (object_data.vec entries) can now be added and removed from the UI, not just read from the input JSON. Additions and removals are undoable via the standard Ctrl+Z/Ctrl+Y stack. On save, the updated tag state is written back to the OpenLabel JSON.

Sidebar tag tree

The previous QListWidget for frame tags has been replaced with a QTreeWidget that shows both frame tags and object tags for the current frame. Clicking a tag expands it to reveal a detail row with a Remove button. The expanded state is preserved while navigating frames. The Delete key shortcut continues to work on the selected item. The "Frame Issues" panel that was previously embedded in the bottom playback bar has been removed.

Inspection as tag generation

"Perform inspection" has been removed from the Edit menu. Instead, the Object Tag & Warnings Explorer (View menu) now contains a "Generate additional tags" button. This runs the same ghost-detection and double-detection logic, but stores the results as ghost_detection and double_detection object tags directly on the affected objects, so they persist to JSON on save. Re-running generation is safe; tags are treated as a set and existing entries are not duplicated. Newly generated tag names appear immediately in the "Select tags to display" dropdown without closing the dialog.

Detection functions now return object IDs alongside frame indices (detect_ghost_frames returns dict[str, list[int]], detect_double_frames returns dict[int, list[str]]) so the tag store knows which object each detection belongs to.

Tests

12 new unit tests for add_object_tag / remove_object_tag. Existing inspection service tests updated to match the new return types. All 183 tests pass.

@fwrise
fwrise merged commit b69ad90 into RI-SE:main Jun 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants