Skip to content

Commit d3873d6

Browse files
Update README.md
1 parent 3195721 commit d3873d6

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

annotation_tool/ui/localization/README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,55 @@ ui/localization/
2222
├── __init__.py # Assembles and exports LocRightPanel
2323
├── spotting_controls.py# Tabbed interface for creating new events (Spotting)
2424
└── annotation_table.py # Table view for listing and editing existing events
25+
26+
```
27+
28+
---
29+
30+
## 📝 Component Descriptions
31+
32+
### 1. Left Sidebar (Common Component)
33+
34+
*Note: The left sidebar is now a shared component located in `ui/common/clip_explorer.py`.*
35+
36+
* **Function:** Displays the hierarchical list of "Clips / Sequences".
37+
* **Features:** Handles filtering (Show Labelled/No Labelled) and standard project file operations (Save, Load, Export).
38+
39+
### 2. `media_player/` (Center Area)
40+
41+
This package defines the `LocCenterPanel`, handling all visual aspects of the video.
42+
43+
* **`preview.py` (MediaPreviewWidget)**:
44+
* Handles the low-level `QMediaPlayer` and `QAudioOutput` logic.
45+
* Ensures video rendering and audio synchronization.
46+
47+
48+
* **`timeline.py` (TimelineWidget)**:
49+
* **Core Feature**: A custom-painted widget representing the video duration.
50+
* **Visual Markers**: Draws colored lines on the track where events have occurred.
51+
* **Zoom System**: Supports dynamic zooming to expand the slider for frame-perfect navigation.
52+
* **Auto-Scroll**: Logic to keep the playhead centered during playback when zoomed in.
53+
54+
55+
* **`controls.py` (PlaybackControlBar)**:
56+
* Provides granular navigation buttons: `<< 1s`, `>> 1s`, `Prev/Next Clip`.
57+
* Variable playback speed controls (0.25x - 4.0x).
58+
59+
60+
61+
### 3. `event_editor/` (Right Sidebar)
62+
63+
This package defines the `LocRightPanel`, handling the data entry workflow.
64+
65+
* **`spotting_controls.py`**:
66+
* **`AnnotationManagementWidget`**: A tabbed container generated dynamically from the project Schema (JSON).
67+
* **`HeadSpottingPage`**: A grid of buttons inside each tab. Clicking a button triggers an event creation at the current timestamp.
68+
* **Context Menus**: Supports right-clicking tabs to rename categories (Heads) or delete them.
69+
70+
71+
* **`annotation_table.py`**:
72+
* **`AnnotationTableWidget`**: Displays a detailed list of all recorded events for the active video.
73+
* **In-place Editing**: Implements a custom Model (`AnnotationTableModel`) allowing users to double-click cells to directly edit the Time, Category, or Label.
74+
* **Sync**: Selecting a row automatically seeks the video player to that timestamp.
75+
76+

0 commit comments

Comments
 (0)