UI Functionality, Design, Detail, and Clarification #19

Closed
opened 2026-06-05 06:22:01 +00:00 by ValleyGeek · 4 comments
Owner

Persistent UI Elements

Main Toolbar

Vertically across top

  • Button: Grid
    • Activates Thumbnail Grid
  • Button: Duplicates ([Count of unique DUPES_* tags])
    • Activates Duplicate Manager
    • Displays Duplicate Container
    • Displays Tag Container
  • Button: Trash ([Count of items tagged with DELETE])
    • Activates Grid and filters by the delete tag
    • Displays Delete Confirmation Container
    • Hides the delete overlay allowing thumbnails to be viewed without obstruction
  • Button: Settings
    • Activates Settings Page
  • Button: Help
    • Activates Help Page
  • Button: Exit
    • Closes the workspace, cancelling active operations, and application

Sub Toolbar

Immediately below Main Toolbar

  • Button: Open Directory
    • Displays folder selection dialog
  • Button: Re-scan Directory
    • Initiates or cancels active scan
    • Button label should change to "Cancel Scan" while a scan is running (or be replaced with a normally hidden cancel button)
  • Text Box: Working directory
    • no text label
    • contains the open folder name
    • full path only while selected
    • read only field
  • Vertical Line Separator
  • Button: Sort By [active sort]
    • Display a drop-down list of sort options
  • Button: Sort Order [up arrow or down arrow based on active order]
    • Immediate toggles / reverses sort order when selected
  • Vertical Line Separator
  • Button|Toggle: Tag Filter | Opens a drop-down menu with input elements
    • Menu stays open until the Tag Filter button is selected a second time
    • Textbox: Search allows live filtering the tag list for matched term.
      • Uses *[INPUT]* to match any part of a tag name
    • Scroll-box List of all tags separated by non-selectable headers --Active-- and ``--Available--`
      • Clicking a tag moves it from the section it's in to the opposite
      • Tags are alphabetical in their respective section
    • Button|Toggle: Show Dupes
      • Adds --Dupes-- Header
      • Shows all available DUPE_ tags, allowing for selection in filter
    • Vertical Line Separator
    • Dynamic control container populated by active bench

Status Bar

Vertically Across Bottom

  • Active Task | Left
  • Progress Bar | Right
    • Only visible when an operation with progress is running

Workbench Container

The bulk of the program window; filling the space between the top toolbars, bottom status bar, and right vertical container.

  • Pupulated by the workbench specific UI elements.

Right Vertical Container

A narrow right-aligned column spanning the space between the Sub Toolbar and the `Status Bar

  • displays tool-sets applicable to the active workbench.
    • Tag Container
    • Label: Tags | Top Left of container
    • Button: Add Tag | Top Right of container
    • Container: Tags List | A scrollable space to hold sudo-buttons for each existing tag.
    • Dev Note: A tag in the UI is an alpha-numeric string overlayed on a color swatch. Effectively a rectangle with rounded corners and padding around a piece of text.
      • Allowed tag name characters are limited to the directory length and naming restrictions of the stricter of the supported OSs
    • Duplicate Container
    • Scrolling list of duplicate tags
      • Sorted numerically
      • Clicking a tag sets filter to that tag
    • Delete Confirmation Container
    • Button: Confirm Delete

Workbench UIs

Thumbnail Grid

Main Program View

Dynamic Controls

  • Thumbnail Size Slider

Duplicate Manager

  • Shows "No Duplicates Identified" with button "Run Duplicate Scan" instead of grid when no DUPE_ tags exist.
  • Defaults to Grid for the first available duplicate tag

Dynamic Controls

  • Button Scan for Duplicate Files
    • Identifies exact file duplicates and adds DUPE-FILE_# tag to match groups
    • Changes to "Cancel Scan" while run in progress
    • Vertical Line Separator
  • Button Scan for Visual Duplicates
    • Identifies similar images based on perceptual scan and adds DUPE_# tag to match groups
    • Changes to "Cancel Scan" while run in progress
  • Textbox Similarity
    • Defaults to 95%
    • Sets the threshold used for perceptual scan matches
  • Button: Grid
    • Displays up to 10 images in duplicate group sized to fit the available space
    • Scrolls for additional images
  • Button: Single
    • Uses the Image Viewer UI filtered to the duplicate group
    • "Esc" Keyboard Key returns to Grid view for the duplicate group

Image Viewer

A sub-workbench of other benches.

  • Dynamic Controls add to the controls of the primary open workbench
  • Only displays images of the active workbench and filters
  • Pressing the left or right arrow scrolls through the previous and next images in the active set
  • Pressing DEL tags the image as DELETE
  • Pressing Esc closes this sub-workbench and returns to the previous primary workbench view

