Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
398 commits
Select commit Hold shift + click to select a range
726293e
Remove debug prints from LogModel
pplupo Jul 1, 2026
e5603e3
Remove debug prints from structview
pplupo Jul 1, 2026
5b484b6
Commit compiled binary for csvview
pplupo Jul 1, 2026
9a9fd29
Commit compiled binary for mpv_wayland
pplupo Jul 1, 2026
50ec34e
Commit compiled binary for structview
pplupo Jul 1, 2026
329346f
Commit compiled binary for kate
pplupo Jul 1, 2026
b11e732
Commit compiled binary for kpart
pplupo Jul 1, 2026
48bd6b6
Update wlxplugin.h
alexx2000 Jul 5, 2026
c21e062
Delete wlx/logview/build/logviewer.wlx
alexx2000 Jul 5, 2026
63c2a9b
Delete wlx/jsonview/langs/ru/LC_MESSAGES/plugins.po
alexx2000 Jul 5, 2026
be89f74
Delete wlx/jsonview/langs/ru/LC_MESSAGES/plugins.mo
alexx2000 Jul 5, 2026
ca0328f
Delete wlx/jsonview/src/Makefile
alexx2000 Jul 5, 2026
5eb132e
Delete wlx/jsonview/src/plugin.cpp
alexx2000 Jul 5, 2026
ff377a7
Delete wlx/jsonview/jsonview1.png
alexx2000 Jul 5, 2026
3f16122
Delete wlx/jsonview/jsonview2.png
alexx2000 Jul 5, 2026
08542da
Delete wlx/jsonview/README.md
alexx2000 Jul 5, 2026
20b114e
Update build.sh
alexx2000 Jul 5, 2026
d0d8434
Add Ctrl+Q shortcut to close preview pane
pplupo Jul 5, 2026
7a45316
Add Ctrl+Q shortcut to close preview pane
pplupo Jul 5, 2026
306a1ec
Add Ctrl+Q shortcut to close preview pane
pplupo Jul 5, 2026
84f171b
Add Ctrl+Q shortcut to close preview pane
pplupo Jul 5, 2026
d2dd65e
Handle Ctrl+Q by posting to window
pplupo Jul 5, 2026
b881864
Handle Ctrl+Q by posting to window
pplupo Jul 5, 2026
6b60f48
Handle Ctrl+Q by posting to window
pplupo Jul 5, 2026
4c2f4a8
Handle Ctrl+Q by posting to window
pplupo Jul 5, 2026
ea442ca
Handle Ctrl+Q for logviewer
pplupo Jul 5, 2026
0e366bb
Rename kpart binary to kpart_host_qt6.wlx
pplupo Jul 6, 2026
406a658
Fix focus stealing, Kate navigation keys, and Ctrl+Q handling in kpar…
pplupo Jul 7, 2026
a6c07c7
Update compiled kpart_host_qt6.wlx binary
pplupo Jul 7, 2026
556883a
Merge branch 'doublecmd:master' into master
pplupo Jul 7, 2026
a8851c7
Merge branch 'doublecmd:master' into csvview
pplupo Jul 7, 2026
cbaea2b
Merge branch 'doublecmd:master' into dbview
pplupo Jul 7, 2026
cfcd7ff
Merge branch 'doublecmd:master' into kate
pplupo Jul 7, 2026
6f0a1fe
Merge branch 'doublecmd:master' into structview
pplupo Jul 7, 2026
4597f28
Merge remote-tracking branch 'upstream/master' into kpart
pplupo Jul 7, 2026
1f81a12
Merge remote-tracking branch 'upstream/master' into mpv_wayland
pplupo Jul 7, 2026
8b0c22c
Merge remote-tracking branch 'upstream/master' into logview
pplupo Jul 7, 2026
2a8e5ca
Dynamically build detect string based on installed KParts
pplupo Jul 7, 2026
ad9add4
Use preferred suffix to avoid detect string truncation
pplupo Jul 7, 2026
2f315d8
Use flat extension list and include okular generators
pplupo Jul 7, 2026
1f5924b
Fix truncation by chopping preferredSuffix at last dot
pplupo Jul 7, 2026
0c7a936
Revert to full glob patterns with unique set to test truncation again
pplupo Jul 7, 2026
7459f94
Restore preferredSuffix logic
pplupo Jul 7, 2026
a33d722
Implement smart packing with priority list
pplupo Jul 7, 2026
dec9eb4
Add Fortran, Perl, Makefile, and LaTeX extensions to priority list
pplupo Jul 7, 2026
ab295bc
Fix markdownpart loading scrolled to bottom
pplupo Jul 7, 2026
22769f3
revert focus refactor and add Ctrl+Q shortcut with compiled binary
pplupo Jul 6, 2026
3216969
Dynamically generate detect string from Kate mime types
pplupo Jul 8, 2026
f6390bf
kpart: persist zoom settings, fix mutual exclusion, add Ctrl+Shift+S
pplupo Jul 9, 2026
a5b553d
Delete wlx/mpv_wayland/build/mpv_wayland.wlx
alexx2000 Jul 11, 2026
43593b9
Update build.sh
alexx2000 Jul 11, 2026
4c924dc
Migrate office viewing plugin to Qt6 and add OnlyOffice support
pplupo Jul 12, 2026
3e435fb
Fix x2t fallback, LOK invisible characters, and render all slides lazily
pplupo Jul 13, 2026
d13d954
Add conversion logs and auto-populate configuration defaults
pplupo Jul 13, 2026
70cf71b
Fix x2t headless font paths and working directory
pplupo Jul 13, 2026
f33f27f
Fix LOKit shutdown hang and handle x2t non-fatal exit codes
pplupo Jul 13, 2026
ae74572
Fix x2t engine path resolution and LOKit atexit crash
pplupo Jul 13, 2026
b86f060
Add EngineForLegacyMS configuration option
pplupo Jul 13, 2026
a423a72
Fix officeview focus handling, per-sheet pagination, and config layout
pplupo Jul 14, 2026
9592fad
Replace QPdfView with MuPDF for real click-drag text selection
pplupo Jul 14, 2026
beca5a7
Add README documenting engine detection, config, and known limitations
pplupo Jul 14, 2026
757400f
Merge branch 'doublecmd:master' into master
pplupo Jul 14, 2026
ab9f0a3
Merge branch 'doublecmd:master' into officeview
pplupo Jul 14, 2026
e7b4072
Add Google Drive support to officeview via rclone stub export
pplupo Jul 14, 2026
355b491
Merge branch 'doublecmd:master' into dbview
pplupo Jul 15, 2026
38f714f
dbview: enable RTTI when building RocksDB
pplupo Jul 15, 2026
83bf7cb
Fix: statically link mupdf and fix x2t headless font bug via bwrap
pplupo Jul 27, 2026
c006f56
fix(wlx/kpart): fix Zoom to Fit checkable action restore behavior wit…
pplupo Jul 31, 2026
76f8a1c
Enhance LogViewerWidget UI spacing, search/filter logic, and datetime…
pplupo Aug 3, 2026
13d0c59
Enable text selection and fix popup focus for Okular
pplupo Aug 11, 2026
7d69806
Update compiled kpart plugin
pplupo Aug 11, 2026
97329f6
Merge csvview into master
pplupo Aug 13, 2026
100402b
Merge officeview into master
pplupo Aug 13, 2026
11e4336
Merge dbview into master
pplupo Aug 13, 2026
3ea04a0
Merge diagramview into master
pplupo Aug 13, 2026
6b012c8
Merge kate into master
pplupo Aug 13, 2026
1f034d6
Merge kpart into master
pplupo Aug 13, 2026
a957c96
Merge logview into master
pplupo Aug 13, 2026
67a56a5
Merge mdk into master
pplupo Aug 13, 2026
211feb0
Merge mpv_wayland into master
pplupo Aug 13, 2026
ae5bb45
Merge plugin-platform into master
pplupo Aug 13, 2026
d005fea
Merge plugman into master
pplupo Aug 13, 2026
4a9b653
Merge structview into master
pplupo Aug 13, 2026
03f7e53
Fix: Port structview Ctrl+Q shortcut to new architecture
pplupo Aug 13, 2026
d84760d
Remove jsonview plugin (superseded by structview)
pplupo Aug 13, 2026
1db24ad
Merge branch 'csvview' to rename config file
pplupo Aug 13, 2026
ab35742
Rename csvview configuration file to wlx_csvview.ini
pplupo Aug 13, 2026
f07d080
Add wlx_markdown Qt6 Lister plugin with LaTeX, Mermaid, PlantUML, and…
pplupo Aug 13, 2026
6c20087
Rename plugin directory and target to markdownview
pplupo Aug 13, 2026
9db6e1a
Enforce static linking for internal dependencies and libstdc++ runtime
pplupo Aug 13, 2026
03a23ea
dbview: static/vendored duckdb, lmdb, Berkeley DB; de-Qtify SQLite/Fi…
pplupo Aug 14, 2026
abe8cc9
Merge branch 'dbview'
pplupo Aug 14, 2026
a3cdcd8
Merge remote-tracking branch 'origin/master'
pplupo Aug 14, 2026
9e14672
mdk: De-Qtify core — extract MdkEngine, add CMake build
pplupo Aug 14, 2026
eafe64b
Merge branch 'mdk'
pplupo Aug 14, 2026
ff83b4b
mdk: GTK3 port via GtkGLArea + MdkEngine
pplupo Aug 14, 2026
c6e10df
Merge branch 'mdk'
pplupo Aug 14, 2026
45b125c
markdownview: fix webkit2gtk pin, enable GTK3 build by default
pplupo Aug 14, 2026
707aea4
Merge branch 'markdownview'
pplupo Aug 14, 2026
9970dea
diagramview: de-Qtify + GTK3 port (GtkDrawingArea + librsvg + Cairo)
pplupo Aug 14, 2026
a18bd03
Merge branch 'diagramview'
pplupo Aug 14, 2026
63f1a8c
csvview: de-Qtify CSV core + self-contained GTK3 grid
pplupo Aug 14, 2026
bacb56c
Merge remote-tracking branch 'origin/csvview' into csvview
pplupo Aug 14, 2026
c80c4da
Merge branch 'csvview'
pplupo Aug 14, 2026
b4a150f
logview: De-Qtify core — extract LogEngine, fix a real tail-follow bug
pplupo Aug 14, 2026
ad73443
Merge branch 'logview'
pplupo Aug 14, 2026
fadf801
wlxbase_gtk: new GTK3 shared foundation library, mirroring wlxbase_wlqt
pplupo Aug 14, 2026
5fca456
csvview: complete GTK3 UI on wlxbase_gtk (undo/redo, find/replace)
pplupo Aug 14, 2026
91bf071
Merge branch 'csvview'
pplupo Aug 14, 2026
9bbd5a3
logview: GTK3 port with a custom virtual GtkTreeModel
pplupo Aug 14, 2026
55b9cca
Merge branch 'logview'
pplupo Aug 14, 2026
a6587e6
mpv_wayland: De-Qtify core (MpvEngine) + GTK3 port via GtkGLArea
pplupo Aug 14, 2026
216512f
Merge remote-tracking branch 'origin/mpv_wayland' into mpv_wayland
pplupo Aug 14, 2026
5528895
Merge branch 'mpv_wayland'
pplupo Aug 14, 2026
dda4824
officeview: De-Qtify core (OfficeCore) + GTK3 port
pplupo Aug 14, 2026
38b064c
Merge officeview into master
pplupo Aug 14, 2026
7eb4044
structview: De-Qtify core (structview_core) + GTK3 port
pplupo Aug 14, 2026
c504f77
Merge origin/structview (remote had 1 commit we didn't)
pplupo Aug 14, 2026
de933a8
Merge structview into master
pplupo Aug 14, 2026
08158b6
dbview: GTK3 UI via a new Qt-free DbEngineCore
pplupo Aug 14, 2026
83cb1fc
Merge dbview into master
pplupo Aug 14, 2026
8c56762
dbview: chunked/lazy row fetching + vendored embedded Firebird with r…
pplupo Aug 14, 2026
e9fb7f5
Remove accidentally-committed wlxbase_gtk/build/ artifacts
pplupo Aug 14, 2026
53fc1cf
Merge dbview into master
pplupo Aug 14, 2026
b37ec94
markdownview: eliminate QtNetwork/QtSvg/QtWidgets/QtPrintSupport from…
pplupo Aug 14, 2026
d710df0
Merge markdownview into master
pplupo Aug 14, 2026
eb6f6bd
logview: vendor a matching Abseil instead of relying on system libabsl
pplupo Aug 14, 2026
78e890b
Merge logview into master
pplupo Aug 14, 2026
ba17095
markdownview: replace md4qt with md4c, split MicroTeX LaTeX backend p…
pplupo Aug 14, 2026
4430d39
Merge markdownview into master
pplupo Aug 14, 2026
b5a837f
gtk3: attach ListLoad's root widget via gtk_layout_put(), not gtk_con…
pplupo Aug 15, 2026
9919588
gtk3: attach ListLoad's root widget via gtk_layout_put(), not gtk_con…
pplupo Aug 15, 2026
c325a09
gtk3: attach ListLoad's root widget via gtk_layout_put(), not gtk_con…
pplupo Aug 15, 2026
c4fe2a3
gtk3: attach ListLoad's root widget via gtk_layout_put(), not gtk_con…
pplupo Aug 15, 2026
ccc6ca0
gtk3: attach ListLoad's root widget via gtk_layout_put(), not gtk_con…
pplupo Aug 15, 2026
e265ee0
gtk3: attach ListLoad's root widget via gtk_layout_put(), not gtk_con…
pplupo Aug 15, 2026
a56be86
Merge markdownview into master
pplupo Aug 15, 2026
2be449d
Merge csvview into master
pplupo Aug 15, 2026
8feb439
Merge diagramview into master
pplupo Aug 15, 2026
46b4b7b
Merge logview into master
pplupo Aug 15, 2026
7a6c464
Merge structview into master
pplupo Aug 15, 2026
c5b75a1
Merge mpv_wayland into master
pplupo Aug 15, 2026
828381a
dbview: drop Firebird support (both Qt6 and GTK3 targets)
pplupo Aug 15, 2026
55c0f23
Merge dbview into master
pplupo Aug 15, 2026
ca31bf5
mdk: disable GTK3 variant by default (libmdk.so not apt-installable)
pplupo Aug 15, 2026
b9c6f5f
Merge mdk into master
pplupo Aug 15, 2026
873eac7
csvview: bring GTK3 toolbar to parity with Qt6 (row numbers, full too…
pplupo Aug 15, 2026
44bc327
Merge csvview into master
pplupo Aug 15, 2026
0f24765
cuda: new GTK3 WLX plugin, the GTK analog of kate_qt6
pplupo Aug 15, 2026
3d8ffd8
Merge cuda into master
pplupo Aug 15, 2026
104d57d
cuda: implement the remaining kate_qt6 feature-parity items
pplupo Aug 15, 2026
9bfb65c
Merge cuda into master
pplupo Aug 15, 2026
b7acb59
diagramview: don't call gtk_dialog_run() synchronously from ListLoad()
pplupo Aug 16, 2026
650b910
Merge diagramview into master
pplupo Aug 16, 2026
80c09fb
logview: fix custom GtkTreeModel's broken structural-change notification
pplupo Aug 16, 2026
d3749bf
Merge logview into master
pplupo Aug 16, 2026
ab3c34f
mpv_wayland: try both EGL and GLX for mpv's GL proc-address resolver
pplupo Aug 16, 2026
a0e909d
Merge mpv_wayland into master
pplupo Aug 16, 2026
035fa69
csvview: add row/column context menu (right-click)
pplupo Aug 16, 2026
75ba46f
Merge csvview into master
pplupo Aug 16, 2026
e5e05db
wlxbase_gtk: fix use-after-free in GtkEditableGridWidget undo/redo
pplupo Aug 17, 2026
e4a3d8d
Merge wlxbase_gtk: fix GtkEditableGridWidget undo/redo use-after-free
pplupo Aug 17, 2026
f8ddd25
csvview: fix blank Show Text panel
pplupo Aug 17, 2026
bb63eff
Merge csvview: fix blank Show Text panel
pplupo Aug 17, 2026
8398c01
structview: rewrite GTK3 toolbar for feature parity with Qt6
pplupo Aug 17, 2026
cfef2e9
Merge structview: rewrite GTK3 toolbar for feature parity with Qt6
pplupo Aug 17, 2026
9413608
dbview: rebuild GTK3 toolbar for feature parity with Qt6
pplupo Aug 18, 2026
4c364bb
Merge dbview: rebuild GTK3 toolbar for feature parity with Qt6
pplupo Aug 18, 2026
95eefac
logview: bring Highlight Rules settings dialog to Qt6 parity
pplupo Aug 18, 2026
99d0d62
Merge logview: bring Highlight Rules settings dialog to Qt6 parity
pplupo Aug 18, 2026
b4ac3ad
logview: give the time slicer spinners and a live-updating filter
pplupo Aug 18, 2026
11f6f3e
Merge logview: give the time slicer spinners and a live-updating filter
pplupo Aug 18, 2026
2646d5d
wlxbase_gtk: show icon+text on toolbar buttons, with Unicode fallback
pplupo Aug 18, 2026
4db2142
Merge wlxbase_gtk: show icon+text on toolbar buttons, with Unicode fa…
pplupo Aug 18, 2026
d7dd1b3
structview: add a status bar (format name + row/column count)
pplupo Aug 18, 2026
ac7bf48
Merge structview: add a status bar (format name + row/column count)
pplupo Aug 18, 2026
cd4d201
wlxbase_gtk: add setShowGrid and pasteSelectionAt to GtkEditableGridW…
pplupo Aug 18, 2026
e9830af
Merge wlxbase_gtk: add setShowGrid and pasteSelectionAt to GtkEditabl…
pplupo Aug 18, 2026
c55307b
dbview: use GtkEditableGridWidget::setShowGrid instead of calling gtk…
pplupo Aug 18, 2026
99d237e
Merge dbview: use GtkEditableGridWidget::setShowGrid
pplupo Aug 18, 2026
39f6f0d
logview: fix crash on close (GObject ref leak) + settings dialog colo…
pplupo Aug 18, 2026
0c5b86c
Merge logview: fix crash on close + settings dialog color swatches + …
pplupo Aug 18, 2026
e6f6c6e
wlxbase_gtk: fix Find/Replace panel never actually becoming visible
pplupo Aug 18, 2026
2cda565
Merge wlxbase_gtk: fix Find/Replace panel never actually becoming vis…
pplupo Aug 18, 2026
f10c9aa
csvview: actually fix Show Text still blank (earlier gtk_widget_show_…
pplupo Aug 18, 2026
2149a0a
Merge csvview: actually fix Show Text still blank
pplupo Aug 18, 2026
ce08cdf
logview: fix spinner rendering and Move Up/Down losing selection
pplupo Aug 18, 2026
60125b8
Merge logview: fix spinner rendering and Move Up/Down losing selection
pplupo Aug 18, 2026
a28d44f
mpv_wayland: force immediate GL realization instead of waiting on DC'…
pplupo Aug 18, 2026
1a7cf04
Merge mpv_wayland: force immediate GL realization instead of waiting …
pplupo Aug 18, 2026
4ac70f6
csvview: fix column titles shifted by row-number gutter; add column-h…
pplupo Aug 19, 2026
fdc9397
Merge csvview: fix column titles shifted by row-number gutter; add co…
pplupo Aug 19, 2026
a8fa212
csvview: multi-column selection, row/column mutual exclusivity, N-awa…
pplupo Aug 19, 2026
c033cc6
Merge csvview: multi-column selection, row/column mutual exclusivity,…
pplupo Aug 19, 2026
8e45dca
wlxbase_gtk: add setWordWrap to GtkEditableGridWidget, actually make …
pplupo Aug 20, 2026
78e0f73
csvview: wire Word Wrap to the grid, not just Show Text; fix wording
pplupo Aug 20, 2026
017c6ad
structview: wire Word Wrap to the grid, not just Show Text
pplupo Aug 20, 2026
0bc0378
dbview: drop ad-hoc word-wrap implementation, use the shared one
pplupo Aug 20, 2026
87004fa
logview: fix EAccessViolation crash on closing Highlight Rules dialog
pplupo Aug 20, 2026
76ade18
sourceview: rename from cuda (it isn't CudaText), add menu bar
pplupo Aug 20, 2026
9984779
Merge word-wrap-and-crash-fixes: grid Word Wrap, logview crash fix, s…
pplupo Aug 20, 2026
b36a341
mpv_wayland: fix quick-view black panel, export ListLoadNext, add men…
pplupo Aug 21, 2026
21f743e
Merge mpv-quickview-fix-and-menu: fix black quick-view panel, export …
pplupo Aug 21, 2026
fe213cf
diagramview: fix locale-facet crash, UI freeze, and dark-mode rendering
pplupo Aug 21, 2026
be5ef64
markdownview: fix crashes, LaTeX rendering, and stray $ misparsing
pplupo Aug 21, 2026
dfde275
logview: fix use-after-free crash on close during Follow mode
pplupo Aug 21, 2026
b381fc2
Merge diagramview-markdownview-crash-fixes: fix locale-facet crashes,…
pplupo Aug 21, 2026
3e41297
logview: fix locale-facet crash when closing Highlight Rules dialog
pplupo Aug 22, 2026
649bc4e
Merge logview-facet-crash-fix: fix locale-facet crash when closing Hi…
pplupo Aug 22, 2026
ccb0a77
logview: fix time-filter spinner minus glyph and Clean button label
pplupo Aug 22, 2026
56bc748
Merge logview-icon-fixes: fix time-filter spinner minus glyph and Cle…
pplupo Aug 22, 2026
1e0f24b
wlxbase_gtk: fix GtkFocusManager shortcut interception and Shift-comb…
pplupo Aug 23, 2026
ff46960
structview, csvview: replace unwinnable Ctrl+O with Ctrl+E for Open E…
pplupo Aug 23, 2026
8c8f899
dbview: add shortcuts, cell context menu, real undo/redo, and BLOB re…
pplupo Aug 23, 2026
04a5514
markdownview: fix context menu crashes, theme selection, zoom, and co…
pplupo Aug 23, 2026
50d2956
Merge 227-shortcut-context-menu-parity: shortcut interception fix, db…
pplupo Aug 23, 2026
10ad8df
markdownview: CSS precedence, self-seeding, blockquote/accent theming…
pplupo Aug 24, 2026
61d08aa
Merge markdownview-theme-accent-polish: CSS precedence/self-seeding/a…
pplupo Aug 24, 2026
300d3bb
markdownview: single-file CSS theming, ini/plugin-name standardizatio…
pplupo Aug 24, 2026
98073c0
Merge markdownview-single-css-and-ini-standardization: single-file CS…
pplupo Aug 24, 2026
50bcf1b
docs: document GTK3/Qt6 dual-toolkit split in all 9 plugin READMEs
pplupo Aug 25, 2026
b25f568
Merge docs-dual-toolkit-readmes: document GTK3/Qt6 split in all 9 plu…
pplupo Aug 25, 2026
bf47a06
officeview: fix GTK3 widget never parented into DC's panel
pplupo Aug 25, 2026
4b4b6aa
Merge officeview-gtk3-widget-parenting-fix: fix blank GTK3 render (mi…
pplupo Aug 25, 2026
7c2f705
officeview: fix x2t font embedding via bwrap tmpfs overlay for conver…
pplupo Aug 26, 2026
aa38f71
Merge officeview-x2t-tmpfs-font-cache-fix: fix x2t font embedding via…
pplupo Aug 26, 2026
3c1c052
ci: fix build.sh plugin names, add missing wlx plugins, install GTK3/…
pplupo Aug 26, 2026
e8ba688
ci: drop nonexistent Qt6 -dev packages, qt6-base-dev already provides…
pplupo Aug 26, 2026
5a7900d
ci: zip each plugin individually, fix release upload on manual dispatch
pplupo Aug 26, 2026
f99bc61
ci: auto-generate release notes listing every plugin, its toolkit, an…
pplupo Aug 26, 2026
764290a
ci: also trigger release workflow on pre-releases
pplupo Aug 26, 2026
64df97b
ci: work around forks not receiving release-triggered Actions runs
pplupo Aug 26, 2026
443fe92
docs: add sourceview README, package it in build.sh
pplupo Aug 26, 2026
e99e724
docs: audit v0.01 zips, trim docs from zip payloads, enhance kate README
pplupo Aug 26, 2026
9f84525
fix: all 5 v0.01 missing-binary bugs (exif, rclone, officeview, logvi…
pplupo Aug 26, 2026
f8e217a
Merge remote-tracking branch 'upstream/master'
pplupo Aug 26, 2026
1e0799f
docs: update structview README and screenshots
pplupo Aug 26, 2026
064fd42
Change image paths to relative in README.md
pplupo Aug 26, 2026
157d409
Fix image paths in README.md
pplupo Aug 26, 2026
c515069
feat: markdownview theming/footnotes/print/zoom/find parity with kpar…
pplupo Aug 27, 2026
ae099a0
fix: markdownview footnotes -- split defs squashed into one paragraph
pplupo Aug 27, 2026
2a00dc4
feat: markdownview persisted 'Save Zoom' setting
pplupo Aug 27, 2026
551f9ea
fix: markdownview print white border in dark theme, harden zoom save
pplupo Aug 27, 2026
2ee5191
fix: markdownview_qt6 exception safety in ListLoad/reloadContent
pplupo Aug 27, 2026
3a77b58
fix: markdownview 'Save Zoom' was completely inert -- CSS font-size o…
pplupo Aug 27, 2026
50a1893
feat: markdownview_qt6 scales images with the zoom factor too
pplupo Aug 27, 2026
6495fae
fix: markdownview LaTeX formula images had no explicit width/height, …
pplupo Aug 27, 2026
48268af
chore: markdownview strip debug logging code
pplupo Aug 27, 2026
850f1dc
docs(structview): document CBOR, YAML, and TOML format support
pplupo Aug 28, 2026
3e3e8f4
fix(wlx/kate): ignore spurious lc_focus(0) during directory refresh
pplupo Aug 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
57 changes: 57 additions & 0 deletions .github/generate_release_notes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/bin/bash
# Builds the GitHub Release description: one row per plugin actually
# packaged by build.sh, with its toolkit(s) and a link to its README.md
# (pinned to this release's tag so the link doesn't drift as the plugin
# changes on master later) when one exists.
#
# Usage: generate_release_notes.sh <repo "owner/name"> <tag> > notes.md

set -euo pipefail
REPO="$1"
TAG="$2"

readme_link() {
local path="$1"
if [ -f "$path/README.md" ]; then
echo "[README](https://github.com/$REPO/blob/$TAG/$path/README.md)"
else
echo "—"
fi
}

row() {
local path="$1" toolkit="$2" description="$3"
printf '| %s | %s | %s | %s |\n' "$(basename "$path")" "$toolkit" "$description" "$(readme_link "$path")"
}

echo "## Plugins in this release"
echo
echo "| Plugin | Toolkit | What it does | Docs |"
echo "|---|---|---|---|"
row wcx/diskdir "Lazarus/FPC" "Disk usage/free-space info column"
row wdx/crx_wdx "Rust" "Chrome extension (.crx) metadata"
row wdx/exif "Lazarus/FPC" "EXIF metadata for images"
row wdx/ooinfo "Lazarus/FPC" "OpenOffice document info"
row wdx/ooxml "Lazarus/FPC" "Office Open XML document info"
row wdx/similarity "Lazarus/FPC" "File similarity / near-duplicate detection"
row wdx/xpi_wdx "Lazarus/FPC" "Firefox extension (.xpi) metadata"
row wdx/mediainfo "Lua" "Media file metadata via mediainfo CLI"
row wdx/translitwdx "Lua" "Cyrillic transliteration"
row wfx/gvfs "Lazarus/FPC" "Browse GVFS network filesystems"
row wfx/rclone "Lazarus/FPC" "Browse rclone cloud storage remotes"
row wlx/gstplayer "GTK2 + GStreamer" "Simple media player in Quick View"
row wlx/fileinfo "Shell script" "File info via command-line utilities"
row wlx/csvview "GTK3 + Qt6" "CSV/TSV spreadsheet-like grid viewer/editor"
row wlx/dbview "GTK3 + Qt6" "Multi-engine DB viewer/editor (SQLite, DuckDB, LMDB, ...)"
row wlx/structview "GTK3 + Qt6" "JSON/XML/INI structured text viewer/editor"
row wlx/sourceview "GTK3 only" "Text editor with syntax highlighting"
row wlx/kpartview "Qt6 + KDE Frameworks 6" "Universal KDE KParts host (Okular, etc.)"
row wlx/officeview "GTK3 + Qt6" "MS Office / OpenDocument file preview"
row wlx/logview "GTK3 + Qt6" "Large log file viewer with search/filter"
row wlx/mpv_wayland "GTK3 + Qt6" "Video playback via libmpv"
row wlx/kate "Qt6 + KDE Frameworks 6" "Text editor with syntax highlighting"
row wlx/diagramview "GTK3 + Qt6" "Mermaid/PlantUML diagram viewer"
row wlx/mdk "GTK3 + Qt6" "Multimedia preview via MDK SDK"
row wlx/markdownview "GTK3 + Qt6" "Rich Markdown preview"
echo
echo "Each plugin is packaged as its own zip below -- grab only the ones you need."
107 changes: 99 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,125 @@
name: build-release

on:
# `release` events don't reliably reach Actions on a forked repo (this repo
# is a fork of doublecmd/plugins) -- confirmed empirically: two published
# releases here, zero release-triggered runs. workflow_dispatch is the
# trigger that's actually confirmed to work, so it takes an optional tag
# input: leave blank for a plain build-only smoke test, or fill in an
# existing release's tag to also upload zips + set its release notes.
workflow_dispatch:
inputs:
release_tag:
description: "Existing release tag to upload zips to (leave blank to just build)"
required: false
type: string
release:
types: [released]
# "released" alone excludes pre-releases -- also listen for
# "prereleased" since you mark early builds as pre-release. Kept even
# though it isn't currently firing, in case GitHub's fork behavior here
# changes or this repo stops being treated as a fork.
types: [released, prereleased]

concurrency:
group: ${{ github.ref }}
cancel-in-progress: true

permissions:
contents: write

jobs:
build-lin:
runs-on: ubuntu-22.04
# noble (24.04), not jammy (22.04): the Qt6/KDE Frameworks 6 plugins
# (csvview, dbview, diagramview, kpartview, kate, logview, markdownview,
# mdk, mpv_wayland, officeview, structview) need apt packages that
# jammy's repos don't carry at all.
runs-on: ubuntu-24.04
steps:
- name: Install Lazarus
run: sudo apt install lazarus
run: sudo apt install -y lazarus

- name: Install GTK2 library (legacy Pascal/Lazarus plugins)
run: sudo apt install -y libgtk2.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

- name: Install base build tooling (CMake-based plugins)
run: sudo apt install -y build-essential cmake ninja-build meson pkg-config git curl wget zlib1g-dev libssl-dev zip

- name: Install GTK3 + its plugin-specific dependencies
run: |
sudo apt install -y \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libcairomm-1.0-dev \
libpangomm-1.4-dev \
libfreetype-dev \
libfontconfig-dev \
librsvg2-dev \
libepoxy-dev \
libmpv-dev \
libxml2-dev

# qt6-base-dev already ships the QtOpenGLWidgets/QtPrintSupport headers on
# noble -- there's no separate -dev package for those modules, only
# runtime libqt6*t64 packages, which qt6-base-dev pulls in as deps anyway.
- name: Install Qt6 + its plugin-specific dependencies
run: |
sudo apt install -y \
qt6-base-dev \
qt6-base-dev-tools \
qt6-svg-dev \
libqt6opengl6-dev

- name: Install structview's yaml-cpp dependency
run: sudo apt install -y libyaml-cpp-dev

# Best-effort: KDE Frameworks 6 packaging on a given Ubuntu release can
# lag behind Qt6 itself. If these aren't available, kpartview and kate
# (the only two plugins that need them) are skipped further down via
# `cmake --build . --target <name> || true` rather than failing the
# whole workflow.
- name: Install KDE Frameworks 6 (kpartview, kate) - best effort
continue-on-error: true
run: |
sudo apt install -y \
extra-cmake-modules \
libkf6parts-dev \
libkf6kio-dev \
libkf6coreaddons-dev \
libkf6xmlgui-dev \
libkf6texteditor-dev \
libkf6config-dev

- name: Install GTK library
run: sudo apt install libgtk2.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

- name: Checkout source
uses: actions/checkout@v2

- name: Build packages
run: ./build.sh

# Resolves to the release tag whichever way we got triggered: the real
# tag on a `release` event, or whatever was typed into the manual
# workflow_dispatch input. Empty on a plain build-only dispatch run.
- name: Determine target release tag
id: target
run: |
if [ "${{ github.event_name }}" = "release" ]; then
echo "tag=${{ github.ref_name }}" >> "$GITHUB_OUTPUT"
else
echo "tag=${{ inputs.release_tag }}" >> "$GITHUB_OUTPUT"
fi

- name: Upload binaries to release
if: steps.target.outputs.tag != ''
uses: svenstaro/upload-release-action@v2
with:
file: plugins-*.tar.gz
tag: ${{ github.ref }}
file: "*.zip"
tag: ${{ steps.target.outputs.tag }}
overwrite: true
file_glob: true

- name: Set release notes (plugin list, toolkit, docs links)
if: steps.target.outputs.tag != ''
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
./.github/generate_release_notes.sh "$GITHUB_REPOSITORY" "${{ steps.target.outputs.tag }}" > /tmp/notes.md
gh release edit "${{ steps.target.outputs.tag }}" --notes-file /tmp/notes.md
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "plugin-platform"]
path = plugin-platform
url = https://github.com/pplupo/doublecmd_plugins
branch = plugin-platform
32 changes: 32 additions & 0 deletions RELEASE_AUDIT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Release v0.01 zip audit (2026-08-26)

Every zip attached to [v0.01](https://github.com/pplupo/doublecmd_plugins/releases/tag/v0.01)
was downloaded and listed with `unzip -l` (no extraction) to check whether it actually
contains its plugin binary. Root causes below were found in the build run's log
(`gh run view 32974297597 --repo pplupo/doublecmd_plugins --log`).

**All five gaps below have since been fixed** (in the commit that added this note) and
verified with a real local build of each plugin. `v0.01`'s zips still reflect the broken
state described here until the workflow is re-run against that tag.

## Zips that were missing their plugin binary (now fixed)

| Zip | Contained | Root cause | Fix |
|---|---|---|---|
| `exif` | only `README.txt`, `license.txt`, `exif.lng` — no `exif.wdx` | Compile error: `exif.c:292: error: conflicting types for 'strlcpy'`. Ubuntu 24.04's glibc now declares `strlcpy` itself, which conflicted with the plugin's own private helper of the same name. | Renamed the plugin's helper to `exif_strlcpy` throughout `exif.c`. Verified with a direct `gcc -c` compile. |
| `rclone` | only `rclone.ico`, `COPYING.txt` — no `rclone.wfx` | Two separate bugs: (1) `rclone.lpi`'s `IncludeFiles`/`OtherUnitFiles` pointed `..\..\..\..\sdk` — one `..` too many, resolving outside the repo entirely instead of to `sdk/`. (2) Once that was fixed, a second real error surfaced: `FsExtractCustomIconW`'s `TheIcon: PWfxIcon` parameter type doesn't exist in this repo's `sdk/wfxplugin.pas`, which only has the older `var TheIcon: hicon` icon-extraction signature — the code was written against a newer WFX SDK than what's vendored here. | Fixed the include path to `..\..\..\sdk` (3 levels). Changed the signature to `var TheIcon: hicon` and simplified the body to always return `FS_ICON_USEDEFAULT` (the plugin never had working icon-loading code to produce a real `hicon` handle, so it now explicitly defers to DC's default icon instead of a struct-typed dead end). Verified with a full `lazbuild --build-mode=Release` producing `rclone.wfx`. |
| `officeview` | only `README.md` — no `officeview_qt6.wlx`/`officeview_gtk3.wlx` | `CMake Error: The current CMakeCache.txt directory ... is different than the directory ... where CMakeCache.txt was created.` **Cause: `wlx/officeview/build/CMakeCache.txt` was committed to git**, baked with an absolute path from a local dev machine (`/home/pplupo/repos/plugins/...`). When CI checked out the repo, that stale cache collided with the runner's own checkout path and CMake refused to proceed. Confirmed via `git ls-files` that `wlx/officeview/build/` was the only plugin's build dir with `CMakeCache.txt` actually tracked (other plugins had stray tracked files under `build/` too, but not their `CMakeCache.txt`, so they didn't hit this exact failure). | `git rm -r --cached` on every tracked `build/` directory repo-wide (`wlx/csvview`, `wlx/kate`, `wlx/kpartview`, `wlx/officeview`, `wlx/structview`, `wlx/wayland_qt_base`, `wfx/rclone` — 763 tracked files total) and added/extended a `build/` `.gitignore` entry in each of those plugin dirs. |
| `logview` | only `README.md`, `logviewer.png`, `color_editor.png`, a stray `double commander wlx log viewer.md` — no `logviewer.wlx` | Compile error: `LogViewerWidget.cpp:398: error: 'beginFilterChange' was not declared in this scope` (and 3 more of the same). `QSortFilterProxyModel::beginFilterChange()`/`endFilterChange()` are Qt 6.7+ API; `ubuntu-24.04`'s `qt6-base-dev` ships Qt 6.4.2. | Replaced all four `beginFilterChange()`/`endFilterChange()` pairs with `invalidateFilter()`, the pre-6.7 equivalent. Verified with a full CMake build in the same GTK3/Qt6 dev container used throughout this project (Qt 6.4.2), producing `logviewer.wlx`. |
| `mdk` | only `proposal.md`, `README.md` — no `mdk_qt6.wlx` | `fatal error: mdk/c/Player.h: No such file or directory`. The MDK SDK (`https://github.com/wang-bin/mdk-sdk`) is a third-party SDK `mdk_core` needs only the **headers** from at compile time (`libmdk.so` itself is `dlopen()`'d at runtime, see `MdkEngine.cpp`); it isn't an apt package and CI never fetched it. | `wlx/mdk/CMakeLists.txt` now uses `FetchContent` to download the pinned `mdk-sdk-linux-x64.tar.xz` v0.38.0 release tarball (SHA256-verified) and points `MDK_SDK_INCLUDE` at its `include/` dir, but only when a local `~/mdk-sdk/include` isn't already present (a dev's own manual SDK install still takes priority). Verified with a full CMake build (forcing the fetch path via `-DMDK_SDK_INCLUDE=/nonexistent`), producing `mdk_qt6.wlx`. |

## Confirmed correct (zip contains its plugin binary)

`crx_wdx`, `csvview` (both `_gtk3`/`_qt6`), `dbview` (both), `diagramview` (both), `diskdir`,
`fileinfo`, `gstplayer`, `gvfs`, `kate`, `kpartview`, `markdownview` (both),
`mpv_wayland` (both), `ooinfo`, `ooxml`, `similarity`, `sourceview`, `structview` (both),
`xpi_wdx`.

## Correctly binary-less (not a bug)

`mediainfo` and `translitwdx` are Lua scripts run by a Lua-hosting plugin, not
compiled `.wdx` binaries — their zips containing only `.lua`/text files is expected.
Loading