wip: sniproxy to traymanager1

This commit is contained in:
2025-12-18 16:52:13 +08:00
parent 1940ef7547
commit dbb755c976
17 changed files with 697 additions and 992 deletions

View File

@@ -1,9 +1,10 @@
cmake_minimum_required(VERSION 3.16)
project(xembed-sni-proxy)
project(xembed-traymanager-proxy)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_INCLUDE_CURRENT_DIR ON) # ensure adapter class can include related header
find_package(Qt6 6.8 CONFIG REQUIRED COMPONENTS DBus)
find_package(ECM REQUIRED NO_MODULE)
@@ -41,33 +42,35 @@ set(XCB_LIBS
set(XEMBED_SNI_PROXY_SOURCES
main.cpp
fdoselectionmanager.cpp fdoselectionmanager.h
snidbus.cpp snidbus.h
sniproxy.cpp
traymanager1.cpp traymanager1.h
traymanagerproxy.cpp traymanagerproxy.h
xtestsender.cpp xtestsender.h
)
qt_add_dbus_adaptor(XEMBED_SNI_PROXY_SOURCES org.kde.StatusNotifierItem.xml
sniproxy.h SNIProxy)
set_source_files_properties(
${CMAKE_CURRENT_SOURCE_DIR}/org.deepin.dde.TrayManager1.xml
PROPERTIES INCLUDE traylist.h
CLASSNAME TrayManager
)
set(statusnotifierwatcher_xml org.kde.StatusNotifierWatcher.xml)
qt_add_dbus_interface(XEMBED_SNI_PROXY_SOURCES ${statusnotifierwatcher_xml} statusnotifierwatcher_interface)
qt_add_dbus_adaptor(XEMBED_SNI_PROXY_SOURCES org.deepin.dde.TrayManager1.xml traymanager1.h TrayManager1)
ecm_qt_declare_logging_category(XEMBED_SNI_PROXY_SOURCES HEADER debug.h
IDENTIFIER SNIPROXY
CATEGORY_NAME kde.xembedsniproxy
CATEGORY_NAME dde.xembedsniproxy
DEFAULT_SEVERITY Info
DESCRIPTION "xembed sni proxy"
EXPORT PLASMAWORKSPACE
)
add_executable(xembedsniproxy ${XEMBED_SNI_PROXY_SOURCES})
set_property(TARGET xembedsniproxy PROPERTY AUTOMOC ON)
add_executable(xembed-traymanager-proxy ${XEMBED_SNI_PROXY_SOURCES})
set_property(TARGET xembed-traymanager-proxy PROPERTY AUTOMOC ON)
set_package_properties(XCB PROPERTIES TYPE REQUIRED)
target_link_libraries(xembedsniproxy
target_link_libraries(xembed-traymanager-proxy
Qt::Core
Qt::DBus
KF6::WindowSystem
@@ -75,7 +78,7 @@ target_link_libraries(xembedsniproxy
X11::Xtst
)
install(TARGETS xembedsniproxy ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(TARGETS xembed-traymanager-proxy ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES xembedsniproxy.desktop DESTINATION ${KDE_INSTALL_AUTOSTARTDIR})
ecm_install_configured_files(INPUT plasma-xembedsniproxy.service.in @ONLY DESTINATION ${KDE_INSTALL_SYSTEMDUSERUNITDIR})