A Documents launcher with a customizable extension list has been fixed.
See more details at : https://github.com/pdulvp/pmane-sa/issues/11
- New "Documents" launcher (id "documents") opens files with the application the desktop has registered for their type; its extensions are edited in Options > Launchers, pdf and cbz by default
- isDocument follows that launcher's list via claimedBy("documents", ...), so launching, drops, and the icon/mime paths all use the same extensions
- The launchers dialog hides the programs table for a usesDefaultApp launcher and says the files open with the default app; the properties browse filter is built from the same extension list
A Documents launcher with a customizable extension list
<sub>2026-11-02-2110-a-documents-launcher-with-a-customizable-extension-list.md — 2026-11-02 21:10</sub>
The launchers dialog gains a "Documents" launcher that opens files with the
application the desktop has registered for their type. The extensions it
handles — and accepts when a file is dropped on an item — are editable in
Options > Launchers, in the launcher's "File types" field; pdf and cbz
stay the defaults. For now every extension opens with the default app.
Decisions
- Documents become a launcher family (id "documents"), like wine or
DOSBox, so the existing per-launcher extensions field, persistence and
claiming logic are reused instead of a second hardcoded list.
- A new flag usesDefaultApp on Launcher: such a launcher has no
programs to configure, so the launchers dialog hides the runners table for
it and says the files open with the desktop's default application.
Launching still goes through the existing isDocument branch in
ItemLauncher (QDesktopServices::openUrl), now driven by the launcher's
extension list.
- isDocument is claimedBy("documents", ...), so handled, droppable
(isLaunchable, drops in GroupWindow) and the icon/mime paths all follow
the same list.
- The browse filter in the properties dialog is built from the launcher's
extensions instead of the hardcoded *.pdf *.cbz.
- The "File types:" label stays: it is generic across launchers.
Steps
- [x] 1. src/Launchers.h: add usesDefaultApp to Launcher.
- [x] 2. src/Launchers.cpp: add the "documents" launcher to
defaultLaunchers() with extensions pdf, cbz.
- [x] 3. src/ItemKind.cpp: isDocument() delegates to the launcher.
- [x] 4. src/ItemPropertiesDialog.cpp: browse filter built from the
launcher's extensions.
- [x] 5. src/LaunchersDialog.{h,cpp}: hide the runners section for a
usesDefaultApp launcher, show a note instead.
- [x] 6. Build pmane-sa (serial, cmake --build build --target pmane-sa;
the PATH cmake is shadowed by a broken VSCode-extension copy, so
/usr/bin/cmake run with LD_LIBRARY_PATH unset was used).
<sub>Filed by prel from the completed plans at commit time.</sub>