feat(ui): bulk tag creation and tag UX polish (#29) #35

Merged
ValleyGeek merged 12 commits from 0.1.7/issue-29-bulk-tag-create into main 2026-06-10 04:23:33 +00:00
Member

Summary

Implements issue #29 — bulk workspace tag creation — plus related tag UX improvements developed on the same branch.

Closes #29

Features

  • Bulk Create button (left of New Tag) opens a multi-line dialog; one tag per non-empty line with per-line color swatches and validation
  • New Tag uses fourteen preset colors (red-first, gray/white/black last), random unused preset on open, and custom color picker
  • Tag creation without an open directory shows: A directory must be opened to create tags.
  • Theme-aware swatch borders (dark vs light) and readable sans-serif tag labels
  • TagManager.create_tags_bulk() and unit tests in tests/test_pr9_tags.py

Documentation

  • resources/help/USER_GUIDE.md — tagging workflow
  • README.md, docs/TECHNICAL_OUTLINE.md, docs/DESIGN.md
  • docs/DECISIONS.md — DR-018

Version

Source VERSION: 0.1.17 (0.1.8 → 0.1.17 across implementation commits)

Testing

  • ruff check / ruff format --check
  • pytest (tag tests and full suite verified during development)
## Summary Implements issue #29 — bulk workspace tag creation — plus related tag UX improvements developed on the same branch. Closes #29 ## Features - **Bulk Create** button (left of **New Tag**) opens a multi-line dialog; one tag per non-empty line with per-line color swatches and validation - **New Tag** uses fourteen preset colors (red-first, gray/white/black last), random unused preset on open, and custom color picker - Tag creation without an open directory shows: *A directory must be opened to create tags.* - Theme-aware swatch borders (dark vs light) and readable sans-serif tag labels - `TagManager.create_tags_bulk()` and unit tests in `tests/test_pr9_tags.py` ## Documentation - `resources/help/USER_GUIDE.md` — tagging workflow - `README.md`, `docs/TECHNICAL_OUTLINE.md`, `docs/DESIGN.md` - `docs/DECISIONS.md` — DR-018 ## Version Source VERSION: **0.1.17** (0.1.8 → 0.1.17 across implementation commits) ## Testing - `ruff check` / `ruff format --check` - `pytest` (tag tests and full suite verified during development)
Grok added 11 commits 2026-06-10 04:08:45 +00:00
Add a Bulk Create button left of New Tag that opens a multi-line dialog
with per-line color swatches. Core helpers validate newline-separated
names (skipping blanks, catching duplicates and conflicts) before
TagManager.create_tags_bulk persists them. Bump VERSION to 0.1.8.
New Tag and Bulk Create start disabled and follow workspace state via
set_create_tags_enabled(). Handlers also guard on both current root and
working DB before opening dialogs. Bump VERSION to 0.1.9.
Keep New Tag and Bulk Create always clickable. When no workspace is
open, both handlers show an informational dialog instead of disabling
the buttons. Bump VERSION to 0.1.10.
Use "A directory must be opened to create tags." for New Tag and Bulk
Create guards. Bump VERSION to 0.1.11.
Add black, white, cyan, brown, and gray to PRESET_TAG_COLORS (14 total).
New Tag dialog picks a random preset on open; bulk create cycles through
the palette as lines are added. Bump VERSION to 0.1.12.
random_preset_tag_color() excludes preset swatches already assigned to
workspace tags; when every preset is taken it falls back to the full
palette. New Tag passes existing tag colors into TagDialog. Bump VERSION
to 0.1.13.
Order swatches red through brown, then gray, white, and black. Bulk
create cycling and chip grid follow the new sequence. Bump VERSION to
0.1.14.
Inactive swatches use a dark border; active/selected swatches use a
light border in the tag panel, dialog chips, and bulk color rows. Bump
VERSION to 0.1.15.
Dark theme keeps dark inactive and light active borders; light theme
uses the opposite. Shared helpers drive panel swatches, dialog chips,
and bulk color rows. Tag panel repaints on theme change. Bump VERSION
to 0.1.16.
Add tag_name_font() with cross-platform family fallbacks (Segoe UI,
Roboto, Noto Sans, etc.) at medium weight. Apply to tag panel swatches,
viewer metadata labels, and grid badge overlays. Bump VERSION to 0.1.17.
docs: document bulk tag creation and tag UX (#29)
All checks were successful
CI / lint (pull_request) Successful in 6s
CI / test (pull_request) Successful in 57s
CI / nuitka-smoke (pull_request) Successful in 8m12s
6ada06fe7b
Update USER_GUIDE, README, TECHNICAL_OUTLINE, DESIGN, and DECISIONS
(DR-018) for Bulk Create, expanded palette, directory gate, theme-aware
swatches, and readable tag fonts.
docs: development-branch version format and PR-prep commit rules
All checks were successful
CI / lint (pull_request) Successful in 7s
CI / nuitka-smoke (pull_request) Successful in 58s
CI / test (pull_request) Successful in 1m1s
6424f79dba
Define dev VERSION as {main_ver}-{issue_type}.{issue#} during branch
work, require a dedicated PR-prep commit for user guide and repo docs,
and defer release 0.X.Y bumps to that final commit when compiled code
changed. Align docs/VERSIONING.md with AGENTS.md.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ai-collab/bulk-image-organizer!35
No description provided.