Skip to content

feat: add photo flagging system (pick/reject)#1272

Open
marceldenzer wants to merge 2 commits into
CyberTimon:mainfrom
marceldenzer:feature/flag-system
Open

feat: add photo flagging system (pick/reject)#1272
marceldenzer wants to merge 2 commits into
CyberTimon:mainfrom
marceldenzer:feature/flag-system

Conversation

@marceldenzer

Copy link
Copy Markdown

Summary

  • Adds Lightroom-style photo flagging: photos can be marked as picked or rejected
  • Flag/unflag via keyboard shortcuts (X = reject, U = unflag, pick is assignable in settings)
  • Flag buttons (Flag + FlagOff icons) placed next to the star rating in the editor bottom bar
  • Flag badge overlay (top-left corner) on library thumbnails showing the current flag state
  • Filter by flag status in the library view options dropdown (All / Flagged Only / Rejected Only / Unflagged Only)
  • Context menu submenu for flagging in both editor and thumbnail right-click menus
  • Flags are stored as tags (flag:picked / flag:rejected) using the existing tag infrastructure — no backend changes required
  • Optimistic UI updates for instant visual feedback
  • Full i18n support (English + German)

Test plan

  • Open an image in the editor and click the Flag / FlagOff button next to the stars — icon should turn green/red and toggle off on second click
  • Press X to reject, U to unflag — badge should appear/disappear on the thumbnail
  • Multi-select thumbnails and use context menu → Flag submenu to flag all at once
  • Use the filter dropdown in the library to filter by Flagged / Rejected / Unflagged
  • Verify flags persist after restarting the app
  • Check German and English UI strings

🤖 Generated with Claude Code

@marceldenzer marceldenzer requested a review from CyberTimon as a code owner June 10, 2026 18:44
- combine_datetime_with_offset: write offset inline into DateTimeOriginal
  and CreateDate (e.g. 2026:06:05 11:33:26+02:00) per EXIF 2.31 spec
- parse_offset_secs: strip surrounding quotes from offset string returned
  by kamadak-exif to prevent format errors
- get_creation_date_from_path: correctly convert local datetime to UTC
  before setting file mtime, fixing +2h offset on exported JPEGs
- Rawler fallback: read offset directly from RAW file when sidecar
  does not contain OffsetTime (backwards compatibility for old sidecars)

Fixes: File Modification Date/Time showing +2h on export
Fixes: DateTimeOriginal written without inline timezone offset

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@marceldenzer marceldenzer force-pushed the feature/flag-system branch from 6bfeaa0 to 9bd10bb Compare June 10, 2026 18:52
Adds Lightroom-style photo flagging with keyboard shortcuts, filter support, and UI in the editor bottom bar and library thumbnails.

- Flag/unflag photos as "picked" or "rejected" via keyboard shortcuts (X = reject, U = unflag, configurable pick)
- Flag buttons (Flag + FlagOff icons) placed next to star rating in the editor bottom bar
- Flag badge overlay (top-left) on library thumbnails to show flag state
- Filter by flag status in the library view options dropdown
- Context menu submenu for flagging in both editor and thumbnail contexts
- Flags stored as tags (flag:picked / flag:rejected) using existing tag infrastructure
- Optimistic UI updates for instant visual feedback
- Full i18n support (en + de)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@marceldenzer marceldenzer force-pushed the feature/flag-system branch from 9bd10bb to 7af35ad Compare June 10, 2026 18:53
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.

1 participant