Conversation
* Enable multi-file selection in Metadata Editor using getOpenFileNames()
* Disable Volume, Number, and Title fields in bulk mode
* Pre-fill Series and author fields from first selected file in bulk mode
* Show status "Editing Y files" in bulk mode
* Add progress display during bulk save ("Processing X/Y: filename")
* Disable buttons during processing
* Skip read-only CBR files with error collection
* Show error summary dialog if any files fail to save
* Keep single file metadata editing the same
* Add checkbox next to Volume field for enabling bulk volume editing (only in bulk mode) * Support single number (5), range (1-10), or comma list (1, 3, 5) input formats * Sort files alphabetically before volume assignment * Validate that volume count matches file count * Add rich HTML tooltip explaining the feature
* Define bulkVolumeCheck QCheckBox in MetaEditor.ui instead of creating it programmatically in KCC_gui.py * Update tab order to include bulkVolumeCheck after volumeLine
|
@jaroslawjanas what about bulk editing for directories? |
Never used it in such a way, is it even possible to edit a single directory? |
|
Yes, it is. Hover over editor button for few seconds. Shift + click |
|
@kiryl85 So the selection would be e.g. In addition to that, we will have to completely abandon using the native dialog. # Multi-directory selection for bulk editing ComicInfo.xml
dialog = QFileDialog(MW, 'Select volume directories', self.lastPath)
dialog.setFileMode(QFileDialog.FileMode.Directory)
dialog.setOption(QFileDialog.Option.ShowDirsOnly, True)
dialog.setOption(QFileDialog.Option.DontUseNativeDialog, True) # <--That's because to the best of my knowledge the native dialog does not seem to support selecting multiple directories. Personally I am not opposed to the idea of using the built-in dialog, it looks okay. |
Yes
You are correct, that was why the "Add directory" button was removed because of the single folder limitation was too annoying. I didn't realize I could have just changed to the built in picker. @Silver0006 That Qt build in one looks not bad honestly. I'll try to review the code sometime soon. |
Well I haven't pushed the changes for editing directories in bulk yet. Give me some more time, I want to look over them some more - I am really not that familiar with KCC itself and Qt. I'll tag you. |
|
@jaroslawjanas Right now metadata editor can be opened by doubleclick on an item on the jobList, either it is a file or a directory. One more thing, directory structure could be also similar to this and user would be adding chapters instead |
I don't understand what you mean.
Same logic, different input sources. Let's do the Metadata Editor first and then if you want you can add bulk-editing in the job list in another PR. Personally I dislike it. How would you double-click a multi selection? You'd need a button. It just gets messy.
What's the current behaviour if we select single |
* Shift+click on editor button now opens multi-directory selection dialog * Multiple directories enable bulk mode with volume number assignment * Uses Qt's built-in dialog with multi-selection enabled for native look and feel
|
Okay so I did apply the change for directory bulk editing, it simply changes the dialog to the Qt's native.
I mean the user can always go inside the I'd rather not add any fancy dynamic structure detection especially one that assumes that Would you say this is a satisfactory solution? |
There was a problem hiding this comment.
Pull request overview
This PR introduces bulk metadata editing functionality to the Kindle Comic Converter, allowing users to edit metadata for multiple comic files simultaneously. The feature addresses the tedious task of updating metadata across entire series by enabling multi-file selection and batch processing.
Key changes include:
- Multi-file selection support in the metadata editor (both file and directory modes)
- Bulk editing of common metadata fields (series, writer, penciller, inker, colorist)
- Flexible bulk volume number assignment with three input formats: single number sequences, ranges, and comma-separated lists
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 13 comments.
| File | Description |
|---|---|
| kindlecomicconverter/KCC_ui_editor.py | Adds bulk volume checkbox UI component with rich tooltip and updates tab order |
| kindlecomicconverter/KCC_gui.py | Implements multi-file selection dialogs, bulk mode logic, volume parsing, and batch save operations |
| gui/MetaEditor.ui | Defines checkbox widget properties and layout in the UI XML definition |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
* Handle invalid range formats like "1-2-3" or "--" that previously fell through, now returns an error message * Add explicit check for empty/malformed range parts before attempting to parse * Add positive number validation for all input types (range, comma-list, single number) to be consistent with single file mode which uses isnumeric() * Add explicit validation for empty volumes list after parsing
* Check all files for CBR format during load instead of during save * Unify the CBR check for single and bulk mode
* In bulk mode, compare Series + Writer/Penciller/Inker/Colorist across all selected files (instead of using only the first file) * When values differ, show “(multiple values)” placeholder for that field * Add hover tooltip with overwrite warning and a File|Value table (or Value|Count summary when there are >20 files)
|
This is a continuation to #1184 (comment) please check it too. Okay so now I know what Automatic Copilot code review does and I am never enabling it again. Miscellaneous
CBR HandlingIf there are any
Mixed Metadata ValuesSo I quite liked this suggestion and I took my time with it trying to plan it out properly. Instead I dynamically create a tooltip for that mixed field that shows (up to 20) rows and their values for that field (if mixed).
NotesI kept some comments but removed all the ones that seems useless since the repo's vibe seems to be code is enough, comment at your own risk which I think is a good enough approach for projects like this one. With that said the AI Tool Assistance DisclosureThis PR was developed with assistance from Claude Code using Don't hate the player, hate the game. Please have a look. |
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
Any update on the review of this? |
|
Ah sorry, this PR is a lot larger than I expected so I kept putting it off. I've been a bit more focused on bug squashing over new features recently. I will get to it at some point, but no timeline set. |
All good. Just making sure it's still in the queue. |
|
I don't mess with metadata myself, but my perception is that people use ComicTagger for bulk editing, was that not sufficient for your use case? |
|
I had no idea it existed. Most of the time I don't really care about detailed metadata. We already have a |





Bulk Metadata Editing
Motivation
If you've ever had to update metadata for a whole series, fixing an author's name across 20 volumes.
You know how tedious it can be. Opening each file individually, making the same change over and over... it gets old fast.
Also it pisses me off.
This PR introduces bulk metadata editing to solve that problem.
Select multiple files, edit the common fields once, and apply changes to all of them in one go.
As I worked on this, it became clear that volume numbers would also benefit from bulk editing.
Adding volume metadata to a series usually follows a pattern (1, 2, 3...), so I extended the feature to support that as well.
Changes
5) - generates a sequence starting from that number (5, 6, 7...)1-10) - expands to volumes 1 through 101, 3, 5) - assigns specific volume numbersWhy are Title and Number disabled?
In bulk mode, the Title and Number fields are intentionally disabled because these are typically unique to each file: