Files on Linux (2.57)¶
Targeted fixes for portal pick / drop / reveal footguns on Linux — building on 1.68 / 1.79 / 2.53 field data.
Related: platform-linux-wayland.md · system-integration.md · drag-drop.md
Goal¶
Product apps ship FilePicker, FileDropZone, and reveal-in-folder on Linux but hit three recurring failures: missing parent window, reveal opens wrong/no folder, and silent drop reject. 2.57 closes the top three with small platform + control fixes.
Top 3 footguns (fixed in 2.57)¶
| # | Symptom | Cause | Fix |
|---|---|---|---|
| 1 | File dialog not modal on Wayland | FilePicker.* called without Window.window |
Focus/visible window fallback via LinuxPortal::resolveParentObject; still warn when parent_window empty |
| 2 | Reveal after Save does nothing (GNOME) | OpenURI fallback had no portal parent |
revealFileInFolder(path, Window.window) passes parent_window to portal |
| 3 | Drop looks broken — no feedback | MIME/extension reject with no chrome change | FileDropZone.isDragRejected + dragRejected signal |
Out: Full xdg-foreign on every Qt build; Flatpak sandbox policy; WebView2 download presets (defer).
Deliverables¶
| Item | Location |
|---|---|
| Parent fallback | LinuxPortal::resolveParentObject · FilePicker portal path |
| Reveal parent | WindowHelper.revealFileInFolder(path, parentWindow?) |
| Drop reject UX | FileDropZone: isDragRejected, border highlight |
| Field matrix bump | platform-linux-wayland.md 2.57 |
| Gallery refresh | System integration · FileDropZone · Pitfalls 2.57 |
App checklist¶
- [ ] Always pass
Window.windowtoFilePicker.open*/saveFile/openFolder - [ ] After save:
WindowHelper.revealFileInFolder(path, Window.window) - [ ]
FileDropZone: setacceptExtensions+acceptMimeTypes; handledragRejected - [ ] Same ingest function for drop and browse — drag-drop.md
- [ ] Bootstrap:
QWinUI3::configureEnvironmentbeforeQGuiApplication - [ ] Field soak: KDE Plasma Wayland + GNOME — platform-linux-wayland.md regression suite
Next: 2.58 OSK in apps · 2.59 named slow flows