Dynamic Controls

  • Button|Toggle: Carousel
    • Shows / Hides the previous image to the left and next image to the right of the active image at 25% scale
  • Button|Toggle: Filmstrip
    • Shows / Hides the filmstrip

Filmstrip

A horizontal bar across the bottom of the workbench containing a single row of thumbnails

  • Sorted by the active sort
  • The center image thumbnail is the active image
  • Images to the left and right are the previous and next images in the active set
  • Selecting an image from the filmstrip immediately makes it the active image
  • Stacked vertically on the left of the filmstrip are a pair of "size" buttons. Larger and Smaller.
    • Larger caps at 300px
    • Smaller floors at 75px
    • The height of the filmstrip adjusts dynamically to fit the current max image height
    • This is independent of the main grid thumbnail display size but still references the singular thumbnail blob
  • Render as many images from the set as can fit within the given row based on the

Settings Page

  • Grouped controls, toggles, and inputs for application settings

Help Page

  • Display "about" content followed by usage information
## Persistent UI Elements ### Main Toolbar Vertically across top - Button: `Grid` - Activates `Thumbnail Grid` - Button: `Duplicates ([Count of unique DUPES_* tags])` - Activates `Duplicate Manager` - Displays `Duplicate Container` - Displays `Tag Container` - Button: `Trash ([Count of items tagged with DELETE])` - Activates `Grid` and filters by the delete tag - Displays `Delete Confirmation Container` - Hides the delete overlay allowing thumbnails to be viewed without obstruction - Button: `Settings` - Activates `Settings Page` - Button: `Help` - Activates `Help Page` - Button: `Exit` - Closes the workspace, cancelling active operations, and application ### Sub Toolbar Immediately below `Main Toolbar` - Button: `Open Directory` - Displays folder selection dialog - Button: `Re-scan Directory` - Initiates or cancels active scan - Button label should change to "Cancel Scan" while a scan is running (or be replaced with a normally hidden cancel button) - Text Box: `Working directory` - no text label - contains the open folder name - full path only while selected - read only field - Vertical Line Separator - Button: `Sort By [active sort]` - Display a drop-down list of sort options - Button: `Sort Order [up arrow or down arrow based on active order]` - Immediate toggles / reverses sort order when selected - Vertical Line Separator - Button|Toggle: `Tag Filter` | Opens a drop-down menu with input elements - Menu stays open until the `Tag Filter` button is selected a second time - Textbox: `Search` allows live filtering the tag list for matched term. - Uses `*[INPUT]*` to match any part of a tag name - Scroll-box List of all tags separated by non-selectable headers `--Active--` and ``--Available--` - Clicking a tag moves it from the section it's in to the opposite - Tags are alphabetical in their respective section - Button|Toggle: `Show Dupes` - Adds `--Dupes--` Header - Shows all available `DUPE_` tags, allowing for selection in filter - Vertical Line Separator - `Dynamic control container` populated by active bench ### Status Bar Vertically Across Bottom - `Active Task` | Left - `Progress Bar` | Right - Only visible when an operation with progress is running ### Workbench Container The bulk of the program window; filling the space between the top toolbars, bottom status bar, and right vertical container. - Pupulated by the workbench specific UI elements. ### Right Vertical Container A narrow right-aligned column spanning the space between the `Sub Toolbar` and the `Status Bar - displays tool-sets applicable to the active workbench. - `Tag Container` - Label: `Tags` | Top Left of container - Button: `Add Tag` | Top Right of container - Container: `Tags List` | A scrollable space to hold sudo-buttons for each existing tag. - Dev Note: A tag in the UI is an alpha-numeric string overlayed on a color swatch. Effectively a rectangle with rounded corners and padding around a piece of text. - Allowed tag name characters are limited to the directory length and naming restrictions of the stricter of the supported OSs - `Duplicate Container` - Scrolling list of duplicate tags - Sorted numerically - Clicking a tag sets filter to that tag - `Delete Confirmation Container` - Button: `Confirm Delete` ## Workbench UIs ### Thumbnail Grid Main Program View #### Dynamic Controls - Thumbnail Size Slider ### Duplicate Manager - Shows "No Duplicates Identified" with button "Run Duplicate Scan" instead of grid when no `DUPE_` tags exist. - Defaults to Grid for the first available duplicate tag #### Dynamic Controls - Button `Scan for Duplicate Files` - Identifies exact file duplicates and adds `DUPE-FILE_#` tag to match groups - Changes to "Cancel Scan" while run in progress - Vertical Line Separator - Button `Scan for Visual Duplicates` - Identifies similar images based on perceptual scan and adds `DUPE_#` tag to match groups - Changes to "Cancel Scan" while run in progress - Textbox `Similarity` - Defaults to 95% - Sets the threshold used for perceptual scan matches - Button: `Grid` - Displays up to 10 images in duplicate group sized to fit the available space - Scrolls for additional images - Button: `Single` - Uses the `Image Viewer` UI filtered to the duplicate group - "Esc" Keyboard Key returns to Grid view for the duplicate group ### Image Viewer A sub-workbench of other benches. - Dynamic Controls add to the controls of the primary open workbench - Only displays images of the active workbench and filters - Pressing the `left` or `right` arrow scrolls through the previous and next images in the active set - Pressing `DEL` tags the image as `DELETE` - Pressing `Esc` closes this sub-workbench and returns to the previous primary workbench view #### Dynamic Controls - Button|Toggle: `Carousel` - Shows / Hides the previous image to the left and next image to the right of the active image at 25% scale - Button|Toggle: `Filmstrip` - Shows / Hides the `filmstrip` #### Filmstrip A horizontal bar across the bottom of the workbench containing a single row of thumbnails - Sorted by the active sort - The center image thumbnail is the active image - Images to the left and right are the previous and next images in the active set - Selecting an image from the filmstrip immediately makes it the active image - Stacked vertically on the left of the filmstrip are a pair of "size" buttons. Larger and Smaller. - Larger caps at 300px - Smaller floors at 75px - The height of the filmstrip adjusts dynamically to fit the current max image height - This is independent of the main grid thumbnail display size but still references the singular thumbnail blob - Render as many images from the set as can fit within the given row based on the ### Settings Page - Grouped controls, toggles, and inputs for application settings ### Help Page - Display "about" content followed by usage information
Member

