From 59f880a58c2fe95cf4c5691b9fe2a06a438529e7 Mon Sep 17 00:00:00 2001 From: ck Date: Thu, 10 Aug 2023 15:30:35 +0800 Subject: [PATCH] feat: add deepinfiledialog theme compiling deepin file dialog theme without dtk depends --- .reuse/dep5 | 2 +- CMakeLists.txt | 2 +- platformthemeplugins/CMakeLists.txt | 6 ++ .../deepinfiledialogtheme/CMakeLists.txt | 41 +++++++++++ .../deepinfiledialog.json | 3 + .../deepinfiledialogtheme/main.cpp | 30 ++++++++ .../deepinfiledialogtheme/qdeepintheme.cpp | 69 +++++++++++++++++++ .../deepinfiledialogtheme/qdeepintheme.h | 32 +++++++++ .../deepintheme}/CMakeLists.txt | 16 ++--- .../deepintheme}/deepin-theme-plugin.qrc | 0 .../deepintheme}/deepin.json | 0 .../deepintheme}/dthemesettings.cpp | 0 .../deepintheme}/dthemesettings.h | 0 .../icons/actions/edit-copy_16px.svg | 0 .../icons/actions/edit-cut_16px.svg | 0 .../icons/actions/edit-delete_16px.svg | 0 .../icons/actions/edit-paste_16px.svg | 0 .../icons/actions/edit-redo_16px.svg | 0 .../icons/actions/edit-select-all_16px.svg | 0 .../icons/actions/edit-undo_16px.svg | 0 .../icons/deepin-theme-plugin-icons.qrc | 0 .../icons/icons/button_voice_active_30px.svg | 0 .../icons/button_voice_active_press_30px.svg | 0 .../icons/icons/dark/button_voice_30px.svg | 0 .../icons/dark/button_voice_press_30px.svg | 0 .../icons/icons/dark/edit-clear_30px.svg | 0 .../icons/dark/edit-clear_press_30px.svg | 0 .../icons/icons/dark/list_add_16px.svg | 0 .../icons/icons/dark/list_delete_16px.svg | 0 .../icons/dark/window-close_round_30px.svg | 0 .../dark/window-close_round_press_30px.svg | 0 .../icons/icons/dialog-right_30px.svg | 0 .../icons/icons/dialog-warning_30px.svg | 0 .../icons/icons/icon_fail_128px.svg | 0 .../icons/icons/icon_success_128px.svg | 0 .../icons/icons/light/button_voice_30px.svg | 0 .../icons/light/button_voice_press_30px.svg | 0 .../icons/icons/light/edit-clear_30px.svg | 0 .../icons/light/edit-clear_press_30px.svg | 0 .../icons/icons/light/list_add_16px.svg | 0 .../icons/icons/light/list_delete_16px.svg | 0 .../icons/light/window-close_round_30px.svg | 0 .../light/window-close_round_press_30px.svg | 0 .../icons/texts/audio-volume-left_24px.svg | 0 .../icons/texts/audio-volume-low_24px.svg | 0 .../icons/texts/audio-volume-medium_24px.svg | 0 .../icons/texts/audio-volume-muted_24px.svg | 0 .../icons/texts/audio-volume-right_24px.svg | 0 .../icons/texts/button_add_20px.svg | 0 .../icons/texts/button_reduce_12px.svg | 0 .../icons/texts/caps_lock_16px.svg | 0 .../deepintheme}/icons/texts/checked_20px.svg | 0 .../icons/texts/combobox_arrow_12px.svg | 0 .../deepintheme}/icons/texts/edit_12px.svg | 0 .../icons/texts/fork_indicator_24px.svg | 0 .../deepintheme}/icons/texts/go-down_12px.svg | 0 .../deepintheme}/icons/texts/go-next_12px.svg | 0 .../icons/texts/go-previous_12px.svg | 0 .../deepintheme}/icons/texts/go-up_12px.svg | 0 .../icons/texts/lock_indicator_24px.svg | 0 .../icons/texts/mark_indicator_12px.svg | 0 .../icons/texts/media-playback-pause_24px.svg | 0 .../icons/texts/media-playback-start_24px.svg | 0 .../icons/texts/media-skip-backward_24px.svg | 0 .../icons/texts/media-skip-forward_24px.svg | 0 .../icons/texts/next_indicator_24px.svg | 0 .../icons/texts/password_hide_24px.svg | 0 .../icons/texts/password_show_24px.svg | 0 .../icons/texts/prev_indicator_24px.svg | 0 .../icons/texts/search_indicator_20px.svg | 0 .../texts/selected_checked_indicator_16px.svg | 0 .../icons/texts/selected_indicator_16px.svg | 0 .../selected_indicator_16px.svg.background | 0 .../icons/texts/unchecked_20px.svg | 0 .../icons/texts/unlock_indicator_24px.svg | 0 .../icons/texts/unselected_indicator_16px.svg | 0 .../icons/texts/window-close_round_30px.svg | 0 .../deepintheme}/main.cpp | 0 .../deepintheme}/qdeepintheme.cpp | 2 +- .../deepintheme}/qdeepintheme.h | 0 .../deepintheme}/qtquickcontrols2.conf | 0 .../filedialog/filedialog.cmake | 14 ++++ .../filedialog}/qdeepinfiledialoghelper.cpp | 18 ++++- .../filedialog}/qdeepinfiledialoghelper.h | 0 .../com.deepin.filemanager.filedialog.xml | 0 ...m.deepin.filemanager.filedialogmanager.xml | 0 tests/CMakeLists.txt | 2 +- 87 files changed, 221 insertions(+), 16 deletions(-) create mode 100644 platformthemeplugins/CMakeLists.txt create mode 100644 platformthemeplugins/deepinfiledialogtheme/CMakeLists.txt create mode 100644 platformthemeplugins/deepinfiledialogtheme/deepinfiledialog.json create mode 100644 platformthemeplugins/deepinfiledialogtheme/main.cpp create mode 100644 platformthemeplugins/deepinfiledialogtheme/qdeepintheme.cpp create mode 100644 platformthemeplugins/deepinfiledialogtheme/qdeepintheme.h rename {platformthemeplugin => platformthemeplugins/deepintheme}/CMakeLists.txt (74%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/deepin-theme-plugin.qrc (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/deepin.json (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/dthemesettings.cpp (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/dthemesettings.h (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/actions/edit-copy_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/actions/edit-cut_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/actions/edit-delete_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/actions/edit-paste_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/actions/edit-redo_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/actions/edit-select-all_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/actions/edit-undo_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/deepin-theme-plugin-icons.qrc (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/button_voice_active_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/button_voice_active_press_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dark/button_voice_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dark/button_voice_press_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dark/edit-clear_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dark/edit-clear_press_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dark/list_add_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dark/list_delete_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dark/window-close_round_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dark/window-close_round_press_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dialog-right_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/dialog-warning_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/icon_fail_128px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/icon_success_128px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/light/button_voice_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/light/button_voice_press_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/light/edit-clear_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/light/edit-clear_press_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/light/list_add_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/light/list_delete_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/light/window-close_round_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/icons/light/window-close_round_press_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/audio-volume-left_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/audio-volume-low_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/audio-volume-medium_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/audio-volume-muted_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/audio-volume-right_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/button_add_20px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/button_reduce_12px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/caps_lock_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/checked_20px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/combobox_arrow_12px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/edit_12px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/fork_indicator_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/go-down_12px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/go-next_12px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/go-previous_12px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/go-up_12px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/lock_indicator_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/mark_indicator_12px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/media-playback-pause_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/media-playback-start_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/media-skip-backward_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/media-skip-forward_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/next_indicator_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/password_hide_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/password_show_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/prev_indicator_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/search_indicator_20px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/selected_checked_indicator_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/selected_indicator_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/selected_indicator_16px.svg.background (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/unchecked_20px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/unlock_indicator_24px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/unselected_indicator_16px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/icons/texts/window-close_round_30px.svg (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/main.cpp (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/qdeepintheme.cpp (99%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/qdeepintheme.h (100%) rename {platformthemeplugin => platformthemeplugins/deepintheme}/qtquickcontrols2.conf (100%) create mode 100644 platformthemeplugins/filedialog/filedialog.cmake rename {platformthemeplugin => platformthemeplugins/filedialog}/qdeepinfiledialoghelper.cpp (97%) rename {platformthemeplugin => platformthemeplugins/filedialog}/qdeepinfiledialoghelper.h (100%) rename {platformthemeplugin => platformthemeplugins/filedialog}/xmls/com.deepin.filemanager.filedialog.xml (100%) rename {platformthemeplugin => platformthemeplugins/filedialog}/xmls/com.deepin.filemanager.filedialogmanager.xml (100%) diff --git a/.reuse/dep5 b/.reuse/dep5 index 05bffec1..9e7fcc6c 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -24,7 +24,7 @@ Copyright: None License: CC0-1.0 # png svg dci -Files: platformthemeplugin/icons/* styleplugins/chameleon/*.svg styles/images/*.png +Files: platformthemeplugins/deepintheme/icons/* styleplugins/chameleon/*.svg styles/images/*.png tests/*/icons/*/*.svg tests/*/*.svg tests/*/icons/*/*.dci tests/imageformats/dci/*.dci tests/platformtheme/qt-theme.ini Copyright: None diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e62a973..24e1bd05 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,7 +116,7 @@ set(PLUGIN_INSTALL_BASE_DIR ${CMAKE_INSTALL_LIBDIR}/qt${QT_VERSION_MAJOR}/plugin add_subdirectory(iconengineplugins) add_subdirectory(imageformatplugins) -add_subdirectory(platformthemeplugin) +add_subdirectory(platformthemeplugins) add_subdirectory(styleplugins) if(CMAKE_BUILD_TYPE_LOWER STREQUAL debug) add_subdirectory(styles) diff --git a/platformthemeplugins/CMakeLists.txt b/platformthemeplugins/CMakeLists.txt new file mode 100644 index 00000000..58311f48 --- /dev/null +++ b/platformthemeplugins/CMakeLists.txt @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +# +# SPDX-License-Identifier: LGPL-3.0-or-later + +add_subdirectory(deepintheme) +add_subdirectory(deepinfiledialogtheme) diff --git a/platformthemeplugins/deepinfiledialogtheme/CMakeLists.txt b/platformthemeplugins/deepinfiledialogtheme/CMakeLists.txt new file mode 100644 index 00000000..1e2c580d --- /dev/null +++ b/platformthemeplugins/deepinfiledialogtheme/CMakeLists.txt @@ -0,0 +1,41 @@ +# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +# +# SPDX-License-Identifier: LGPL-3.0-or-later + +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS DBus Widgets) +set(QT_LIBS Qt${QT_VERSION_MAJOR}::DBus Qt${QT_VERSION_MAJOR}::Widgets) +if(QT_VERSION_MAJOR EQUAL 5) + find_package(Qt5X11Extras REQUIRED) + list(APPEND QT_LIBS Qt5::X11Extras) + if(QT_VERSION_MINOR GREATER_EQUAL 8) # Qt5.8 + find_package(Qt5ThemeSupport REQUIRED) + list(APPEND QT_LIBS Qt5::ThemeSupportPrivate) + else() + list(APPEND QT_LIBS Qt5::PlatformSupportPrivate) + endif() +else() + list(APPEND QT_LIBS Qt6::GuiPrivate) +endif() + +include(../filedialog/filedialog.cmake) + +dtk_add_plugin( + NAME + qdeepinfiledialog + OUTPUT_DIR + ${PLUGIN_OUTPUT_BASE_DIR}/platformthemes + INCLUDE_DIRS + ${CMAKE_CURRENT_LIST_DIR}/../filedialog + SOURCES + ${DFM_DLG_SOURCES} + qdeepintheme.cpp + main.cpp + ${DBUS_INTERFACES} + HEADERS + ${DFM_DLG_HEADERS} + qdeepintheme.h + DEPENDENCIES + ${QT_LIBS} + DEFINITIONS + ${DEFS} +) diff --git a/platformthemeplugins/deepinfiledialogtheme/deepinfiledialog.json b/platformthemeplugins/deepinfiledialogtheme/deepinfiledialog.json new file mode 100644 index 00000000..1e82d791 --- /dev/null +++ b/platformthemeplugins/deepinfiledialogtheme/deepinfiledialog.json @@ -0,0 +1,3 @@ +{ + "Keys" : [ "deepinfiledialog", "deepin", "DDE" ] +} diff --git a/platformthemeplugins/deepinfiledialogtheme/main.cpp b/platformthemeplugins/deepinfiledialogtheme/main.cpp new file mode 100644 index 00000000..6c010918 --- /dev/null +++ b/platformthemeplugins/deepinfiledialogtheme/main.cpp @@ -0,0 +1,30 @@ +/* + * SPDX-FileCopyrightText: 2017 - 2023 UnionTech Software Technology Co., Ltd. + * SPDX-License-Identifier: LGPL-3.0-or-later + */ +#include +#include "qdeepintheme.h" + +QT_BEGIN_NAMESPACE +class QDeepinFileDialogThemePlugin : public QPlatformThemePlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QPlatformThemeFactoryInterface_iid FILE "deepinfiledialog.json") + +public: + QPlatformTheme *create(const QString &key, const QStringList ¶ms) Q_DECL_OVERRIDE; +}; + +QPlatformTheme *QDeepinFileDialogThemePlugin::create(const QString &key, const QStringList ¶ms) +{ + Q_UNUSED(params); + const QStringList &keys = {"deepinfiledialog", QLatin1String(QDeepinTheme::name), QLatin1String("DDE")}; + if (keys.contains(key, Qt::CaseInsensitive)) + return new QDeepinTheme; + + return nullptr; +} + +QT_END_NAMESPACE + +#include "main.moc" diff --git a/platformthemeplugins/deepinfiledialogtheme/qdeepintheme.cpp b/platformthemeplugins/deepinfiledialogtheme/qdeepintheme.cpp new file mode 100644 index 00000000..0a876a4f --- /dev/null +++ b/platformthemeplugins/deepinfiledialogtheme/qdeepintheme.cpp @@ -0,0 +1,69 @@ +/* + * SPDX-FileCopyrightText: 2017 - 2023 UnionTech Software Technology Co., Ltd. + * SPDX-License-Identifier: LGPL-3.0-or-later + */ +#include "qdeepintheme.h" +#include "qdeepinfiledialoghelper.h" +#include "filedialogmanager_interface.h" + +#include +#include + +#include +#include +#include +#include + +#undef signals +#include + + +QT_BEGIN_NAMESPACE + +const char *QDeepinTheme::name = "deepin"; +bool QDeepinTheme::m_usePlatformNativeDialog = true; + +QDeepinTheme::QDeepinTheme() +{ +} + +QDeepinTheme::~QDeepinTheme() +{ + if (QDeepinFileDialogHelper::manager) { + QDeepinFileDialogHelper::manager->deleteLater(); + QDeepinFileDialogHelper::manager = Q_NULLPTR; + } +} + +bool QDeepinTheme::usePlatformNativeDialog(DialogType type) const +{ + if (type == FileDialog) { + if (qgetenv("_d_disableDBusFileDialog") == "true") + return false; + + static bool dbusDialogManagerInitialized = false; + + if (!dbusDialogManagerInitialized) { + dbusDialogManagerInitialized = true; + QDeepinFileDialogHelper::initDBusFileDialogManager(); + } + + return m_usePlatformNativeDialog + && QDeepinFileDialogHelper::manager + && QDeepinFileDialogHelper::manager->isUseFileChooserDialog(); + } + + return QGenericUnixTheme::usePlatformNativeDialog(type); +} + +QPlatformDialogHelper *QDeepinTheme::createPlatformDialogHelper(DialogType type) const +{ + if (type == FileDialog && usePlatformNativeDialog(type)) + return new QDeepinFileDialogHelper(); + + return QGenericUnixTheme::createPlatformDialogHelper(type); +} + +QT_END_NAMESPACE + +#include "qdeepintheme.moc" diff --git a/platformthemeplugins/deepinfiledialogtheme/qdeepintheme.h b/platformthemeplugins/deepinfiledialogtheme/qdeepintheme.h new file mode 100644 index 00000000..8fd96245 --- /dev/null +++ b/platformthemeplugins/deepinfiledialogtheme/qdeepintheme.h @@ -0,0 +1,32 @@ +/* + * SPDX-FileCopyrightText: 2017-2023 UnionTech Software Technology Co., Ltd. + * SPDX-License-Identifier: LGPL-3.0-or-later + */ +#ifndef QDEEPINTHEME_H +#define QDEEPINTHEME_H + +#include + +#include +#include +#include + +class DThemeSettings; +class QDeepinTheme : public QGenericUnixTheme +{ +public: + QDeepinTheme(); + ~QDeepinTheme(); + + bool usePlatformNativeDialog(DialogType type) const Q_DECL_OVERRIDE; + QPlatformDialogHelper *createPlatformDialogHelper(DialogType type) const Q_DECL_OVERRIDE; + + static const char *name; + +private: + static bool m_usePlatformNativeDialog; + + friend class QDeepinFileDialogHelper; +}; + +#endif // QDEEPINTHEME_H diff --git a/platformthemeplugin/CMakeLists.txt b/platformthemeplugins/deepintheme/CMakeLists.txt similarity index 74% rename from platformthemeplugin/CMakeLists.txt rename to platformthemeplugins/deepintheme/CMakeLists.txt index 660b234d..50061d02 100644 --- a/platformthemeplugin/CMakeLists.txt +++ b/platformthemeplugins/deepintheme/CMakeLists.txt @@ -31,13 +31,9 @@ pkg_check_modules(Deps REQUIRED IMPORTED_TARGET mtdev) if(ENABLE_QT_XDG_ICON_LOADER) set(DEFS -DXDG_ICON_VERSION_MAR=${XDG_ICON_VERSION_MAJOR}) endif() -if(QT_VERSION_MAJOR EQUAL 5) - qt5_add_dbus_interface(DBUS_INTERFACES ${CMAKE_CURRENT_LIST_DIR}/xmls/com.deepin.filemanager.filedialog.xml filedialog_interface) - qt5_add_dbus_interface(DBUS_INTERFACES ${CMAKE_CURRENT_LIST_DIR}/xmls/com.deepin.filemanager.filedialogmanager.xml filedialogmanager_interface) -else() - qt6_add_dbus_interface(DBUS_INTERFACES ${CMAKE_CURRENT_LIST_DIR}/xmls/com.deepin.filemanager.filedialog.xml filedialog_interface) - qt6_add_dbus_interface(DBUS_INTERFACES ${CMAKE_CURRENT_LIST_DIR}/xmls/com.deepin.filemanager.filedialogmanager.xml filedialogmanager_interface) -endif() + +include(../filedialog/filedialog.cmake) + dtk_add_plugin( NAME qdeepin @@ -45,16 +41,18 @@ dtk_add_plugin( ${PLUGIN_OUTPUT_BASE_DIR}/platformthemes INSTALL_DIR ${PLUGIN_INSTALL_BASE_DIR}/platformthemes + INCLUDE_DIRS + ${CMAKE_CURRENT_LIST_DIR}/../filedialog SOURCES dthemesettings.cpp - qdeepinfiledialoghelper.cpp + ${DFM_DLG_SOURCES} qdeepintheme.cpp ${3RD_PARTY_SOURCES} main.cpp ${DBUS_INTERFACES} HEADERS dthemesettings.h - qdeepinfiledialoghelper.h + ${DFM_DLG_HEADERS} qdeepintheme.h ${3RD_PARTY_HEADERS} RESOURCES diff --git a/platformthemeplugin/deepin-theme-plugin.qrc b/platformthemeplugins/deepintheme/deepin-theme-plugin.qrc similarity index 100% rename from platformthemeplugin/deepin-theme-plugin.qrc rename to platformthemeplugins/deepintheme/deepin-theme-plugin.qrc diff --git a/platformthemeplugin/deepin.json b/platformthemeplugins/deepintheme/deepin.json similarity index 100% rename from platformthemeplugin/deepin.json rename to platformthemeplugins/deepintheme/deepin.json diff --git a/platformthemeplugin/dthemesettings.cpp b/platformthemeplugins/deepintheme/dthemesettings.cpp similarity index 100% rename from platformthemeplugin/dthemesettings.cpp rename to platformthemeplugins/deepintheme/dthemesettings.cpp diff --git a/platformthemeplugin/dthemesettings.h b/platformthemeplugins/deepintheme/dthemesettings.h similarity index 100% rename from platformthemeplugin/dthemesettings.h rename to platformthemeplugins/deepintheme/dthemesettings.h diff --git a/platformthemeplugin/icons/actions/edit-copy_16px.svg b/platformthemeplugins/deepintheme/icons/actions/edit-copy_16px.svg similarity index 100% rename from platformthemeplugin/icons/actions/edit-copy_16px.svg rename to platformthemeplugins/deepintheme/icons/actions/edit-copy_16px.svg diff --git a/platformthemeplugin/icons/actions/edit-cut_16px.svg b/platformthemeplugins/deepintheme/icons/actions/edit-cut_16px.svg similarity index 100% rename from platformthemeplugin/icons/actions/edit-cut_16px.svg rename to platformthemeplugins/deepintheme/icons/actions/edit-cut_16px.svg diff --git a/platformthemeplugin/icons/actions/edit-delete_16px.svg b/platformthemeplugins/deepintheme/icons/actions/edit-delete_16px.svg similarity index 100% rename from platformthemeplugin/icons/actions/edit-delete_16px.svg rename to platformthemeplugins/deepintheme/icons/actions/edit-delete_16px.svg diff --git a/platformthemeplugin/icons/actions/edit-paste_16px.svg b/platformthemeplugins/deepintheme/icons/actions/edit-paste_16px.svg similarity index 100% rename from platformthemeplugin/icons/actions/edit-paste_16px.svg rename to platformthemeplugins/deepintheme/icons/actions/edit-paste_16px.svg diff --git a/platformthemeplugin/icons/actions/edit-redo_16px.svg b/platformthemeplugins/deepintheme/icons/actions/edit-redo_16px.svg similarity index 100% rename from platformthemeplugin/icons/actions/edit-redo_16px.svg rename to platformthemeplugins/deepintheme/icons/actions/edit-redo_16px.svg diff --git a/platformthemeplugin/icons/actions/edit-select-all_16px.svg b/platformthemeplugins/deepintheme/icons/actions/edit-select-all_16px.svg similarity index 100% rename from platformthemeplugin/icons/actions/edit-select-all_16px.svg rename to platformthemeplugins/deepintheme/icons/actions/edit-select-all_16px.svg diff --git a/platformthemeplugin/icons/actions/edit-undo_16px.svg b/platformthemeplugins/deepintheme/icons/actions/edit-undo_16px.svg similarity index 100% rename from platformthemeplugin/icons/actions/edit-undo_16px.svg rename to platformthemeplugins/deepintheme/icons/actions/edit-undo_16px.svg diff --git a/platformthemeplugin/icons/deepin-theme-plugin-icons.qrc b/platformthemeplugins/deepintheme/icons/deepin-theme-plugin-icons.qrc similarity index 100% rename from platformthemeplugin/icons/deepin-theme-plugin-icons.qrc rename to platformthemeplugins/deepintheme/icons/deepin-theme-plugin-icons.qrc diff --git a/platformthemeplugin/icons/icons/button_voice_active_30px.svg b/platformthemeplugins/deepintheme/icons/icons/button_voice_active_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/button_voice_active_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/button_voice_active_30px.svg diff --git a/platformthemeplugin/icons/icons/button_voice_active_press_30px.svg b/platformthemeplugins/deepintheme/icons/icons/button_voice_active_press_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/button_voice_active_press_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/button_voice_active_press_30px.svg diff --git a/platformthemeplugin/icons/icons/dark/button_voice_30px.svg b/platformthemeplugins/deepintheme/icons/icons/dark/button_voice_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dark/button_voice_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/dark/button_voice_30px.svg diff --git a/platformthemeplugin/icons/icons/dark/button_voice_press_30px.svg b/platformthemeplugins/deepintheme/icons/icons/dark/button_voice_press_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dark/button_voice_press_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/dark/button_voice_press_30px.svg diff --git a/platformthemeplugin/icons/icons/dark/edit-clear_30px.svg b/platformthemeplugins/deepintheme/icons/icons/dark/edit-clear_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dark/edit-clear_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/dark/edit-clear_30px.svg diff --git a/platformthemeplugin/icons/icons/dark/edit-clear_press_30px.svg b/platformthemeplugins/deepintheme/icons/icons/dark/edit-clear_press_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dark/edit-clear_press_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/dark/edit-clear_press_30px.svg diff --git a/platformthemeplugin/icons/icons/dark/list_add_16px.svg b/platformthemeplugins/deepintheme/icons/icons/dark/list_add_16px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dark/list_add_16px.svg rename to platformthemeplugins/deepintheme/icons/icons/dark/list_add_16px.svg diff --git a/platformthemeplugin/icons/icons/dark/list_delete_16px.svg b/platformthemeplugins/deepintheme/icons/icons/dark/list_delete_16px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dark/list_delete_16px.svg rename to platformthemeplugins/deepintheme/icons/icons/dark/list_delete_16px.svg diff --git a/platformthemeplugin/icons/icons/dark/window-close_round_30px.svg b/platformthemeplugins/deepintheme/icons/icons/dark/window-close_round_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dark/window-close_round_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/dark/window-close_round_30px.svg diff --git a/platformthemeplugin/icons/icons/dark/window-close_round_press_30px.svg b/platformthemeplugins/deepintheme/icons/icons/dark/window-close_round_press_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dark/window-close_round_press_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/dark/window-close_round_press_30px.svg diff --git a/platformthemeplugin/icons/icons/dialog-right_30px.svg b/platformthemeplugins/deepintheme/icons/icons/dialog-right_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dialog-right_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/dialog-right_30px.svg diff --git a/platformthemeplugin/icons/icons/dialog-warning_30px.svg b/platformthemeplugins/deepintheme/icons/icons/dialog-warning_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/dialog-warning_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/dialog-warning_30px.svg diff --git a/platformthemeplugin/icons/icons/icon_fail_128px.svg b/platformthemeplugins/deepintheme/icons/icons/icon_fail_128px.svg similarity index 100% rename from platformthemeplugin/icons/icons/icon_fail_128px.svg rename to platformthemeplugins/deepintheme/icons/icons/icon_fail_128px.svg diff --git a/platformthemeplugin/icons/icons/icon_success_128px.svg b/platformthemeplugins/deepintheme/icons/icons/icon_success_128px.svg similarity index 100% rename from platformthemeplugin/icons/icons/icon_success_128px.svg rename to platformthemeplugins/deepintheme/icons/icons/icon_success_128px.svg diff --git a/platformthemeplugin/icons/icons/light/button_voice_30px.svg b/platformthemeplugins/deepintheme/icons/icons/light/button_voice_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/light/button_voice_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/light/button_voice_30px.svg diff --git a/platformthemeplugin/icons/icons/light/button_voice_press_30px.svg b/platformthemeplugins/deepintheme/icons/icons/light/button_voice_press_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/light/button_voice_press_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/light/button_voice_press_30px.svg diff --git a/platformthemeplugin/icons/icons/light/edit-clear_30px.svg b/platformthemeplugins/deepintheme/icons/icons/light/edit-clear_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/light/edit-clear_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/light/edit-clear_30px.svg diff --git a/platformthemeplugin/icons/icons/light/edit-clear_press_30px.svg b/platformthemeplugins/deepintheme/icons/icons/light/edit-clear_press_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/light/edit-clear_press_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/light/edit-clear_press_30px.svg diff --git a/platformthemeplugin/icons/icons/light/list_add_16px.svg b/platformthemeplugins/deepintheme/icons/icons/light/list_add_16px.svg similarity index 100% rename from platformthemeplugin/icons/icons/light/list_add_16px.svg rename to platformthemeplugins/deepintheme/icons/icons/light/list_add_16px.svg diff --git a/platformthemeplugin/icons/icons/light/list_delete_16px.svg b/platformthemeplugins/deepintheme/icons/icons/light/list_delete_16px.svg similarity index 100% rename from platformthemeplugin/icons/icons/light/list_delete_16px.svg rename to platformthemeplugins/deepintheme/icons/icons/light/list_delete_16px.svg diff --git a/platformthemeplugin/icons/icons/light/window-close_round_30px.svg b/platformthemeplugins/deepintheme/icons/icons/light/window-close_round_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/light/window-close_round_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/light/window-close_round_30px.svg diff --git a/platformthemeplugin/icons/icons/light/window-close_round_press_30px.svg b/platformthemeplugins/deepintheme/icons/icons/light/window-close_round_press_30px.svg similarity index 100% rename from platformthemeplugin/icons/icons/light/window-close_round_press_30px.svg rename to platformthemeplugins/deepintheme/icons/icons/light/window-close_round_press_30px.svg diff --git a/platformthemeplugin/icons/texts/audio-volume-left_24px.svg b/platformthemeplugins/deepintheme/icons/texts/audio-volume-left_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/audio-volume-left_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/audio-volume-left_24px.svg diff --git a/platformthemeplugin/icons/texts/audio-volume-low_24px.svg b/platformthemeplugins/deepintheme/icons/texts/audio-volume-low_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/audio-volume-low_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/audio-volume-low_24px.svg diff --git a/platformthemeplugin/icons/texts/audio-volume-medium_24px.svg b/platformthemeplugins/deepintheme/icons/texts/audio-volume-medium_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/audio-volume-medium_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/audio-volume-medium_24px.svg diff --git a/platformthemeplugin/icons/texts/audio-volume-muted_24px.svg b/platformthemeplugins/deepintheme/icons/texts/audio-volume-muted_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/audio-volume-muted_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/audio-volume-muted_24px.svg diff --git a/platformthemeplugin/icons/texts/audio-volume-right_24px.svg b/platformthemeplugins/deepintheme/icons/texts/audio-volume-right_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/audio-volume-right_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/audio-volume-right_24px.svg diff --git a/platformthemeplugin/icons/texts/button_add_20px.svg b/platformthemeplugins/deepintheme/icons/texts/button_add_20px.svg similarity index 100% rename from platformthemeplugin/icons/texts/button_add_20px.svg rename to platformthemeplugins/deepintheme/icons/texts/button_add_20px.svg diff --git a/platformthemeplugin/icons/texts/button_reduce_12px.svg b/platformthemeplugins/deepintheme/icons/texts/button_reduce_12px.svg similarity index 100% rename from platformthemeplugin/icons/texts/button_reduce_12px.svg rename to platformthemeplugins/deepintheme/icons/texts/button_reduce_12px.svg diff --git a/platformthemeplugin/icons/texts/caps_lock_16px.svg b/platformthemeplugins/deepintheme/icons/texts/caps_lock_16px.svg similarity index 100% rename from platformthemeplugin/icons/texts/caps_lock_16px.svg rename to platformthemeplugins/deepintheme/icons/texts/caps_lock_16px.svg diff --git a/platformthemeplugin/icons/texts/checked_20px.svg b/platformthemeplugins/deepintheme/icons/texts/checked_20px.svg similarity index 100% rename from platformthemeplugin/icons/texts/checked_20px.svg rename to platformthemeplugins/deepintheme/icons/texts/checked_20px.svg diff --git a/platformthemeplugin/icons/texts/combobox_arrow_12px.svg b/platformthemeplugins/deepintheme/icons/texts/combobox_arrow_12px.svg similarity index 100% rename from platformthemeplugin/icons/texts/combobox_arrow_12px.svg rename to platformthemeplugins/deepintheme/icons/texts/combobox_arrow_12px.svg diff --git a/platformthemeplugin/icons/texts/edit_12px.svg b/platformthemeplugins/deepintheme/icons/texts/edit_12px.svg similarity index 100% rename from platformthemeplugin/icons/texts/edit_12px.svg rename to platformthemeplugins/deepintheme/icons/texts/edit_12px.svg diff --git a/platformthemeplugin/icons/texts/fork_indicator_24px.svg b/platformthemeplugins/deepintheme/icons/texts/fork_indicator_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/fork_indicator_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/fork_indicator_24px.svg diff --git a/platformthemeplugin/icons/texts/go-down_12px.svg b/platformthemeplugins/deepintheme/icons/texts/go-down_12px.svg similarity index 100% rename from platformthemeplugin/icons/texts/go-down_12px.svg rename to platformthemeplugins/deepintheme/icons/texts/go-down_12px.svg diff --git a/platformthemeplugin/icons/texts/go-next_12px.svg b/platformthemeplugins/deepintheme/icons/texts/go-next_12px.svg similarity index 100% rename from platformthemeplugin/icons/texts/go-next_12px.svg rename to platformthemeplugins/deepintheme/icons/texts/go-next_12px.svg diff --git a/platformthemeplugin/icons/texts/go-previous_12px.svg b/platformthemeplugins/deepintheme/icons/texts/go-previous_12px.svg similarity index 100% rename from platformthemeplugin/icons/texts/go-previous_12px.svg rename to platformthemeplugins/deepintheme/icons/texts/go-previous_12px.svg diff --git a/platformthemeplugin/icons/texts/go-up_12px.svg b/platformthemeplugins/deepintheme/icons/texts/go-up_12px.svg similarity index 100% rename from platformthemeplugin/icons/texts/go-up_12px.svg rename to platformthemeplugins/deepintheme/icons/texts/go-up_12px.svg diff --git a/platformthemeplugin/icons/texts/lock_indicator_24px.svg b/platformthemeplugins/deepintheme/icons/texts/lock_indicator_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/lock_indicator_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/lock_indicator_24px.svg diff --git a/platformthemeplugin/icons/texts/mark_indicator_12px.svg b/platformthemeplugins/deepintheme/icons/texts/mark_indicator_12px.svg similarity index 100% rename from platformthemeplugin/icons/texts/mark_indicator_12px.svg rename to platformthemeplugins/deepintheme/icons/texts/mark_indicator_12px.svg diff --git a/platformthemeplugin/icons/texts/media-playback-pause_24px.svg b/platformthemeplugins/deepintheme/icons/texts/media-playback-pause_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/media-playback-pause_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/media-playback-pause_24px.svg diff --git a/platformthemeplugin/icons/texts/media-playback-start_24px.svg b/platformthemeplugins/deepintheme/icons/texts/media-playback-start_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/media-playback-start_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/media-playback-start_24px.svg diff --git a/platformthemeplugin/icons/texts/media-skip-backward_24px.svg b/platformthemeplugins/deepintheme/icons/texts/media-skip-backward_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/media-skip-backward_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/media-skip-backward_24px.svg diff --git a/platformthemeplugin/icons/texts/media-skip-forward_24px.svg b/platformthemeplugins/deepintheme/icons/texts/media-skip-forward_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/media-skip-forward_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/media-skip-forward_24px.svg diff --git a/platformthemeplugin/icons/texts/next_indicator_24px.svg b/platformthemeplugins/deepintheme/icons/texts/next_indicator_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/next_indicator_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/next_indicator_24px.svg diff --git a/platformthemeplugin/icons/texts/password_hide_24px.svg b/platformthemeplugins/deepintheme/icons/texts/password_hide_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/password_hide_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/password_hide_24px.svg diff --git a/platformthemeplugin/icons/texts/password_show_24px.svg b/platformthemeplugins/deepintheme/icons/texts/password_show_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/password_show_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/password_show_24px.svg diff --git a/platformthemeplugin/icons/texts/prev_indicator_24px.svg b/platformthemeplugins/deepintheme/icons/texts/prev_indicator_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/prev_indicator_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/prev_indicator_24px.svg diff --git a/platformthemeplugin/icons/texts/search_indicator_20px.svg b/platformthemeplugins/deepintheme/icons/texts/search_indicator_20px.svg similarity index 100% rename from platformthemeplugin/icons/texts/search_indicator_20px.svg rename to platformthemeplugins/deepintheme/icons/texts/search_indicator_20px.svg diff --git a/platformthemeplugin/icons/texts/selected_checked_indicator_16px.svg b/platformthemeplugins/deepintheme/icons/texts/selected_checked_indicator_16px.svg similarity index 100% rename from platformthemeplugin/icons/texts/selected_checked_indicator_16px.svg rename to platformthemeplugins/deepintheme/icons/texts/selected_checked_indicator_16px.svg diff --git a/platformthemeplugin/icons/texts/selected_indicator_16px.svg b/platformthemeplugins/deepintheme/icons/texts/selected_indicator_16px.svg similarity index 100% rename from platformthemeplugin/icons/texts/selected_indicator_16px.svg rename to platformthemeplugins/deepintheme/icons/texts/selected_indicator_16px.svg diff --git a/platformthemeplugin/icons/texts/selected_indicator_16px.svg.background b/platformthemeplugins/deepintheme/icons/texts/selected_indicator_16px.svg.background similarity index 100% rename from platformthemeplugin/icons/texts/selected_indicator_16px.svg.background rename to platformthemeplugins/deepintheme/icons/texts/selected_indicator_16px.svg.background diff --git a/platformthemeplugin/icons/texts/unchecked_20px.svg b/platformthemeplugins/deepintheme/icons/texts/unchecked_20px.svg similarity index 100% rename from platformthemeplugin/icons/texts/unchecked_20px.svg rename to platformthemeplugins/deepintheme/icons/texts/unchecked_20px.svg diff --git a/platformthemeplugin/icons/texts/unlock_indicator_24px.svg b/platformthemeplugins/deepintheme/icons/texts/unlock_indicator_24px.svg similarity index 100% rename from platformthemeplugin/icons/texts/unlock_indicator_24px.svg rename to platformthemeplugins/deepintheme/icons/texts/unlock_indicator_24px.svg diff --git a/platformthemeplugin/icons/texts/unselected_indicator_16px.svg b/platformthemeplugins/deepintheme/icons/texts/unselected_indicator_16px.svg similarity index 100% rename from platformthemeplugin/icons/texts/unselected_indicator_16px.svg rename to platformthemeplugins/deepintheme/icons/texts/unselected_indicator_16px.svg diff --git a/platformthemeplugin/icons/texts/window-close_round_30px.svg b/platformthemeplugins/deepintheme/icons/texts/window-close_round_30px.svg similarity index 100% rename from platformthemeplugin/icons/texts/window-close_round_30px.svg rename to platformthemeplugins/deepintheme/icons/texts/window-close_round_30px.svg diff --git a/platformthemeplugin/main.cpp b/platformthemeplugins/deepintheme/main.cpp similarity index 100% rename from platformthemeplugin/main.cpp rename to platformthemeplugins/deepintheme/main.cpp diff --git a/platformthemeplugin/qdeepintheme.cpp b/platformthemeplugins/deepintheme/qdeepintheme.cpp similarity index 99% rename from platformthemeplugin/qdeepintheme.cpp rename to platformthemeplugins/deepintheme/qdeepintheme.cpp index 7403e2d8..75a07241 100644 --- a/platformthemeplugin/qdeepintheme.cpp +++ b/platformthemeplugins/deepintheme/qdeepintheme.cpp @@ -7,7 +7,7 @@ #include "filedialogmanager_interface.h" #include "dthemesettings.h" #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) -#include "../3rdparty/qdbustrayicon_p.h" +#include "../../3rdparty/qdbustrayicon_p.h" #endif #include diff --git a/platformthemeplugin/qdeepintheme.h b/platformthemeplugins/deepintheme/qdeepintheme.h similarity index 100% rename from platformthemeplugin/qdeepintheme.h rename to platformthemeplugins/deepintheme/qdeepintheme.h diff --git a/platformthemeplugin/qtquickcontrols2.conf b/platformthemeplugins/deepintheme/qtquickcontrols2.conf similarity index 100% rename from platformthemeplugin/qtquickcontrols2.conf rename to platformthemeplugins/deepintheme/qtquickcontrols2.conf diff --git a/platformthemeplugins/filedialog/filedialog.cmake b/platformthemeplugins/filedialog/filedialog.cmake new file mode 100644 index 00000000..19c84229 --- /dev/null +++ b/platformthemeplugins/filedialog/filedialog.cmake @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +# +# SPDX-License-Identifier: LGPL-3.0-or-later + +if(QT_VERSION_MAJOR EQUAL 5) + qt5_add_dbus_interface(DBUS_INTERFACES ${CMAKE_CURRENT_LIST_DIR}/xmls/com.deepin.filemanager.filedialog.xml filedialog_interface) + qt5_add_dbus_interface(DBUS_INTERFACES ${CMAKE_CURRENT_LIST_DIR}/xmls/com.deepin.filemanager.filedialogmanager.xml filedialogmanager_interface) +else() + qt6_add_dbus_interface(DBUS_INTERFACES ${CMAKE_CURRENT_LIST_DIR}/xmls/com.deepin.filemanager.filedialog.xml filedialog_interface) + qt6_add_dbus_interface(DBUS_INTERFACES ${CMAKE_CURRENT_LIST_DIR}/xmls/com.deepin.filemanager.filedialogmanager.xml filedialogmanager_interface) +endif() + +set(DFM_DLG_HEADERS ${CMAKE_CURRENT_LIST_DIR}/qdeepinfiledialoghelper.h) +set(DFM_DLG_SOURCES ${CMAKE_CURRENT_LIST_DIR}/qdeepinfiledialoghelper.cpp) diff --git a/platformthemeplugin/qdeepinfiledialoghelper.cpp b/platformthemeplugins/filedialog/qdeepinfiledialoghelper.cpp similarity index 97% rename from platformthemeplugin/qdeepinfiledialoghelper.cpp rename to platformthemeplugins/filedialog/qdeepinfiledialoghelper.cpp index 03d2f598..2c6ecd2b 100644 --- a/platformthemeplugin/qdeepinfiledialoghelper.cpp +++ b/platformthemeplugins/filedialog/qdeepinfiledialoghelper.cpp @@ -27,8 +27,6 @@ #include -#include -DGUI_USE_NAMESPACE QT_BEGIN_NAMESPACE #ifndef DIALOG_SERVICE @@ -117,6 +115,20 @@ static inline void setTransientForHint(WId wid, WId propWid) XSetTransientForHint(DISPLAY, wid, propWid); } +static inline bool isDXcbPlatform() +{ + if (!qApp) + return false; + +#define DXCB_PLUGIN_KEY "dxcb" +#define DXCB_PLUGIN_SYMBOLIC_PROPERTY "_d_isDxcb" + + static bool _is_dxcb = qApp->platformName() == DXCB_PLUGIN_KEY || + qApp->property(DXCB_PLUGIN_SYMBOLIC_PROPERTY).toBool(); + + return _is_dxcb; +} + void QDeepinFileDialogHelper::onWindowActiveChanged() { if (!filedlgInterface) @@ -131,7 +143,7 @@ void QDeepinFileDialogHelper::onWindowActiveChanged() setTransientForHint(fileDlgWId, parentWId); } - if (DPlatformHandle::isDXcbPlatform()) { + if (isDXcbPlatform()) { QWindow *focus_window = qApp->focusWindow(); if (!focus_window) return; diff --git a/platformthemeplugin/qdeepinfiledialoghelper.h b/platformthemeplugins/filedialog/qdeepinfiledialoghelper.h similarity index 100% rename from platformthemeplugin/qdeepinfiledialoghelper.h rename to platformthemeplugins/filedialog/qdeepinfiledialoghelper.h diff --git a/platformthemeplugin/xmls/com.deepin.filemanager.filedialog.xml b/platformthemeplugins/filedialog/xmls/com.deepin.filemanager.filedialog.xml similarity index 100% rename from platformthemeplugin/xmls/com.deepin.filemanager.filedialog.xml rename to platformthemeplugins/filedialog/xmls/com.deepin.filemanager.filedialog.xml diff --git a/platformthemeplugin/xmls/com.deepin.filemanager.filedialogmanager.xml b/platformthemeplugins/filedialog/xmls/com.deepin.filemanager.filedialogmanager.xml similarity index 100% rename from platformthemeplugin/xmls/com.deepin.filemanager.filedialogmanager.xml rename to platformthemeplugins/filedialog/xmls/com.deepin.filemanager.filedialogmanager.xml diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6832bca9..aeca2031 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -62,5 +62,5 @@ target_include_directories(unit-tests PRIVATE ${CMAKE_SOURCE_DIR}/imageformatplugins/svg ${CMAKE_SOURCE_DIR}/imageformatplugins/dci ${CMAKE_SOURCE_DIR}/styleplugins/chameleon - ${CMAKE_SOURCE_DIR}/platformthemeplugin + ${CMAKE_SOURCE_DIR}/platformthemeplugins/deepintheme )