Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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