UI spec follow-up / questions after incorporating #19 into the project plan (revised per review)

Thanks for the detailed revised direction in #19. We have incorporated it as additional clarification and revised direction:

  • New PR 7 inserted for UI Shell Scaffolding + Workbench Switching + full navigable chrome per #19 (buttons, sub toolbar incl exact Tag Filter dropdown mechanics, dynamic container, right vertical switching, workbench container) + refactor of existing PR5/6 grid/thumb code to plug in as the real Grid workbench inside the shell.
  • All other benches (Dupe Manager, Trash, Settings, Help, viewer sub) are placeholders/stubs only in PR7; no wiring of unbuilt features (no real DupeWorker calls, no tag apply/filtering, no QGraphics viewer, no send2trash, no sort-into drag/headers, etc.). "Without building features from future PRs".
  • All subsequent PRs renumbered +1 (now 14 total PRs). PR5 & PR6 explicitly closed in docs (deliverables complete; integrated by PR7).
  • Documentation updated per the analysis (DESIGN PR plan section rewritten with new PR7 entry + renumber, status tables, etc.) + this comment.
  • Core invariants (tag-only dups, ad-hoc, FS truth, threading, non-destructive) untouched.

To implement faithfully (new PR7 shell first, then renumbered wiring PRs), the following unanswered questions, clarifications, and missing requirements were identified from #19 vs DESIGN/TECHNICAL_OUTLINE/DRs/current code (PR4-6):

Dupe naming (affects PR7 counts + PR11 real):

  1. Confirm DUPE-FILE_# (exact) and DUPE_# (visual). Independent counters + padding (default 4 digits)? Casing (all-caps as written, or Dupe- style)?
  2. Cleanup/get-with-dupe queries (in working_db) + post-crawl must cover both families.
  3. Toolbar counts: unique tags for Duplicates([N]), items for Trash([M]). Live on tag changes?

Viewer / filmstrip / sub (PR7 stub + PR8 real):
4. Filmstrip: complete the cut-off sentence "Render as many ... based on the" ...
5. How to activate Image Viewer sub-workbench from main Thumbnail Grid (double-click? Enter? button?)?
6. Do subtoolbar Tag Filter/Sort apply to viewer active set or Dupe Grid/Single?
7. Trash "Hides the delete overlay": exactly suppress red X (and/or badges)?

Chrome / dynamic / right / sub bar (critical for PR7):
8. List exact controls in Dynamic control container for each workbench (Grid, Dupe, Trash, Settings, Help).
9. Right Vertical Container: hidden/empty for Settings or Help workbench?
10. Tag Filter: confirm stays-open until re-click, [live], headers, click-move+re-sort, Show Dupes adds --Dupes-- section.
11. Sort By dropdown: exact options list?
12. Dir textbox "full path only while selected": focus expands, blur collapses to name? Always read-only.
13. Re-scan label: changes in place to Cancel, or paired button?

