Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,14 @@ install -m 644 wdx/mediainfo/luajit/*.lua release/wdx/mediainfo/
install -m 644 wdx/translitwdx/translitwdx.lua release/wdx/translitwdx/
install -m 644 wdx/translitwdx/readme.txt release/wdx/translitwdx/

# kpart
mkdir -p release/wlx/kpart
mkdir -p wlx/kpart/build
(cd wlx/kpart/build && cmake .. && make)
install -m 644 wlx/kpart/build/kpart_host_qt6.wlx release/wlx/kpart/
install -m 644 wlx/kpart/*.md release/wlx/kpart/
install -m 644 wlx/kpart/*.png release/wlx/kpart/

# logview
mkdir -p release/wlx/logview
mkdir -p wlx/logview/build
Expand Down
43 changes: 43 additions & 0 deletions wlx/kpart/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
cmake_minimum_required(VERSION 3.16)
project(kpart_host_qt6 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)

# Double Commander plugin settings
set(CMAKE_SHARED_LIBRARY_PREFIX "")
if(UNIX)
set(CMAKE_SHARED_LIBRARY_SUFFIX ".wlx")
endif()

find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
find_package(KF6Parts REQUIRED)
find_package(KF6KIO REQUIRED)
find_package(KF6CoreAddons REQUIRED)

include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../../sdk
)

add_library(kpart_host_qt6 SHARED
src/main.cpp
src/kpartwidget.cpp
)

target_link_libraries(kpart_host_qt6
PRIVATE
Qt6::Core
Qt6::Gui
Qt6::Widgets
KF6::Parts
KF6::KIOFileWidgets
KF6::CoreAddons
)

# Use ECM for standard installation paths and KDE integration
find_package(ECM 5.80.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
26 changes: 26 additions & 0 deletions wlx/kpart/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# KPart Host Double Commander Plugin

A "Universal KDE Wrapper" WLX (Lister) plugin for Double Commander. This plugin acts as a host for KDE KParts, allowing Double Commander to view any file type supported by a KDE application (like Okular for PDFs or LibreOffice for documents) directly in the Quick View panel.

![Markdown Screenshot](kpart_md.png)
![SVG Screenshot](kpart_svg.png)

## Features
- Dynamic MIME-type detection using `QMimeDatabase`.
- Automatic loading of the best available KDE KPart for the file type.
- Native Wayland/Qt6 embedding via in-process KPart hosting.

## Dependencies
- **Qt6**: Core, Gui, Widgets
- **KDE Frameworks 6 (KF6)**: Parts, KIO, CoreAddons
- **CMake**: `cmake` and `extra-cmake-modules`

## Compilation
```bash
mkdir build
cd build
cmake ..
make
```

The build will produce `kpart_host.wlx`.
Binary file added wlx/kpart/build/kpart_host_qt6.wlx
Binary file not shown.
Binary file added wlx/kpart/kpart_md.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added wlx/kpart/kpart_svg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading