Skip to content

feat(browser): add Finder-style batch rename dialog - #1044

Draft
JoeJoeflyn wants to merge 1 commit into
mainfrom
feat/batch-rename
Draft

JoeJoeflyn wants to merge 1 commit into
mainfrom
feat/batch-rename

Conversation

@JoeJoeflyn

@JoeJoeflyn JoeJoeflyn commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

Description

Adds Finder-style batch rename: select 2+ files, right-click, and choose Rename N items…. The dialog offers the same three modes as Finder — Replace Text (literal find/replace), Add Text (before/after, inserted before the extension), and Format (Counter zero-padded to 5 digits, Index, or Date with time, all with start number, before/after placement, and extension preserved) — plus a live old → new example line.

Numbering follows selection order (anchor first), so a bottom-to-top range numbers from the bottom. Date stamps carry the time like Finder; since a batch lands within one second, every Date item also gets its position number so the whole batch renames instead of stalling on duplicates.

The engine is one provider call per batch (rename_batch), not N sequential operations: monitor events stay deferred and flush in a single consolidated update per directory (full reload only past 64 changes), with one completion event and one undo entry. Per-item failures collapse into a single summary dialog. Single renames and whole batches are undoable with Ctrl+Z; records whose current name is gone are dropped, and collisions fail safely instead of overwriting.

Visual evidence

Pending — please attach a short clip via the GitHub editor (multi-select → Rename N items… → each mode with the live example, plus Ctrl+Z after a batch).

How to test

  1. Select 3+ files in Columns view, right-click one, choose Rename N items….
  2. Try Replace Text (e.g. find IMG, replace with trip), Add Text after name, and Format → Counter from 7.
  3. Select bottom-to-top and check numbering starts at the bottom file.
  4. Press Ctrl+Z.

Expected result: the example line previews the first file's new name; on Rename every file renames (trip 00007.jpg, …), extensions kept, failures (if any) reported once. Undo restores the original names.

Related issue

N/A

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