Repository navigation
feat: queue several files on the Home page before converting - #865
arielsrossi wants to merge 1 commit into
Conversation
Files dropped on the Home page or picked with the double-click dialog join a queue below the drop zone instead of opening the donut at once. The first file sets the type: files of another format are refused with a notice over the drop zone, with the window dimmed behind it. Each queued file shows its first page (PDF) or its picture, numbered in the theme's accent circle, can be dragged to another place, and can be removed with its X. "Choose action" opens the donut for the queue in that order, and the queue empties once that conversion finishes. A merge started from the queue keeps the order and does not open the merge-order chooser (merged pictures still do, for their layout). Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
7fa8400 to
bea922d
Compare
KnifeLemon
left a comment
There was a problem hiding this comment.
Thanks @arielsrossi, and welcome! I've approved the CI run, so the checks will show up here.
First: this needs an issue
This changes what the Home drop zone does for everyone: a drop or a double-click no longer opens the donut, it fills a queue. A change like that we agree on in an issue first, so other people can weigh in. It's close to #860 (reorder and remove before merging) and discussion #669 (thumbnails and order before an images → PDF merge), which ask for related things in different places.
Could you open an issue with the idea and link those two? A few questions to cover there:
- Should the queue replace the donut on a drop, or come in alongside it (for example only when a second file is dropped)?
- Where does it live: the Home page only, or also the Edit PDF pages window, which already has a thumbnail strip with reordering?
Bugs, for whichever version comes next
- The queue can clear when nothing was converted.
FinishSentQueue(HomePageViewModel.cs) looks through the whole history for an entry that holds all the sent paths. If those files were converted before, the nextHistoryChanged, for any job, empties the queue, even when the donut was cancelled. Only entries added afterMarkSentToDonutshould count. - One format per queue is stricter than the donut.
FileQueue.Addcomparesformat.Id, so JPG and PNG can't share a queue. They share the image donut, though, and Merge images and Merge PDF take both. The rule should follow the donut (its profile), not the exact format. - The notice dims the whole window with a hard-coded
#A6000000(MainWindow.axaml). That's heavy for a one-line notice, and colours should come from the theme's brushes so all the themes, and high contrast, still work. - Reordering works only with the mouse. The cards can be dragged, but there's no keyboard way (for example Alt+Up / Alt+Down on a focused card) to move one.
Tests
The PR says the full dotnet test wasn't run after the last commits. CI will show that now.
I'm marking this as changes requested until there's an issue. Happy to continue there.
What does this change?
On the Home page, files dropped in the drop zone or picked with a double-click now join a queue below it, instead of opening the donut for each drop. Files can be added over several drops until the queue holds what you want. "Choose action" opens the donut for the queue in the order shown, and the queue empties once that conversion finishes.
Type of change
How was it tested?
dotnet format --verify-no-changesdotnet test: the newFileQueueTests,MergeOrderTests,LocalizationTests,BrowserDropTestsandRecentConversionTestspassed on an earlier build of this branch. TwoRenderTestsfail on machines with a pt-BR culture (Preset_editor_saves_every_frame_only_for_png_and_jpgandPreset_editor_shows_playback_speed_only_for_targets_that_keep_animations): they compare number text, and the failure is not caused by this change, though I did not confirm it onmain. The full suite was not re-run after the last few commits.Screenshots (UI changes)
Checklist
src/Filee.App/Assets/i18n/*.jsonfilesTHIRD-PARTY-NOTICES.md(none added)🤖 Generated with Claude Code