Sort into folders (#4 + DR-010, must fit #19):
14. Entry point in the listed #19 toolbars (new button? sub dynamic in Grid?)? Does it repurpose right container to action pane (replacing Tags) + add headings/drag to Grid workbench?

Tags / right (PR7 stub + PR9):
15. Add Tag: opens DR-013 dialog (presets + custom wheel)? Rounded swatches per dev note (update delegate)?
16. Charset limit enforced on create (stricter Win/Linux filename rules)?
17. Tag Container content context-sensitive per mode, or always user tags?

Pages / global:
18. Settings groups/tunables (beyond thumbnails/dupe/viewer/shorts)? Help "about" + usage: specific content?
19. Other missing: last workbench persisted on restart? Multi-Dupe display in grids? Any buttons not listed in #19 main/sub toolbars?

Please reply with decisions. We will record (DR-015 or amendments), update DESIGN if needed, and implement (PR7 shell first). This keeps the tracker accurate per AGENTS.md.

(Full revised plan.md with new PR7 spec, renumber details, files, verification, and this body is in the review session for reference.)

Thanks!

**UI spec follow-up / questions after incorporating #19 into the project plan (revised per review)** Thanks for the detailed revised direction in #19. We have incorporated it as additional clarification and revised direction: - New PR 7 inserted for UI Shell Scaffolding + Workbench Switching + full navigable chrome per #19 (buttons, sub toolbar incl exact Tag Filter dropdown mechanics, dynamic container, right vertical switching, workbench container) + refactor of existing PR5/6 grid/thumb code to plug in as the *real* Grid workbench inside the shell. - All other benches (Dupe Manager, Trash, Settings, Help, viewer sub) are *placeholders/stubs only* in PR7; no wiring of unbuilt features (no real DupeWorker calls, no tag apply/filtering, no QGraphics viewer, no send2trash, no sort-into drag/headers, etc.). "Without building features from future PRs". - All subsequent PRs renumbered +1 (now 14 total PRs). PR5 & PR6 explicitly closed in docs (deliverables complete; integrated by PR7). - Documentation updated per the analysis (DESIGN PR plan section rewritten with new PR7 entry + renumber, status tables, etc.) + this comment. - Core invariants (tag-only dups, ad-hoc, FS truth, threading, non-destructive) untouched. To implement faithfully (new PR7 shell first, then renumbered wiring PRs), the following **unanswered questions, clarifications, and missing requirements** were identified from #19 vs DESIGN/TECHNICAL_OUTLINE/DRs/current code (PR4-6): **Dupe naming (affects PR7 counts + PR11 real):** 1. Confirm DUPE-FILE_# (exact) and DUPE_# (visual). Independent counters + padding (default 4 digits)? Casing (all-caps as written, or Dupe- style)? 2. Cleanup/get-with-dupe queries (in working_db) + post-crawl must cover both families. 3. Toolbar counts: unique *tags* for Duplicates([N]), *items* for Trash([M]). Live on tag changes? **Viewer / filmstrip / sub (PR7 stub + PR8 real):** 4. Filmstrip: complete the cut-off sentence "Render as many ... based on the" ... 5. How to activate Image Viewer sub-workbench from main Thumbnail Grid (double-click? Enter? button?)? 6. Do subtoolbar Tag Filter/Sort apply to viewer active set or Dupe Grid/Single? 7. Trash "Hides the delete overlay": exactly suppress red X (and/or badges)? **Chrome / dynamic / right / sub bar (critical for PR7):** 8. List exact controls in Dynamic control container *for each* workbench (Grid, Dupe, Trash, Settings, Help). 9. Right Vertical Container: hidden/empty for Settings or Help workbench? 10. Tag Filter: confirm stays-open until re-click, *[live]*, headers, click-move+re-sort, Show Dupes adds --Dupes-- section. 11. Sort By dropdown: exact options list? 12. Dir textbox "full path only while selected": focus expands, blur collapses to name? Always read-only. 13. Re-scan label: changes in place to Cancel, or paired button? **Sort into folders (#4 + DR-010, must fit #19):** 14. Entry point in the listed #19 toolbars (new button? sub dynamic in Grid?)? Does it repurpose right container to action pane (replacing Tags) + add headings/drag to Grid workbench? **Tags / right (PR7 stub + PR9):** 15. Add Tag: opens DR-013 dialog (presets + custom wheel)? Rounded swatches per dev note (update delegate)? 16. Charset limit enforced on create (stricter Win/Linux filename rules)? 17. Tag Container content context-sensitive per mode, or always user tags? **Pages / global:** 18. Settings groups/tunables (beyond thumbnails/dupe/viewer/shorts)? Help "about" + usage: specific content? 19. Other missing: last workbench persisted on restart? Multi-Dupe display in grids? Any buttons not listed in #19 main/sub toolbars? Please reply with decisions. We will record (DR-015 or amendments), update DESIGN if needed, and implement (PR7 shell first). This keeps the tracker accurate per AGENTS.md. (Full revised plan.md with new PR7 spec, renumber details, files, verification, and this body is in the review session for reference.) Thanks!
Author
Owner

Dupe naming (affects PR7 counts + PR11 real):

  • Yes, DUPE-FILE_# (exact) and DUPE_# (visual) are independent counters. The padding (default 4 digits) setting can be shared. Case with all-caps as written.
  • Cleanup in working_db should use a form of file path+name as the primary key, cleaning any type of record associated with that file.
  • Yes, toolbar counts for Duplicates([N]) and items for Trash([M]) should update live on tag changes.

Viewer / filmstrip / sub (PR7 stub + PR8 real):

  1. Filmstrip: complete the cut-off sentence "Render as many ... based on the" ...
  • Based on the user selected size and the actual with of the strip (from the overall window size) render as many images to the left and right of the active thumbnail as will fit in the remaining space equally.
  • Update the displayed number of images when the filmstrip thumbnail size is changed or the application window is resized
  1. How to activate Image Viewer sub-workbench from main Thumbnail Grid (double-click? Enter? button?)?
  • The Image Viewer should be activated when a thumbnail is double-clicked or 'enter' is pressed. If multiple images are selected, enter opens the first in the selection
  1. Do subtoolbar Tag Filter/Sort apply to viewer active set or Dupe Grid/Single?
  • The filter should be global and carry between work spaces
  • In the case of the duplicate grid, additionally apply the duplicate filter to the active filter
  • If not specified, the duplicate workspace will also need to have the filter menu button present in the sub-toolbar
  • The filter menu also will need a "Clear Filter" button added to its UI
  1. Trash "Hides the delete overlay": exactly suppress red X (and/or badges)?
  • My assumption is that the red x is on top of the image thumbnail in the normal grid as an overlay to obscure the thumbnail. Any filters or overlays applied to files tagged with delete should not be present when the trash workspace is active so that the user can review the unobscured image thumbnail

Chrome / dynamic / right / sub bar (critical for PR7):

  1. List exact controls in Dynamic control container for each workbench (Grid, Dupe, Trash, Settings, Help).
  • Use the available information provided in Issue #19 to populate the current control set. Will Refine after prototype built.
  1. Right Vertical Container: hidden/empty for Settings or Help workbench?
  • Yes, hidden in those two workbenches
  1. Tag Filter: confirm stays-open until re-click, [live], headers, click-move+re-sort, Show Dupes adds --Dupes-- section.
  • The tag filer should display similar to a menu dropdown but not close like a menu would after a single interaction. The user should be able to interact with the tag ui elements, and main program, while the mini-ui is visible.
  1. Sort By dropdown: exact options list?
  • This question is to vague for me to answer properly
  1. Dir textbox "full path only while selected": focus expands, blur collapses to name? Always read-only.
  • The textbox shouldn't change in size. It should have a fixed width of 200px
  • The text within the box should only display the active folder name when not active
  • When the user clicks the box, the content should change to the absolute path on the filesystem so they can select and copy any portion of it
  • The user should not be able to enter text, it's only for them to be able to copy selected segments of text out of
  1. Re-scan label: changes in place to Cancel, or paired button?
  • Change in place. Future iterations may replace text labels with icons which is more appropriate to swap in place

Sort into folders (#4 + DR-010, must fit #19):

  1. Entry point in the listed #19 toolbars (new button? sub dynamic in Grid?)? Does it repurpose right container to action pane (replacing Tags) + add headings/drag to Grid workbench?
  • This will be a button in the Main Toolbar between Trash and Settings
  • It should open a dialog listing the tags and associated image counts
  • The bottom should have a cancel and confirm button

Tags / right (PR7 stub + PR9):

  1. Add Tag: opens DR-013 dialog (presets + custom wheel)? Rounded swatches per dev note (update delegate)?
  • PR 7 only needs the button, not the dialog
  1. Charset limit enforced on create (stricter Win/Linux filename rules)?
  • Windows 11 and Linux (debian) have limited allowed characters/lengths in directory names. Combine the list of restrictions from both OSs to make a comprehensive list of characters allowed that will satisfy the combined restriction set.
  1. Tag Container content context-sensitive per mode, or always user tags?
  • The tag container content is defined per project.

Pages / global:

  1. Settings groups/tunables (beyond thumbnails/dupe/viewer/shorts)? Help "about" + usage: specific content?
  • Settings will be introduced as features are added
  • About section should contain:
    • program title: Bulk Image Organizer
    • Version Number / Name ("0.1 Alpha" for now)
    • Maintainer: ValleyGeek
    • Website: TBD
  • Help content should be added as a deliverable to each PR with an always up to date model based on introduced features
    • Use a single long MD file for help content and formatting and a markdown parser to display in the workspace.
  1. Other missing: last workbench persisted on restart? Multi-Dupe display in grids? Any buttons not listed in #19 main/sub toolbars?
  • Always launch in grid view
## Dupe naming (affects PR7 counts + PR11 real): - Yes, DUPE-FILE_# (exact) and DUPE_# (visual) are independent counters. The padding (default 4 digits) setting can be shared. Case with all-caps as written. - Cleanup in working_db should use a form of file path+name as the primary key, cleaning any type of record associated with that file. - Yes, toolbar counts for Duplicates([N]) and items for Trash([M]) should update live on tag changes. ## Viewer / filmstrip / sub (PR7 stub + PR8 real): 4. Filmstrip: complete the cut-off sentence "Render as many ... based on the" ... - Based on the user selected size and the actual with of the strip (from the overall window size) render as many images to the left and right of the active thumbnail as will fit in the remaining space equally. - Update the displayed number of images when the filmstrip thumbnail size is changed or the application window is resized 5. How to activate Image Viewer sub-workbench from main Thumbnail Grid (double-click? Enter? button?)? - The Image Viewer should be activated when a thumbnail is double-clicked or 'enter' is pressed. If multiple images are selected, enter opens the first in the selection 6. Do subtoolbar Tag Filter/Sort apply to viewer active set or Dupe Grid/Single? - The filter should be global and carry between work spaces - In the case of the duplicate grid, additionally apply the duplicate filter to the active filter - If not specified, the duplicate workspace will also need to have the filter menu button present in the sub-toolbar - The filter menu also will need a "Clear Filter" button added to its UI 7. Trash "Hides the delete overlay": exactly suppress red X (and/or badges)? - My assumption is that the red x is on top of the image thumbnail in the normal grid as an overlay to obscure the thumbnail. Any filters or overlays applied to files tagged with delete should not be present when the trash workspace is active so that the user can review the unobscured image thumbnail ## Chrome / dynamic / right / sub bar (critical for PR7): 8. List exact controls in Dynamic control container for each workbench (Grid, Dupe, Trash, Settings, Help). - Use the available information provided in Issue #19 to populate the current control set. Will Refine after prototype built. 9. Right Vertical Container: hidden/empty for Settings or Help workbench? - Yes, hidden in those two workbenches 10. Tag Filter: confirm stays-open until re-click, [live], headers, click-move+re-sort, Show Dupes adds --Dupes-- section. - The tag filer should display similar to a menu dropdown but not close like a menu would after a single interaction. The user should be able to interact with the tag ui elements, and main program, while the mini-ui is visible. 11. Sort By dropdown: exact options list? - This question is to vague for me to answer properly 12. Dir textbox "full path only while selected": focus expands, blur collapses to name? Always read-only. - The textbox shouldn't change in size. It should have a fixed width of 200px - The text within the box should only display the active folder name when not active - When the user clicks the box, the content should change to the absolute path on the filesystem so they can select and copy any portion of it - The user should not be able to enter text, it's only for them to be able to copy selected segments of text out of 13. Re-scan label: changes in place to Cancel, or paired button? - Change in place. Future iterations may replace text labels with icons which is more appropriate to swap in place ## Sort into folders (#4 + DR-010, must fit #19): 14. Entry point in the listed #19 toolbars (new button? sub dynamic in Grid?)? Does it repurpose right container to action pane (replacing Tags) + add headings/drag to Grid workbench? - This will be a button in the `Main Toolbar` between Trash and Settings - It should open a dialog listing the tags and associated image counts - The bottom should have a cancel and confirm button ## Tags / right (PR7 stub + PR9): 15. Add Tag: opens DR-013 dialog (presets + custom wheel)? Rounded swatches per dev note (update delegate)? - PR 7 only needs the button, not the dialog 16. Charset limit enforced on create (stricter Win/Linux filename rules)? - Windows 11 and Linux (debian) have limited allowed characters/lengths in directory names. Combine the list of restrictions from both OSs to make a comprehensive list of characters allowed that will satisfy the combined restriction set. 17. Tag Container content context-sensitive per mode, or always user tags? - The tag container content is defined per project. ## Pages / global: 18. Settings groups/tunables (beyond thumbnails/dupe/viewer/shorts)? Help "about" + usage: specific content? - Settings will be introduced as features are added - About section should contain: - program title: Bulk Image Organizer - Version Number / Name ("0.1 Alpha" for now) - Maintainer: ValleyGeek - Website: TBD - Help content should be added as a deliverable to each PR with an always up to date model based on introduced features - Use a single long MD file for help content and formatting and a markdown parser to display in the workspace. 19. Other missing: last workbench persisted on restart? Multi-Dupe display in grids? Any buttons not listed in #19 main/sub toolbars? - Always launch in grid view
Member

Thanks + integration of clarifications from #205 into docs (ready for PR7 draft)

Thanks for the detailed answers in #205! We have reviewed and integrated the clarifications (along with original #19 body) into the project docs:

  • DESIGN.md (primary): Updated new PR7 full Description + Runnable Milestone + cross-refs (PR8 viewer activation/filmstrip exact rule+resize update, PR9 global filter carry + Clear Filter + dupe sub-toolbar button + charset combine + per-project tags, PR11 dupe independent counters/all-caps + path+name key cleanup, PR12 sort-into now Main Toolbar button (between Trash/Settings) + dialog with tags+counts + cancel/confirm, Total/early milestones/Current State notes). Also cleaned duplicate "End of" sections. Specifics incorporated:
    • Dupe: independent counters (shared padding 4 default), all-caps; cleanup via relpath+name primary key for any records of the file; toolbar counts live on tag changes.
    • Filmstrip: "based on the user selected size and the actual width of the strip (from the overall window size) render as many images to the left and right of the active thumbnail as will fit in the remaining space equally"; update count on filmstrip size change or window resize.
    • Viewer sub from Grid: double-click or Enter (first of multi-select).
    • Filter: global + carries between workspaces; for dupe grid additionally apply dupe filter; dupe workspace also has filter menu button in sub-toolbar; "Clear Filter" button added to filter UI; does not close like standard menu (mini-ui, interact with tags + main program while visible).
    • Trash: no red X (or any DELETE filters/overlays) present so unobscured thumbnail review.
    • Right Vertical: hidden/empty for Settings/Help.
    • Dir textbox: fixed 200px width; inactive shows folder name; click shows absolute path (select/copy segments; read-only, no entry).
    • Re-scan: label changes in place to Cancel Scan.
    • Dynamic controls: populated per available info in #19 (e.g. Grid size slider; Dupe scans+sim+Grid/Single); "Will Refine after prototype built" noted.
    • Sort into folders: Main Toolbar button between Trash and Settings; opens dialog listing the tags and associated image counts; bottom cancel + confirm.
    • Add Tag (PR7): button only (dialog PR9).
    • Charset for tags: combine restrictions from Win 11 + Linux (debian) for directory names.
    • Tag container: content defined per project.
    • Launch: always in grid view.
    • About: title "Bulk Image Organizer", "0.1 Alpha", Maintainer "ValleyGeek", Website "TBD".
    • Help: per-PR deliverable (always up-to-date based on introduced features); single long MD file + markdown parser to display in the workspace.
    • Sort By options: still noted as vague per your reply; using fallback from outline (filename, date, size, resolution, tag priority) for now.
  • TECHNICAL_OUTLINE.md: Updated filmstrip (exact render + resize rule) and "Sort into folders by tags" (UI per #19 + #205 dialog) sections.
  • Minor cross-refs in other PR descs (8/9/11/12) and Current State/Total/early milestones notes.

(The session plan.md was the working analysis doc and already captured most; project docs/ are the source of truth per AGENTS.)

Remaining / for PR7+ impl notes (no new blockers): Sort By exact list still vague (outline fallback); dynamic controls "use #19 info, refine after prototype" (we'll implement per available #19 text + make extensible); exact combined charset list to be codified in code (PR7/9); help MD content will be created/updated as PRs land.

This + prior info in #19/#202 is enough information available to draft PR7 (the shell chrome with specified behaviors for dir/re-scan/filter/activation/filmstrip/trash overlays/right visibility/launch etc., real Grid integration, stubs for others with notes, global filter carry, sort button+dialog stub, about/help stubs per specs, etc.). We will proceed with PR7 implementation (starting from the partial shell already in main_window + helpers) using the updated DESIGN as spec. Any final objections or additional notes before we mark this resolved for PR7 purposes?

If no further input needed, we can close #19 (per AGENTS issue management) after your ack or in follow-up. Thanks again for the clarifications!

**Thanks + integration of clarifications from #205 into docs (ready for PR7 draft)** Thanks for the detailed answers in #205! We have reviewed and integrated the clarifications (along with original #19 body) into the project docs: - **DESIGN.md** (primary): Updated new PR7 full **Description** + **Runnable Milestone** + cross-refs (PR8 viewer activation/filmstrip exact rule+resize update, PR9 global filter carry + Clear Filter + dupe sub-toolbar button + charset combine + per-project tags, PR11 dupe independent counters/all-caps + path+name key cleanup, PR12 sort-into now Main Toolbar button (between Trash/Settings) + dialog with tags+counts + cancel/confirm, Total/early milestones/Current State notes). Also cleaned duplicate "End of" sections. Specifics incorporated: - Dupe: independent counters (shared padding 4 default), all-caps; cleanup via relpath+name primary key for any records of the file; toolbar counts live on tag changes. - Filmstrip: "based on the user selected size and the actual width of the strip (from the overall window size) render as many images to the left and right of the active thumbnail as will fit in the remaining space equally"; update count on filmstrip size change or window resize. - Viewer sub from Grid: double-click or Enter (first of multi-select). - Filter: global + carries between workspaces; for dupe grid additionally apply dupe filter; dupe workspace also has filter menu button in sub-toolbar; "Clear Filter" button added to filter UI; does not close like standard menu (mini-ui, interact with tags + main program while visible). - Trash: no red X (or any DELETE filters/overlays) present so unobscured thumbnail review. - Right Vertical: hidden/empty for Settings/Help. - Dir textbox: fixed 200px width; inactive shows folder name; click shows absolute path (select/copy segments; read-only, no entry). - Re-scan: label changes *in place* to Cancel Scan. - Dynamic controls: populated per available info in #19 (e.g. Grid size slider; Dupe scans+sim+Grid/Single); "Will Refine after prototype built" noted. - Sort into folders: Main Toolbar button between Trash and Settings; opens dialog listing the tags and associated image counts; bottom cancel + confirm. - Add Tag (PR7): button only (dialog PR9). - Charset for tags: combine restrictions from Win 11 + Linux (debian) for directory names. - Tag container: content defined per project. - Launch: always in grid view. - About: title "Bulk Image Organizer", "0.1 Alpha", Maintainer "ValleyGeek", Website "TBD". - Help: per-PR deliverable (always up-to-date based on introduced features); single long MD file + markdown parser to display in the workspace. - Sort By options: still noted as vague per your reply; using fallback from outline (filename, date, size, resolution, tag priority) for now. - **TECHNICAL_OUTLINE.md**: Updated filmstrip (exact render + resize rule) and "Sort into folders by tags" (UI per #19 + #205 dialog) sections. - Minor cross-refs in other PR descs (8/9/11/12) and Current State/Total/early milestones notes. (The session plan.md was the working analysis doc and already captured most; project docs/ are the source of truth per AGENTS.) **Remaining / for PR7+ impl notes (no new blockers):** Sort By exact list still vague (outline fallback); dynamic controls "use #19 info, refine after prototype" (we'll implement per available #19 text + make extensible); exact combined charset list to be codified in code (PR7/9); help MD content will be created/updated as PRs land. This + prior info in #19/#202 is **enough information available to draft PR7** (the shell chrome with specified behaviors for dir/re-scan/filter/activation/filmstrip/trash overlays/right visibility/launch etc., real Grid integration, stubs for others with notes, global filter carry, sort button+dialog stub, about/help stubs per specs, etc.). We will proceed with PR7 implementation (starting from the partial shell already in main_window + helpers) using the updated DESIGN as spec. Any final objections or additional notes before we mark this resolved for PR7 purposes? If no further input needed, we can close #19 (per AGENTS issue management) after your ack or in follow-up. Thanks again for the clarifications!
Grok closed this issue 2026-06-05 22:08:59 +00:00
Member

Clarifications from #205 integrated into project docs (DESIGN.md PR7+cross-refs updated with filmstrip render/activation/filter global/trash no overlays/dir 200px+behavior/re-scan in-place/sort-into toolbar button+dialog/charset combine/always grid launch/about+help specs/etc.; similar in TECHNICAL_OUTLINE). See the PR7 description/milestone and Total section for details. (Sort By options fallback to outline as still vague per note; dynamic per #19 + post-proto refine; charset list to implement per combined rules.)

Per task + your answers, this provides enough information to draft PR7. Issue closed (state updated). Will reference #19 + #205 + #207 (and prior) during PR7 shell impl + later wiring. Thanks for the clarifications and direction! If anything missed or re-open needed, comment here.

Clarifications from #205 integrated into project docs (DESIGN.md PR7+cross-refs updated with filmstrip render/activation/filter global/trash no overlays/dir 200px+behavior/re-scan in-place/sort-into toolbar button+dialog/charset combine/always grid launch/about+help specs/etc.; similar in TECHNICAL_OUTLINE). See the PR7 description/milestone and Total section for details. (Sort By options fallback to outline as still vague per note; dynamic per #19 + post-proto refine; charset list to implement per combined rules.) Per task + your answers, this provides **enough information to draft PR7**. Issue closed (state updated). Will reference #19 + #205 + #207 (and prior) during PR7 shell impl + later wiring. Thanks for the clarifications and direction! If anything missed or re-open needed, comment here.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#19
No description provided.