Skip to content

Add high-performance Log Viewer plugin#27

Open
pplupo wants to merge 2 commits into
doublecmd:masterfrom
pplupo:logview
Open

Add high-performance Log Viewer plugin#27
pplupo wants to merge 2 commits into
doublecmd:masterfrom
pplupo:logview

Conversation

@pplupo
Copy link
Copy Markdown
Contributor

@pplupo pplupo commented May 12, 2026

Description:
This PR adds a specialized log viewer plugin built with Qt6 and C++20. It is optimized for opening massive log files (gigabytes in size) instantly without causing the main Double Commander UI to freeze or lag.

Key Features:

  • Zero-Copy File Loading: Uses memory-mapped files (mmap) for instant access.
  • Fast Regex Searching: Offloads search operations to background threads using Google's RE2 engine.
  • Live Tailing: Monitors files for changes and auto-scrolls to the end.
  • Advanced focus-management layers to prevent Wayland focus stealing.

Recent Updates:

  • Integrated into the root build.sh script to automate building and release packaging.
  • Added screenshot demonstrating log colorization and search.

Changes included:

  • Complete C++ source for the custom model and view.
  • CMake build scripts.
  • Detailed architectural documentation.

pplupo added 2 commits May 12, 2026 10:08
This commit introduces a specialized log viewer WLX plugin built with
Qt6 and C++20. It is designed to handle massive log files without
freezing Double Commander, utilizing zero-copy file loading (mmap),
fast regex searching (RE2), and a robust focus-isolation architecture
for Wayland.

Committed files:
- Source code (src/) for the log model and viewer widget
- CMakeLists.txt for build configuration
- README.md and detailed design doc (double commander wlx log viewer.md)
- logviewer.png screenshot asset
- Integration into root build.sh for automated release packaging
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant