diff --git a/CMakeLists.txt b/CMakeLists.txt index 90bb0478..57859a80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,10 +55,10 @@ install(FILES ${CMAKE_BINARY_DIR}/dde-tray-loader.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) configure_file( - ${CMAKE_SOURCE_DIR}/cmake/DdeTrayLoader/DdeTrayLoader.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/DdeTrayLoader.cmake + ${CMAKE_SOURCE_DIR}/cmake/DdeTrayLoader/DdeTrayLoaderConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/DdeTrayLoaderConfig.cmake @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/DdeTrayLoader.cmake +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/DdeTrayLoaderConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/DdeTrayLoader) configure_file( diff --git a/cmake/DdeTrayLoader/DdeTrayLoader.cmake.in b/cmake/DdeTrayLoader/DdeTrayLoaderConfig.cmake.in similarity index 100% rename from cmake/DdeTrayLoader/DdeTrayLoader.cmake.in rename to cmake/DdeTrayLoader/DdeTrayLoaderConfig.cmake.in diff --git a/debian/control b/debian/control index 7e09ae97..02996a1e 100644 --- a/debian/control +++ b/debian/control @@ -5,6 +5,7 @@ Maintainer: Deepin Packages Builder Build-Depends: debhelper (>= 8.0.0), pkg-config, cmake, + extra-cmake-modules, qt5-qmake, libxcb-image0-dev, libxcb-composite0-dev, @@ -29,7 +30,10 @@ Build-Depends: debhelper (>= 8.0.0), libxcursor-dev, dde-api-dev (>>5.6.3), libkf5networkmanagerqt-dev (>=5.103.0-1deepin2), - libkf5wayland-dev + libkf5wayland-dev, + libqt5waylandclient5-dev, + qtwayland5-dev-tools, + qtwayland5-private-dev Standards-Version: 3.9.8 Homepage: http://www.deepin.org/ @@ -45,7 +49,8 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, dde-daemon (>=5.13.12), startdde (>=5.8.9), lastore-daemon (>=5.2.9), - qtxdg-dev-tools + qtxdg-dev-tools, + deepin-service-plugin-network Conflicts: dde-dock Replaces: diff --git a/debian/dde-tray-loader-dev.install b/debian/dde-tray-loader-dev.install index d4376cd1..8625f54c 100644 --- a/debian/dde-tray-loader-dev.install +++ b/debian/dde-tray-loader-dev.install @@ -1,4 +1,5 @@ usr/include/dde-dock usr/include/dde-tray-loader/protocol +usr/include/libddetraynetworkcore usr/lib/*/pkgconfig usr/lib/*/cmake diff --git a/debian/dde-tray-loader.install b/debian/dde-tray-loader.install index 2c39cc54..68459dfe 100644 --- a/debian/dde-tray-loader.install +++ b/debian/dde-tray-loader.install @@ -1,5 +1,5 @@ -usr/share -usr/libexec/ +usr/libexec/dockplugin-loader +usr/lib/*/libdde-dockplugin-interface.so.* usr/lib/dde-dock/plugins/libdatetime.so usr/lib/dde-dock/plugins/libshutdown.so usr/lib/dde-dock/plugins/libdnd-mode.so @@ -9,14 +9,16 @@ usr/lib/dde-dock/plugins/libbrightness.so usr/lib/dde-dock/plugins/libdock-wirelesscasting-plugin.so usr/lib/dde-dock/plugins/libnotification.so usr/lib/dde-dock/plugins/system-trays -usr/lib/dde-dock/plugins/system-trays/libdock-network-plugin.so +usr/lib/dde-dock/plugins/system-trays/libdock-tray-network-plugin.so usr/lib/dde-dock/plugins/system-trays/libbluetooth.so usr/lib/dde-dock/plugins/system-trays/libpower.so usr/lib/dde-dock/plugins/system-trays/libsound.so usr/lib/dde-dock/plugins/system-trays/libairplane-mode.so usr/lib/dde-dock/plugins/system-trays/libkeyboard-layout.so -usr/share/dock-network-plugin/translations +usr/share/dock-tray-network-plugin/translations usr/share/dde-dock/icons/dcc-setting usr/share/dock-wirelesscasting-plugin/translations -usr/share/dsg/configs/org.deepin.dde.dock/ -usr/share/glib-2.0/schemas/ +usr/share/dsg/configs/org.deepin.dde.dock/org.deepin.dde.dock.plugin.common.json +usr/share/dsg/configs/org.deepin.dde.tray.network/org.deepin.dde.network.json +usr/share/glib-2.0/schemas/com.deepin.dde.control-center.gschema.xml +usr/lib/*/qt5/plugins/wayland-shell-integration/libplugin-shell.so diff --git a/plugins/dde-dock/CMakeLists.txt b/plugins/dde-dock/CMakeLists.txt index 965c045a..9bc96dfe 100644 --- a/plugins/dde-dock/CMakeLists.txt +++ b/plugins/dde-dock/CMakeLists.txt @@ -2,22 +2,18 @@ # # SPDX-License-Identifier: CC0-1.0 -include_directories(../../interfaces) -include_directories(util) -include_directories(widgets) -include_directories(dbus) - -add_subdirectory("datetime") -add_subdirectory("shutdown") -add_subdirectory("power") -add_subdirectory("sound") -add_subdirectory("keyboard-layout") -add_subdirectory("bluetooth") add_subdirectory("airplane-mode") +add_subdirectory("bluetooth") +add_subdirectory("brightness") +add_subdirectory("datetime") add_subdirectory("dnd-mode") add_subdirectory("eye-comfort-mode") +add_subdirectory("keyboard-layout") add_subdirectory("media") -add_subdirectory("brightness") +add_subdirectory("onboard") +add_subdirectory("power") +add_subdirectory("shutdown") +add_subdirectory("sound") if (NOT (${CMAKE_BUILD_TYPE} MATCHES "Debug")) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Ofast") diff --git a/plugins/dde-dock/airplane-mode/CMakeLists.txt b/plugins/dde-dock/airplane-mode/CMakeLists.txt index e5db98c2..4b50e91d 100644 --- a/plugins/dde-dock/airplane-mode/CMakeLists.txt +++ b/plugins/dde-dock/airplane-mode/CMakeLists.txt @@ -10,14 +10,12 @@ project(${PLUGIN_NAME}) file(GLOB_RECURSE SRCS "*.h" "*.cpp" - "../../widgets/*.h" - "../../widgets/*.cpp" - "../../frame/util/imageutil.h" - "../../frame/util/imageutil.cpp" + "../widgets/*.h" + "../widgets/*.cpp" + "../util/imageutil.h" + "../util/imageutil.cpp" "../common/*.h" "../common/*.cpp" - "../../common/*.h" - "../../common/*.cpp" ) find_package(PkgConfig REQUIRED) @@ -36,10 +34,9 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../syst target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} - ../../interfaces - ../../widgets - ../../frame - ../../frame/util + ../../../interfaces + ../widgets + ../util ../common ) target_link_libraries(${PLUGIN_NAME} PRIVATE diff --git a/plugins/dde-dock/bluetooth/CMakeLists.txt b/plugins/dde-dock/bluetooth/CMakeLists.txt index 3e1459e8..92193d44 100644 --- a/plugins/dde-dock/bluetooth/CMakeLists.txt +++ b/plugins/dde-dock/bluetooth/CMakeLists.txt @@ -38,8 +38,10 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../syst target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} - ../../interfaces + ../../../interfaces ../common + ../util + ../widgets componments) target_link_libraries(${PLUGIN_NAME} PRIVATE diff --git a/plugins/dde-dock/brightness/CMakeLists.txt b/plugins/dde-dock/brightness/CMakeLists.txt index 60da2c28..bd316f4e 100644 --- a/plugins/dde-dock/brightness/CMakeLists.txt +++ b/plugins/dde-dock/brightness/CMakeLists.txt @@ -10,14 +10,12 @@ project(${PLUGIN_NAME}) file(GLOB_RECURSE SRCS "*.h" "*.cpp" - "../../widgets/*.h" - "../../widgets/*.cpp" + "../widgets/*.h" + "../widgets/*.cpp" "../common/*.h" "../common/*.cpp" - "../../common/*.h" - "../../common/*.cpp" - "../../frame/util/roundscrollarea.h" - "../../frame/util/roundscrollarea.cpp" + "../util/roundscrollarea.h" + "../util/roundscrollarea.cpp" ) find_package(PkgConfig REQUIRED) @@ -37,10 +35,9 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} - ../../interfaces - ../../widgets - ../../frame - ../../frame/util + ../../../interfaces + ../widgets + ../util ../common ) target_link_libraries(${PLUGIN_NAME} PRIVATE diff --git a/plugins/dde-dock/common/abstractplugincontroller.cpp b/plugins/dde-dock/common/abstractplugincontroller.cpp deleted file mode 100644 index 33d947e9..00000000 --- a/plugins/dde-dock/common/abstractplugincontroller.cpp +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd. -// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#include "abstractplugincontroller.h" -#include "pluginsiteminterface.h" -#include "settingmanager.h" - -#include -#include - -#include -#include -#include -#include - -#define PLUGIN_INFO_KEY "pluginInfo" -#define PLUGIN_LOADER_KEY "pluginLoader" - -static const QStringList CompatiblePluginApiList { - "1.1.1", - "1.2", - "1.2.1", - "1.2.2", - DOCK_PLUGIN_API_VERSION -}; - -class PluginInfo : public QObject -{ -public: - PluginInfo() : QObject(nullptr), m_loaded(false), m_visible(false) {} - bool m_loaded; - bool m_visible; - QString m_itemKey; -}; - -AbstractPluginController::AbstractPluginController(PluginProxyInterface *proxyInter, QObject *parent) - : QObject(parent) - , m_proxyInter(proxyInter) -{ - qApp->installEventFilter(this); -} - -AbstractPluginController::~AbstractPluginController() -{ - qDeleteAll(m_itemsMap); - m_itemsMap.clear(); -} - -void AbstractPluginController::saveValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant &value) -{ - m_proxyInter->saveValue(itemInter, key, value); -} - -const QVariant AbstractPluginController::getValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant &fallback) -{ - if (!m_proxyInter) { - qWarning() << "Get value failed, proxy interface is null"; - return QVariant(); - } - return m_proxyInter->getValue(itemInter, key, fallback); -} - -void AbstractPluginController::removeValue(PluginsItemInterface *const itemInter, const QStringList &keyList) -{ - m_proxyInter->removeValue(itemInter, keyList); -} - -void AbstractPluginController::itemAdded(PluginsItemInterface * const itemInter, const QString &itemKey) -{ - qInfo() << "Item added, key:" << itemKey; - // 如果插件已经加载,则无需再次加载(此处保证插件出现重复调用itemAdded的情况) - auto wrapper = m_itemsMap.value(itemInter->pluginName()); - if (!wrapper || wrapper->isLoaded(itemKey)) { - return; - } - - auto loader = m_pluginLoaders.value(itemInter); - if (!loader) { - delete wrapper; - qWarning() << "Loader is nullptr, add item failed, item key:" << itemKey; - return; - } - - wrapper->addItemKey(itemKey); - Q_EMIT pluginInserted(itemKey); -} - -void AbstractPluginController::itemUpdate(PluginsItemInterface * const itemInter, const QString &itemKey) -{ - m_proxyInter->itemUpdate(itemInter, itemKey); -} - -void AbstractPluginController::itemRemoved(PluginsItemInterface * const itemInter, const QString &itemKey) -{ - // 更新字段中的isLoaded字段,表示当前没有加载 - auto pluginWrapper = m_itemsMap.value(itemInter->pluginName()); - if (pluginWrapper) { - pluginWrapper->removeItem(itemKey); - } - - m_proxyInter->itemRemoved(itemInter, itemKey); - Q_EMIT pluginRemoved(itemKey); -} - -void AbstractPluginController::requestWindowAutoHide(PluginsItemInterface * const itemInter, const QString &itemKey, const bool autoHide) -{ - m_proxyInter->requestWindowAutoHide(itemInter, itemKey, autoHide); -} - -void AbstractPluginController::requestRefreshWindowVisible(PluginsItemInterface * const itemInter, const QString &itemKey) -{ - m_proxyInter->requestRefreshWindowVisible(itemInter, itemKey); -} - -// 请求页面显示或者隐藏,由插件内部来调用,例如在移除蓝牙插件后,如果已经弹出了蓝牙插件的面板,则隐藏面板 -void AbstractPluginController::requestSetAppletVisible(PluginsItemInterface * const itemInter, const QString &itemKey, const bool visible) -{ - PluginsItemInterface *pluginInter = itemInter; - Q_EMIT requestAppletVisible(pluginInter, itemKey, visible); -} - -void AbstractPluginController::displayModeChanged() -{ - const Dock::DisplayMode displayMode = qApp->property(PROP_DISPLAY_MODE).value(); - for (auto inter : m_pluginLoaders.keys()) - inter->displayModeChanged(displayMode); -} - -void AbstractPluginController::positionChanged() -{ - const Dock::Position position = qApp->property(PROP_POSITION).value(); - for (auto inter : m_pluginLoaders.keys()) - inter->positionChanged(position); -} - -bool AbstractPluginController::pluginCanDock(PluginsItemInterface *plugin) const -{ - if (!plugin) { - qWarning() << "Plugin interface is null"; - return false; - } - - return SettingManager::instance()->dockedPlugins().contains(plugin->pluginName()); -} - -void AbstractPluginController::addPluginLoader(QPluginLoader* pluginLoader) -{ - if (!pluginLoader || !pluginLoader->instance()) { - qWarning() << "Loader is nullptr"; - return; - } - - auto interface = qobject_cast(pluginLoader->instance()); - if (!interface) { - auto interfaceV2 = qobject_cast(pluginLoader->instance()); - if (interfaceV2) { - interface = dynamic_cast(interfaceV2); - } - } - if (!interface) { - qWarning() << "Get plugin interface pointer failed`, file name:" << pluginLoader->fileName(); - return; - } - - qInfo() << "Add plugin loader, plugin name:" << interface->pluginName(); - m_itemsMap.insert(interface->pluginName(), new PluginWrapper(this, interface, pluginLoader)); - m_pluginLoaders.insert(interface, pluginLoader); - interface->init(this); - qInfo() << "Init plugin finished"; -} - -PluginWrapper *AbstractPluginController::pluginWrapper(const QString &itemKey) const -{ - for (const auto &wrapper : m_itemsMap.values()) { - if (wrapper->isLoaded(itemKey)) - return wrapper; - } - - return nullptr; -} - -QList AbstractPluginController::pluginWrappers() -{ - QList plugins; - for (auto wrapper : m_itemsMap.values()) { - if (wrapper->isLoaded()) { - plugins.push_back(wrapper); - } - } - - return plugins; -} - -QMap AbstractPluginController::pluginNameWrappers() -{ - QMap tmp; - for (auto wrapper : m_itemsMap) { - if (!tmp.contains(wrapper->pluginName())) { - tmp.insert(wrapper->pluginName(), wrapper); - } - } - - return tmp; -} diff --git a/plugins/dde-dock/common/abstractplugincontroller.h b/plugins/dde-dock/common/abstractplugincontroller.h deleted file mode 100644 index 0bcc282d..00000000 --- a/plugins/dde-dock/common/abstractplugincontroller.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd. -// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#ifndef ABSTRACTPLUGINCONTROLLER_H -#define ABSTRACTPLUGINCONTROLLER_H - -#include "pluginproxyinterface.h" -#include "pluginsiteminterface_v2.h" -#include "plugin-wrapper.h" - -#include -#include -#include - -class PluginsItemInterface; - -// TODO 和 QuickPluginController 、 DockPluginController 整合一下 -class AbstractPluginController : public QObject, public PluginProxyInterface -{ - Q_OBJECT - -public: - AbstractPluginController() = default; - explicit AbstractPluginController(PluginProxyInterface *proxyInter, QObject *parent = Q_NULLPTR); - ~AbstractPluginController(); - - void setProxyInter(PluginProxyInterface *proxyInter) { m_proxyInter = proxyInter; } - void addPluginLoader(QPluginLoader* pluginLoader); - PluginWrapper *pluginWrapper(const QString &itemKey) const; - QList pluginWrappers(); - QMap pluginNameWrappers(); - -public: - // Implements PluginProxyInterface - virtual void itemAdded(PluginsItemInterface * const itemInter, const QString &itemKey) override; - virtual void itemUpdate(PluginsItemInterface * const itemInter, const QString &itemKey) override; - virtual void itemRemoved(PluginsItemInterface * const itemInter, const QString &itemKey) override; - virtual void requestWindowAutoHide(PluginsItemInterface * const itemInter, const QString &itemKey, const bool autoHide) override; - virtual void requestRefreshWindowVisible(PluginsItemInterface * const itemInter, const QString &itemKey) override; - virtual void requestSetAppletVisible(PluginsItemInterface * const itemInter, const QString &itemKey, const bool visible) override; - virtual void saveValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant &value) override; - virtual const QVariant getValue(PluginsItemInterface *const itemInter, const QString &key, const QVariant& fallback = QVariant()) override; - virtual void removeValue(PluginsItemInterface * const itemInter, const QStringList &keyList) override; - -Q_SIGNALS: - void pluginInserted(const QString &itemKey); - void pluginRemoved(const QString &itemKey); - void requestAppletVisible(PluginsItemInterface *, const QString &, bool); - -protected: - bool pluginCanDock(PluginsItemInterface *plugin) const; - -protected Q_SLOTS: - void displayModeChanged(); - void positionChanged(); - -private: - // QMap<插件指针,插件 loader 指针(主要是为了获取 元数据和元对象)> - QMap m_pluginLoaders; - // QMap - QMap> m_itemsMap; - PluginProxyInterface *m_proxyInter; -}; - -#endif // DOCKPLUGINCONTROLLER_H diff --git a/plugins/dde-dock/common/plugin-wrapper.cpp b/plugins/dde-dock/common/plugin-wrapper.cpp deleted file mode 100644 index 6f1bfc86..00000000 --- a/plugins/dde-dock/common/plugin-wrapper.cpp +++ /dev/null @@ -1,308 +0,0 @@ -// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#include "plugin-wrapper.h" -#include "../util/utils.h" -#include "settingmanager.h" -#include "dock-constants.h" -#include "dconfig_helper.h" - -PluginWrapper::PluginWrapper(QObject* parent, PluginsItemInterface* plugin, QPluginLoader* pluginLoader) - : QObject(parent) - , m_plugin(plugin) - , m_pluginV2(toV2(plugin)) - , m_moduleGsettings(Utils::ModuleSettingsPtr(plugin->pluginName(), QByteArray(), this)) - , m_pluginLoader(pluginLoader) - , m_flags(getFlags()) - , m_initialized(false) -{ - if (m_moduleGsettings) { - connect(m_moduleGsettings, &QGSettings::changed, this, [this] (const QString &key) { - if (key == "enable" && !Dock::MODULE_ENABLE_WHITE_LIST.contains(pluginName()) && m_initialized) { - m_plugin->pluginSettingsChanged(); - Q_EMIT pluginInfoChanged(); - Q_EMIT enableStateChanged(m_moduleGsettings->get("enable").toBool()); - } - }); - } -} - -bool PluginWrapper::isQuickPluginDocked() const -{ - return SettingManager::instance()->dockedPlugins().contains(pluginName()); -} - -QJsonObject PluginWrapper::metaData() const -{ - if (!m_pluginLoader) - return QJsonObject(); - - return m_pluginLoader->metaData().value("MetaData").toObject(); -} - -Dock::ItemType PluginWrapper::itemType() const -{ - if (flags() & Type_Fixed) - return Dock::ItemType_FixedPlugin; - else if (flags() & Type_Tool) - return Dock::ItemType_ToolPlugin; - - return Dock::ItemType_Plugins; -} - -void PluginWrapper::addItemKey(const QString& itemKey) -{ - if (!m_items.contains(itemKey)) { - m_items.append(itemKey); - Q_EMIT pluginInfoChanged(); - } -} - -void PluginWrapper::removeItem(const QString& itemKey) -{ - if (m_items.contains(itemKey)) { - m_items.removeAll(itemKey); - Q_EMIT pluginInfoChanged(); - } -} - -PluginFlags PluginWrapper::flags(PluginsItemInterface* plugin, QPluginLoader* pluginLoader) -{ - auto pluginV2 = toV2(plugin); - if (pluginV2) { - return pluginV2->flags(); - } - - if (plugin && pluginLoader) { - bool ok; - auto flags = static_cast(pluginLoader->instance()->property("pluginFlags").toInt(&ok)); - if (ok) { - return flags; - } - } - - return UNADAPTED_PLUGIN_FLAGS; -} - -PluginFlags PluginWrapper::getFlags() const -{ - if (m_pluginV2) { - return m_pluginV2->flags(); - } - - if (m_pluginLoader) { - bool ok; - auto flags = static_cast(m_pluginLoader->instance()->property("pluginFlags").toInt(&ok)); - if (ok) { - return flags; - } - } - - return UNADAPTED_PLUGIN_FLAGS; -} - -QJsonObject PluginWrapper::toJson(bool concise) const -{ - if (!m_plugin || !m_pluginLoader) { - return QJsonObject(); - } - - QJsonObject obj; - obj["pluginName"] = m_plugin->pluginName(); - if (concise) { - obj["loaded"] = isLoaded(); - obj["pluginDisplayName"] = m_plugin->pluginDisplayName(); - obj["flags"] = static_cast(flags()); - obj["apiVersion"] = apiVersion(); - obj["dependsDaemonDbusService"] = dependsDaemonDbusService(); - obj["pluginFileName"] = m_pluginLoader->fileName(); - obj["enabled"] = isEnabled(); - obj["supported"] = supportFlag(); - } - - return obj; -} - -bool PluginWrapper::isEnabled() const -{ - if (Dock::MODULE_ENABLE_WHITE_LIST.contains(pluginName())) - return true; - - return (m_moduleGsettings && m_moduleGsettings->keys().contains("enable")) ? m_moduleGsettings->get("enable").toBool() : true; -} - -/** - * @brief 获取插件当前是否被支持 - * - * @return true 以蓝牙举例,系统有蓝牙模块,快捷面板和控制中心-个性化-任务栏-插件区域显示`蓝牙`项 - * @return false 以蓝牙举例,系统没有蓝牙模块,快捷面板和控制中心-个性化-任务栏-插件区域不限显示`蓝牙`项 - */ -bool PluginWrapper::supportFlag() const -{ - if (!m_pluginV2) { - return true; - } - - QJsonObject obj; - obj[Dock::MSG_TYPE] = Dock::MSG_GET_SUPPORT_FLAG; - auto ret = m_pluginV2->message(Utils::toJson(obj)); - if (ret.isEmpty()) - return true; - - auto rootObj = Utils::getRootObj(ret); - if (rootObj.isEmpty() || !rootObj.contains(Dock::MSG_SUPPORT_FLAG)) { - return true; - } - - return rootObj.value(Dock::MSG_SUPPORT_FLAG).toBool(true); -} - -/** - * @brief 通知插件当前任务栏溢出区的状态 - * - * @param state 见constants.h中`应用溢出状态` - */ -void PluginWrapper::updateOverflowState(int state) const -{ - if (!m_pluginV2) { - return; - } - - QJsonObject obj; - obj[Dock::MSG_TYPE] = Dock::MSG_UPDATE_OVERFLOW_STATE; - obj[Dock::MSG_DATA] = state; - m_pluginV2->message(Utils::toJson(obj)); -} - -/** - * @brief 通知插件弹窗显示的最小高度 - * - * @param minHeight 最小高度 - */ -void PluginWrapper::setAppletMinHeight(int minHeight) const -{ - if (!m_pluginV2) { - return; - } - - QJsonObject obj; - obj[Dock::MSG_TYPE] = Dock::MSG_SET_APPLET_MIN_HEIGHT; - obj[Dock::MSG_DATA] = minHeight; - m_pluginV2->message(Utils::toJson(obj)); -} - -bool PluginWrapper::wantToBeLoaded() const -{ - if (!m_pluginV2) { - return true; - } - - QJsonObject obj; - obj[Dock::MSG_TYPE] = Dock::MSG_WHETHER_WANT_TO_BE_LOADED; - const auto &ret = m_pluginV2->message(Utils::toJson(obj)); - if (ret.isEmpty()) - return true; - const auto &rootObj = Utils::getRootObj(ret); - return rootObj.value(Dock::MSG_DATA).toBool(true); -} - -/** - * @brief 告知插件弹窗即将在哪里显示(任务栏还是快捷面板中) - * - * @param container 0:任务栏弹窗,1:快捷面板子页面 - */ -void PluginWrapper::setAppletContainer(int container) const -{ - if (!m_pluginV2) { - return; - } - - QJsonObject obj; - obj[Dock::MSG_TYPE] = Dock::MSG_APPLET_CONTAINER; - obj[Dock::MSG_DATA] = container; - m_pluginV2->message(Utils::toJson(obj)); -} - -/** - * @brief 当任务栏size发生改变时,通知插件 - * - * @param dockSize 任务栏size - */ -void PluginWrapper::updateDockPanelSize(const QSize &dockSize) const -{ - if (!m_pluginV2) { - return; - } - - QJsonObject sizeData; - sizeData["width"] = dockSize.width(); - sizeData["height"] = dockSize.height(); - - QJsonObject obj; - obj[Dock::MSG_TYPE] = Dock::MSG_DOCK_PANEL_SIZE_CHANGED; - obj[Dock::MSG_DATA] = sizeData; - m_pluginV2->message(Utils::toJson(obj)); -} - - -/** - * @brief 获取插件属性Map - * - * @return QMap,属性的key和value - */ -QMap PluginWrapper::pluginPropertyMap() const -{ - QMap map; - - if (!m_pluginV2) { - return map; - } - - QJsonObject obj; - obj[Dock::MSG_TYPE] = Dock::MSG_PLUGIN_PROPERTY; - auto ret = m_pluginV2->message(Utils::toJson(obj)); - if (ret.isEmpty()) - return map; - - auto rootObj = Utils::getRootObj(ret); - if (rootObj.isEmpty() || !rootObj.contains(Dock::MSG_DATA)) { - return map; - } - - map = rootObj[Dock::MSG_DATA].toVariant().toMap(); - - return map; -} - -/** - * @brief 在插件的右键菜单中,追加选项 - * - * @param menuJson 原始的右键菜单json列表 - * @param item 追加的选项 - */ -QString PluginWrapper::addPluginContextMenu(const QString &menuJson, const QJsonObject &item) -{ - QJsonDocument jsonDocument = QJsonDocument::fromJson(menuJson.toLocal8Bit().data()); - QJsonObject jsonMenu = jsonDocument.object(); - if (!jsonDocument.isNull() && jsonMenu.contains("items")) { - QJsonArray jsonMenuItems = jsonMenu.value("items").toArray(); - jsonMenuItems.append(item); - jsonMenu.insert("items", jsonMenuItems); - } else { - jsonMenu.insert("items", QJsonArray() << item); - } - - return QJsonDocument(jsonMenu).toJson(); -} - -bool PluginWrapper::showUndock(const QString &menuJson) -{ - const QJsonDocument &jsonDocument = QJsonDocument::fromJson(menuJson.toLocal8Bit().data()); - const QJsonObject &jsonMenu = jsonDocument.object(); - if (!jsonDocument.isNull() && jsonMenu.contains("showUndock")) { - return jsonMenu.value("showUndock").toBool(true); - } - - return true; -} diff --git a/plugins/dde-dock/common/plugin-wrapper.h b/plugins/dde-dock/common/plugin-wrapper.h deleted file mode 100644 index 1afc748c..00000000 --- a/plugins/dde-dock/common/plugin-wrapper.h +++ /dev/null @@ -1,91 +0,0 @@ -// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#ifndef PLUGIN_WRAPPER -#define PLUGIN_WRAPPER - -#include "pluginsiteminterface_v2.h" -#include "dock-constants.h" - -#include -#include -#include -#include -#include - -#include - -using namespace Dock; - -const static PluginFlags UNADAPTED_PLUGIN_FLAGS = PluginFlag::Type_Unadapted | PluginFlag::Attribute_Normal; - -class PluginWrapper : public QObject -{ - Q_OBJECT -public: - explicit PluginWrapper(QObject *parent, PluginsItemInterface *plugin - , QPluginLoader *pluginLoader); - - PluginWrapper() = delete; - - inline PluginFlags flags() const { return m_flags; } - inline bool canDrag() const { return m_flags & PluginFlag::Attribute_CanDrag; } - inline bool canInsert() const { return m_flags & PluginFlag::Attribute_CanInsert; } - inline bool canSetting() const { return m_flags & PluginFlag::Attribute_CanSetting; } - inline bool isAdaptedPlugin() { return (m_flags & PluginFlag::Type_Unadapted) == 0; } - inline bool isQuickPlugin() { return m_flags & PluginFlag::Type_Quick; } - inline PluginsItemInterface* plugin() const { return m_plugin; } - inline QPluginLoader* pluginLoader() const {return m_pluginLoader.data(); } - inline QString pluginName() const { return m_plugin->pluginName(); } - inline QStringList items() const { return m_items; } - inline bool isLoaded() const { return !m_items.isEmpty(); } - inline bool isLoaded(const QString &itemKey) const { return m_items.contains(itemKey); } - inline QString apiVersion() const { return metaData().value("api").toString(); } - inline QString dependsDaemonDbusService() const { return metaData().value("depends-daemon-dbus-service").toString(); } - bool isEnabled() const; - bool isQuickPluginDocked() const; - void addItemKey(const QString &itemKey); - void removeItem(const QString &itemKey); - QJsonObject toJson(bool concise) const; - QJsonObject metaData() const; - Dock::ItemType itemType() const; - // 有一些插件强依赖后端服务,需要等后端服务启动后再初始化,这里用一个标志位做个标记 - inline bool isInitialized() const { return m_initialized; }; - void markInited() { m_initialized = true; } - - // 通过 message 方法通讯 - bool supportFlag() const; - void updateOverflowState(int state) const; - void setAppletMinHeight(int minHeight) const; - bool wantToBeLoaded() const; - void setAppletContainer(int container) const; - void updateDockPanelSize(const QSize &dockSize) const; - QMap pluginPropertyMap() const; - - // 在插件的右键菜单中,追加选项 - static QString addPluginContextMenu(const QString &menuJson, const QJsonObject &item); - static bool showUndock(const QString &menuJson); - - static Dock::ThemeType dockThemeType() { return Dtk::Gui::DGuiApplicationHelper::instance()->themeType() == Dtk::Gui::DGuiApplicationHelper::LightType ? Dock::ThemeType_Light : Dock::ThemeType_Dark; } - static PluginFlags flags(PluginsItemInterface* plugin, QPluginLoader* pluginLoader); - static PluginsItemInterfaceV2* toV2(PluginsItemInterface* plugin) { return dynamic_cast(plugin); } - -Q_SIGNALS: - void pluginInfoChanged(); - void enableStateChanged(bool ); - -private: - PluginFlags getFlags() const; - -private: - PluginsItemInterface* m_plugin; - PluginsItemInterfaceV2* m_pluginV2; - const QGSettings *m_moduleGsettings; - QPointer m_pluginLoader; - PluginFlags m_flags; - QStringList m_items; - bool m_initialized; -}; - -#endif \ No newline at end of file diff --git a/plugins/dde-dock/common/quickdragcore.cpp b/plugins/dde-dock/common/quickdragcore.cpp deleted file mode 100644 index 6675008e..00000000 --- a/plugins/dde-dock/common/quickdragcore.cpp +++ /dev/null @@ -1,319 +0,0 @@ -// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#include "quickdragcore.h" -#include "../util/utils.h" -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -// 如果不需要鼠标穿透可以不用添加相关头文件和链接库 -#ifdef NEED_TRANSPARENT_FOR_MOUSE_EVENT - -#include -#include -#include -#include - -#endif - -using DockInter = com::deepin::dde::daemon::Dock; -DWIDGET_USE_NAMESPACE - -static QRect dockRect = QRect(); - -QuickPluginMimeData::QuickPluginMimeData(PluginWrapper* item, QDrag* drag) - : QMimeData() - , m_item(item) - , m_drag(drag) -{ -} - -QuickPluginMimeData::~QuickPluginMimeData() -{ -} - -PluginWrapper* QuickPluginMimeData::pluginWrapper() const -{ - return m_item; -} - -QDrag* QuickPluginMimeData::drag() const -{ - return m_drag; -} - -/** - * @brief 拖动图标的窗口,可以根据实际情况设置动态图标 - * @param dragSource - */ -QuickIconDrag::QuickIconDrag(QObject* dragSource, const QPixmap& pixmap, int radius, bool enableBlurWindow) - : QDrag(dragSource) - , m_imageWidget(new QWidget) - , m_timer(new QTimer(this)) - , m_sourcePixmap(pixmap) - , m_currentPixmap(pixmap) - , m_hotPoint(QPoint(0, 0)) - , m_originDist(0) - , m_radius(radius) - , m_percent(1.0) - , m_showAnimation(false) - , m_handle(new Dtk::Widget::DPlatformWindowHandle(m_imageWidget)) -{ - m_sourcePixmap.setDevicePixelRatio(qApp->devicePixelRatio()); - m_currentPixmap.setDevicePixelRatio(qApp->devicePixelRatio()); - m_timer->setInterval(10); - connect(m_timer, &QTimer::timeout, this, &QuickIconDrag::onDragMove); - m_timer->start(); - -#ifdef DTKGUI_VERSION_STR - #if (DTK_VERSION_CHECK(DTKGUI_VERSION_MAJOR, DTKGUI_VERSION_MINOR, DTKGUI_VERSION_PATCH, DTKGUI_VERSION_BUILD) > DTK_VERSION_CHECK(5, 6, 9, 4)) - m_handle->setWindowEffect(DPlatformWindowHandle::EffectNoStart | DPlatformWindowHandle::EffectNoBorder | DPlatformWindowHandle::EffectNoShadow); - #else - m_handle->setBorderWidth(0); // 去掉边框 - m_handle->setShadowColor(Qt::transparent); // 去掉阴影 - m_handle->setEnableBlurWindow(enableBlurWindow); - #endif -#else - m_handle->setBorderWidth(0); // 去掉边框 - m_handle->setShadowColor(Qt::transparent); // 去掉阴影 - m_handle->setEnableBlurWindow(enableBlurWindow); -#endif - - m_handle->setWindowRadius(m_radius); - m_imageWidget->setVisible(false); // 避免位置还没有设置,在其它位置闪现一下 - m_imageWidget->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint); - m_imageWidget->installEventFilter(this); - m_imageWidget->setAttribute(Qt::WA_TranslucentBackground); - m_imageWidget->setFixedSize(m_sourcePixmap.size() / qApp->devicePixelRatio()); - m_imageWidget->show(); - m_imageWidget->raise(); - -#ifdef NEED_TRANSPARENT_FOR_MOUSE_EVENT - // X11 下面需要将鼠标事件穿透到任务栏上,否则任务栏收不到 drag 相关事件, Wayland 使用该方法x11库会崩溃 - if (!Utils::IS_WAYLAND_DISPLAY) { - XShapeCombineRectangles(QX11Info::display(), m_imageWidget->winId(), ShapeInput, 0, 0, - NULL, 0, ShapeSet, YXBanded); - } else { - do { - QWindow *window = m_imageWidget->windowHandle(); - if (!window) { - qWarning() << "Window handle is null"; - break; - } - QPlatformNativeInterface *native = qApp->platformNativeInterface(); - if (!native) { - qWarning() << "Platform native interface is null"; - break; - } - wl_display *display = reinterpret_cast(native->nativeResourceForWindow(QByteArrayLiteral("display"), window)); - if (!display) { - qWarning() << "Wayland display is null"; - break; - } - wl_surface *surface = reinterpret_cast(native->nativeResourceForWindow(QByteArrayLiteral("surface"), window)); - if (!surface) { - qWarning() << "Wayland surface is null"; - break; - } - wl_compositor *compositor = reinterpret_cast(native->nativeResourceForWindow(QByteArrayLiteral("compositor"), window)); - if (!compositor) { - qWarning() << "Wayland compositor is null"; - break; - } - wl_region *region = wl_compositor_create_region(compositor); - wl_region_add(region, 0, 0, 0, 0); - wl_surface_set_input_region(surface, region); - wl_display_flush(display); - } while (0); - } -#endif - - // TO OPTIMIZE 想办法去掉这个耦合? - DockInter* inter = new DockInter("com.deepin.dde.daemon.Dock", "/com/deepin/dde/daemon/Dock", QDBusConnection::sessionBus(), this); - dockRect = inter->frontendWindowRect(); - m_originDist = point2DockDist(QCursor::pos() * qApp->devicePixelRatio()); -} - -QuickIconDrag::~QuickIconDrag() -{ - m_imageWidget->deleteLater(); - m_handle->deleteLater(); -} - -void QuickIconDrag::setShowAnimation(bool show) -{ - m_showAnimation = show; -} - -void QuickIconDrag::setDragHotPot(QPoint point) -{ - m_hotPoint = point; - m_imageWidget->update(); -} - -int QuickIconDrag::point2DockDist(QPoint currentP) -{ - int dist = 0; - auto postion = qApp->property(PROP_POSITION).value(); - if (postion == Dock::Bottom) { - dist = dockRect.top() - currentP.y(); - } else if (postion == Dock::Top) { - dist = currentP.y() - dockRect.bottom(); - } else if (postion == Dock::Left) { - dist = currentP.x() - dockRect.right(); - } else { - dist = dockRect.left() - currentP.x(); - } - - return dist; -} - -void QuickIconDrag::setTargetPixmap(QPixmap pixmap) -{ - m_targetPixmap = pixmap; -} - -void QuickIconDrag::activateDragWidget(int count) -{ - if (m_imageWidget) { - if (count < 0) - return; - - qDebug() << "Try active window" << count; - if (m_imageWidget->isActiveWindow()) { - qDebug() << "Finally active window is me"; - return; - } - - m_imageWidget->activateWindow(); - QTimer::singleShot(50 , this, std::bind(&QuickIconDrag::activateDragWidget, this, count -1)); - } -} - -bool QuickIconDrag::eventFilter(QObject* watched, QEvent* event) -{ - if (watched == m_imageWidget) { - switch (event->type()) { - case QEvent::Paint: { - QPainter painter(m_imageWidget); - // 没有窗口特效时填充背景色,否则默认是黑色的 - if (!Utils::hasBlurWindow()) { - painter.fillRect(m_imageWidget->rect(), m_imageWidget->palette().background()); - } - painter.drawPixmap(QPoint(0, 0), m_currentPixmap); - painter.end(); - break; - } - case QEvent::WindowDeactivate: - activateDragWidget(); - break; - default: - break; - } - } - return QDrag::eventFilter(watched, event); -} - -QPoint QuickIconDrag::currentPoint() const -{ - const auto& mousePos = QCursor::pos(); - // 在图片变化的时候鼠标一直处在最开始的,看起来图片以这个点为原点进行缩放的 - if (m_showAnimation) { - return mousePos - (m_hotPoint * m_percent); - } - return mousePos - m_hotPoint; -} - -/** - * @brief 移动过程中通过鼠标初始离任务栏的举例和目前离任务栏的举例计算一个比例 - * 通过比例缩放和透明图片,从而得到一个离任务栏越近图片越小越透明的效果。 - * 当图片小到和目标图片(一般是在任务栏上展示的图片)大小一样(或者小与)时,将展示的图片替换为任务栏上面的图片。 - */ -void QuickIconDrag::onDragMove() -{ - auto pos = currentPoint(); - const auto ratio = qApp->devicePixelRatio(); - if (m_showAnimation) { - const auto dist = point2DockDist(QCursor::pos() * ratio); - m_percent = dist > 0 ? qMin(1.0, dist * 1.0 / m_originDist) : ((m_targetPixmap.width() * 1.0) / m_sourcePixmap.width()); - // 当鼠标已经在任务栏上或者图片尺寸<=目标图片的尺寸时显示目标图片 - if (dist < 0 || m_sourcePixmap.width() * m_percent <= m_targetPixmap.width()) { - m_handle->setWindowRadius(0); - m_currentPixmap = m_targetPixmap; - const auto& targetSize = m_targetPixmap.size(); - const auto& sourceSize = m_sourcePixmap.size(); - // x 和 y 值需要单独计算,类似音量这种插件,宽高差距非常大,会导致鼠标偏移 - const auto runtimeHotPoint = QPoint(m_hotPoint.x() * ((targetSize.width() * 1.0) / sourceSize.width()), - m_hotPoint.y() * ((targetSize.height() * 1.0) / sourceSize.height())); - pos = QCursor::pos() - runtimeHotPoint; - } else { - m_handle->setWindowRadius(m_radius); - m_currentPixmap = roundPixmap(m_sourcePixmap, m_radius, m_radius, m_percent); - } - // 缩放到一半的时候取消模糊效果,否则会出现锯齿、模糊等问题 - m_handle->setEnableBlurWindow(m_percent >= 0.5); - m_imageWidget->setFixedSize(m_currentPixmap.size() / ratio); - m_imageWidget->update(); - } else { - m_currentPixmap = m_sourcePixmap; - } - - // 避免被弹窗遮挡 - if (!m_imageWidget->isActiveWindow()) - m_imageWidget->raise(); - - m_imageWidget->move(pos); -} - -/** - * @brief 构建`带圆角&缩放&透明度`的pixmap - * - * @param origin 原始 pixmap - * @param xRadius 圆角值 - * @param yRadius 圆角值 - * @param percent 缩放比例和透明度 - * @param setOpacity 是否使用透明度 - * @return QPixmap - */ -QPixmap QuickIconDrag::roundPixmap(const QPixmap& origin, qreal xRadius, qreal yRadius, double percent, bool setOpacity) -{ - // 没有窗口特效时不使用透明度、圆角等效果 - const bool hasBlurWindow = Utils::hasBlurWindow(); - const auto dpi = origin.devicePixelRatioF(); - const auto realSize = QSize(origin.width(), origin.height()) * percent; - - QPixmap resultPixmap(realSize); - if (hasBlurWindow) { - resultPixmap.fill(Qt::transparent); - } - QPainter painter(&resultPixmap); - if (hasBlurWindow) { - QPainterPath path; - path.addRoundedRect(0, 0, realSize.width(), realSize.height(), xRadius, yRadius); - painter.setClipPath(path); - if (setOpacity) { - painter.setOpacity(percent); - } - } - painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); //抗锯齿 & 平滑像素图变换 - painter.drawPixmap(0, 0, realSize.width(), realSize.height(), origin.scaled(realSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - resultPixmap.setDevicePixelRatio(dpi); - return resultPixmap; -} diff --git a/plugins/dde-dock/common/quickdragcore.h b/plugins/dde-dock/common/quickdragcore.h deleted file mode 100644 index 53958686..00000000 --- a/plugins/dde-dock/common/quickdragcore.h +++ /dev/null @@ -1,74 +0,0 @@ -// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#ifndef QUICKDRAGCORE_H -#define QUICKDRAGCORE_H - -#include "plugin-wrapper.h" - -#include -#include -#include - -#include - -class PluginsItemInterface; -class QTimer; - -class QuickPluginMimeData : public QMimeData -{ - Q_OBJECT - -public: - explicit QuickPluginMimeData(PluginWrapper *item, QDrag *drag); - ~QuickPluginMimeData(); - PluginWrapper *pluginWrapper() const; - QDrag *drag() const; - -private: - PluginWrapper *m_item; - QDrag *m_drag; -}; - -class QuickIconDrag : public QDrag -{ - Q_OBJECT - -public: - explicit QuickIconDrag(QObject *dragSource, const QPixmap &pixmap, int radius, bool enableBlurWindow); - ~QuickIconDrag(); - void setDragHotPot(QPoint point); - void setTargetPixmap(QPixmap pixmap); - void setShowAnimation(bool show); - -protected: - bool eventFilter(QObject *watched, QEvent *event) override; - -public slots: - void activateDragWidget(int count = 10); - -private: - QPoint currentPoint() const; - - static int point2DockDist(QPoint currentP); - static QPixmap roundPixmap(const QPixmap &origin, qreal xRadius, qreal yRadius, double percent = 1.0, bool setOpacity = true); - -private Q_SLOTS: - void onDragMove(); - -private: - QWidget *m_imageWidget; - QTimer *m_timer; - QPixmap m_sourcePixmap; - QPixmap m_currentPixmap; - QPixmap m_targetPixmap; - QPoint m_hotPoint; - int m_originDist; - int m_radius; - double m_percent; - bool m_showAnimation; - Dtk::Widget::DPlatformWindowHandle *m_handle; -}; - -#endif // QUICKDRAGCORE_H diff --git a/plugins/dde-dock/datetime/CMakeLists.txt b/plugins/dde-dock/datetime/CMakeLists.txt index 02b1e552..a7e893c2 100644 --- a/plugins/dde-dock/datetime/CMakeLists.txt +++ b/plugins/dde-dock/datetime/CMakeLists.txt @@ -7,7 +7,7 @@ set(PLUGIN_NAME "datetime") project(${PLUGIN_NAME}) # Sources files -file(GLOB_RECURSE SRCS "*.h" "*.cpp" "../../widgets/*.h" "../../widgets/*.cpp" "../common/*.h" "../common/*.cpp") +file(GLOB_RECURSE SRCS "*.h" "*.cpp" "../widgets/*.h" "../widgets/*.cpp" "../common/*.h" "../common/*.cpp") find_package(PkgConfig REQUIRED) find_package(Qt5Widgets REQUIRED) @@ -26,8 +26,10 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} - ../../interfaces + ../../../interfaces ../common + ../widgets + ../util calendar ) target_link_libraries(${PLUGIN_NAME} PRIVATE diff --git a/plugins/dde-dock/disk-mount/CMakeLists.txt b/plugins/dde-dock/disk-mount/CMakeLists.txt deleted file mode 100644 index 7ec134b8..00000000 --- a/plugins/dde-dock/disk-mount/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. -# -# SPDX-License-Identifier: CC0-1.0 - -set(PLUGIN_NAME "disk-mount") - -project(${PLUGIN_NAME}) - -# Sources files -file(GLOB SRCS "*.h" "*.cpp") - -find_package(PkgConfig REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Svg REQUIRED) -find_package(Qt5DBus REQUIRED) -find_package(DtkWidget REQUIRED) - -add_definitions("${QT_DEFINITIONS} -DQT_PLUGIN") -add_library(${PLUGIN_NAME} SHARED ${SRCS} resources.qrc) -set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../) -target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ../../interfaces) -target_link_libraries(${PLUGIN_NAME} PRIVATE - ${DtkWidget_LIBRARIES} - ${Qt5Widgets_LIBRARIES} - ${Qt5Svg_LIBRARIES} - ${Qt5DBus_LIBRARIES} -) - -install(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION lib/dde-dock/plugins) diff --git a/plugins/dde-dock/disk-mount/dbus/com.deepin.daemon.DiskMount.xml b/plugins/dde-dock/disk-mount/dbus/com.deepin.daemon.DiskMount.xml deleted file mode 100644 index f0ad16d0..00000000 --- a/plugins/dde-dock/disk-mount/dbus/com.deepin.daemon.DiskMount.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/plugins/dde-dock/disk-mount/dbus/dbusdiskmount.cpp b/plugins/dde-dock/disk-mount/dbus/dbusdiskmount.cpp deleted file mode 100644 index da3581a7..00000000 --- a/plugins/dde-dock/disk-mount/dbus/dbusdiskmount.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -/* - * This file was generated by qdbusxml2cpp version 0.8 - * Command line was: qdbusxml2cpp -c DBusDiskMount -p dbusdiskmount com.deepin.daemon.DiskMount.xml - * - * qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies). - * - * This is an auto-generated file. - * This file may have been hand-edited. Look for HAND-EDIT comments - * before re-generating it. - */ - -#include "dbusdiskmount.h" - -/* - * Implementation of interface class DBusDiskMount - */ - -DBusDiskMount::DBusDiskMount(QObject *parent) - : QDBusAbstractInterface("com.deepin.daemon.DiskMount", "/com/deepin/daemon/DiskMount", staticInterfaceName(), QDBusConnection::sessionBus(), parent) -{ - DiskInfo::registerMetaType(); - - QDBusConnection::sessionBus().connect(this->service(), this->path(), "org.freedesktop.DBus.Properties", "PropertiesChanged","sa{sv}as", this, SLOT(__propertyChanged__(QDBusMessage))); -} - -DBusDiskMount::~DBusDiskMount() -{ - QDBusConnection::sessionBus().disconnect(service(), path(), "org.freedesktop.DBus.Properties", "PropertiesChanged", "sa{sv}as", this, SLOT(propertyChanged(QDBusMessage))); -} - diff --git a/plugins/dde-dock/disk-mount/dbus/dbusdiskmount.h b/plugins/dde-dock/disk-mount/dbus/dbusdiskmount.h deleted file mode 100644 index 362db75a..00000000 --- a/plugins/dde-dock/disk-mount/dbus/dbusdiskmount.h +++ /dev/null @@ -1,117 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -/* - * This file was generated by qdbusxml2cpp version 0.8 - * Command line was: qdbusxml2cpp -c DBusDiskMount -p dbusdiskmount com.deepin.daemon.DiskMount.xml - * - * qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies). - * - * This is an auto-generated file. - * Do not edit! All changes made to it will be lost. - */ - -#ifndef DBUSDISKMOUNT_H_1468893654 -#define DBUSDISKMOUNT_H_1468893654 - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "variant/diskinfo.h" - -/* - * Proxy class for interface com.deepin.daemon.DiskMount - */ -class DBusDiskMount: public QDBusAbstractInterface -{ - Q_OBJECT - - Q_SLOT void __propertyChanged__(const QDBusMessage& msg) - { - QList arguments = msg.arguments(); - if (3 != arguments.count()) - return; - QString interfaceName = msg.arguments().at(0).toString(); - if (interfaceName !="com.deepin.daemon.DiskMount") - return; - QVariantMap changedProps = qdbus_cast(arguments.at(1).value()); - foreach(const QString &prop, changedProps.keys()) { - const QMetaObject* self = metaObject(); - for (int i=self->propertyOffset(); i < self->propertyCount(); ++i) { - QMetaProperty p = self->property(i); - if (p.name() == prop) { - Q_EMIT p.notifySignal().invoke(this); - } - } - } - } -public: - static inline const char *staticInterfaceName() - { return "com.deepin.daemon.DiskMount"; } - -public: - explicit DBusDiskMount(QObject *parent = 0); - - ~DBusDiskMount(); - - Q_PROPERTY(DiskInfoList DiskList READ diskList NOTIFY DiskListChanged) - inline DiskInfoList diskList() const - { return qvariant_cast< DiskInfoList >(property("DiskList")); } - -public Q_SLOTS: // METHODS - inline QDBusPendingReply<> Eject(const QString &in0) - { - QList argumentList; - argumentList << QVariant::fromValue(in0); - return asyncCallWithArgumentList(QStringLiteral("Eject"), argumentList); - } - - inline QDBusPendingReply ListDisk() - { - QList argumentList; - return asyncCallWithArgumentList(QStringLiteral("ListDisk"), argumentList); - } - - inline QDBusPendingReply<> Mount(const QString &in0) - { - QList argumentList; - argumentList << QVariant::fromValue(in0); - return asyncCallWithArgumentList(QStringLiteral("Mount"), argumentList); - } - - inline QDBusPendingReply QueryDisk(const QString &in0) - { - QList argumentList; - argumentList << QVariant::fromValue(in0); - return asyncCallWithArgumentList(QStringLiteral("QueryDisk"), argumentList); - } - - inline QDBusPendingReply<> Unmount(const QString &diskId) - { - QList argumentList; - argumentList << QVariant::fromValue(diskId); - return asyncCallWithArgumentList(QStringLiteral("Unmount"), argumentList); - } - -Q_SIGNALS: // SIGNALS - void Changed(int in0, const QString &in1); - void Error(const QString &uuid, const QString &info); -// begin property changed signals -void DiskListChanged(); -}; - -namespace com { - namespace deepin { - namespace daemon { - typedef ::DBusDiskMount DiskMount; - } - } -} -#endif diff --git a/plugins/dde-dock/disk-mount/dbus/variant/diskinfo.cpp b/plugins/dde-dock/disk-mount/dbus/variant/diskinfo.cpp deleted file mode 100644 index 0606d66b..00000000 --- a/plugins/dde-dock/disk-mount/dbus/variant/diskinfo.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#include "diskinfo.h" - -DiskInfo::DiskInfo() -{ - -} - -void DiskInfo::registerMetaType() -{ - qRegisterMetaType("DiskInfo"); - qDBusRegisterMetaType(); - - qRegisterMetaType("DiskInfoList"); - qDBusRegisterMetaType(); -} - -QDebug operator<<(QDebug debug, const DiskInfo &info) -{ - debug << info.m_id << info.m_name << info.m_type << info.m_path << info.m_mountPoint << info.m_icon; - debug << '\t' << info.m_unmountable << '\t' << info.m_ejectable; - debug << '\t' << info.m_usedSize << '\t' << info.m_totalSize; - debug << endl; - - return debug; -} - -const QDataStream &operator>>(QDataStream &args, DiskInfo &info) -{ - args >> info.m_id >> info.m_name >> info.m_type >> info.m_path >> info.m_mountPoint >> info.m_icon; - args >> info.m_unmountable >> info.m_ejectable; - args >> info.m_usedSize >> info.m_totalSize; - - return args; -} - -const QDBusArgument &operator>>(const QDBusArgument &args, DiskInfo &info) -{ - args.beginStructure(); - args >> info.m_id >> info.m_name >> info.m_type >> info.m_path >> info.m_mountPoint >> info.m_icon; - args >> info.m_unmountable >> info.m_ejectable; - args >> info.m_usedSize >> info.m_totalSize; - args.endStructure(); - - return args; -} - -QDataStream &operator<<(QDataStream &args, const DiskInfo &info) -{ - args << info.m_id << info.m_name << info.m_type << info.m_path << info.m_mountPoint << info.m_icon; - args << info.m_unmountable << info.m_ejectable; - args << info.m_usedSize << info.m_totalSize; - - return args; -} - -QDBusArgument &operator<<(QDBusArgument &args, const DiskInfo &info) -{ - args.beginStructure(); - args << info.m_id << info.m_name << info.m_type << info.m_path << info.m_mountPoint << info.m_icon; - args << info.m_unmountable << info.m_ejectable; - args << info.m_usedSize << info.m_totalSize; - args.endStructure(); - - return args; -} diff --git a/plugins/dde-dock/disk-mount/dbus/variant/diskinfo.h b/plugins/dde-dock/disk-mount/dbus/variant/diskinfo.h deleted file mode 100644 index 9dd3f1db..00000000 --- a/plugins/dde-dock/disk-mount/dbus/variant/diskinfo.h +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#ifndef DISKINFO_H -#define DISKINFO_H - -#include -#include -#include - -class DiskInfo -{ -public: - DiskInfo(); - static void registerMetaType(); - - friend QDebug operator<<(QDebug debug, const DiskInfo &info); - friend QDBusArgument &operator<<(QDBusArgument &args, const DiskInfo &info); - friend QDataStream &operator<<(QDataStream &args, const DiskInfo &info); - friend const QDBusArgument &operator>>(const QDBusArgument &args, DiskInfo &info); - friend const QDataStream &operator>>(QDataStream &args, DiskInfo &info); - -public: - QString m_id; - QString m_name; - QString m_type; - QString m_path; - QString m_mountPoint; - QString m_icon; - - bool m_unmountable; - bool m_ejectable; - - quint64 m_usedSize; - quint64 m_totalSize; -}; - -typedef QList DiskInfoList; - -Q_DECLARE_METATYPE(DiskInfo) -Q_DECLARE_METATYPE(DiskInfoList) - -#endif // DISKINFO_H diff --git a/plugins/dde-dock/disk-mount/disk-mount.json b/plugins/dde-dock/disk-mount/disk-mount.json deleted file mode 100644 index ad498eeb..00000000 --- a/plugins/dde-dock/disk-mount/disk-mount.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "api": "1.1.1" -} diff --git a/plugins/dde-dock/disk-mount/diskcontrolitem.cpp b/plugins/dde-dock/disk-mount/diskcontrolitem.cpp deleted file mode 100644 index 9c21a887..00000000 --- a/plugins/dde-dock/disk-mount/diskcontrolitem.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#include "diskcontrolitem.h" - -#include -#include - -DWIDGET_USE_NAMESPACE - -DiskControlItem::DiskControlItem(const DiskInfo &info, QWidget *parent) - : QFrame(parent), - - m_unknowIcon(":/icons/resources/unknown.svg"), - - m_diskIcon(new QLabel), - m_diskName(new QLabel), - m_diskCapacity(new QLabel), - m_capacityValueBar(new QProgressBar), - m_unmountButton(new DImageButton) -{ -// QIcon::setThemeName("deepin"); - - m_diskName->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - m_diskName->setStyleSheet("color:white;"); - - m_diskCapacity->setStyleSheet("color:rgba(255, 255, 255, .6);"); - - m_capacityValueBar->setTextVisible(false); - m_capacityValueBar->setFixedHeight(2); - m_capacityValueBar->setStyleSheet("QProgressBar {" - "border:none;" - "background-color:rgba(255, 255, 255, .1);" - "}" - "QProgressBar::chunk {" - "background-color:rgba(255, 255, 255, .8);" - "}"); - - m_unmountButton->setNormalPic(":/icons/resources/unmount-normal.png"); - m_unmountButton->setHoverPic(":/icons/resources/unmount-hover.png"); - m_unmountButton->setPressPic(":/icons/resources/unmount-press.png"); - m_unmountButton->setStyleSheet("margin-top:12px;"); - - QVBoxLayout *infoLayout = new QVBoxLayout; - infoLayout->addWidget(m_diskName); - infoLayout->addWidget(m_diskCapacity); - infoLayout->setSpacing(0); - infoLayout->setContentsMargins(3, 6, 0, 8); - - QHBoxLayout *unmountLayout = new QHBoxLayout; - unmountLayout->addLayout(infoLayout); - unmountLayout->addWidget(m_unmountButton); - unmountLayout->setSpacing(0); - unmountLayout->setMargin(0); - - QVBoxLayout *progressLayout = new QVBoxLayout; - progressLayout->addLayout(unmountLayout); - progressLayout->addWidget(m_capacityValueBar); - progressLayout->setSpacing(0); - progressLayout->setContentsMargins(10, 0, 0, 5); - - QHBoxLayout *centralLayout = new QHBoxLayout; - centralLayout->addWidget(m_diskIcon); - centralLayout->addLayout(progressLayout); - centralLayout->setSpacing(0); - centralLayout->setContentsMargins(0, 0, 5, 0); - - setLayout(centralLayout); - setObjectName("DiskItem"); - setStyleSheet("QFrame #DiskItem:hover {" - "background-color:rgba(255, 255, 255, .1);" - "border-radius:4px;" - "}"); - - connect(m_unmountButton, &DImageButton::clicked, [this] {emit requestUnmount(m_info.m_id);}); - - updateInfo(info); -} - -void DiskControlItem::updateInfo(const DiskInfo &info) -{ - m_info = info; - - m_diskIcon->setPixmap(QIcon::fromTheme(info.m_icon, m_unknowIcon).pixmap(48, 48)); - if (!info.m_name.isEmpty()) - m_diskName->setText(info.m_name); - else - m_diskName->setText(tr("Unknown device")); - if (info.m_totalSize) - m_diskCapacity->setText(QString("%1/%2").arg(formatDiskSize(info.m_usedSize)).arg(formatDiskSize(info.m_totalSize))); - else if (info.m_name.isEmpty()) - m_diskCapacity->clear(); - else - m_diskCapacity->setText(tr("Unknown volume")); - m_capacityValueBar->setMinimum(0); - m_capacityValueBar->setMaximum(std::max(1ull, info.m_totalSize)); - m_capacityValueBar->setValue(info.m_usedSize); -} - -const QString DiskControlItem::formatDiskSize(const quint64 size) const -{ - const quint64 mSize = 1000; - const quint64 gSize = mSize * 1000; - const quint64 tSize = gSize * 1000; - - if (size >= tSize) - return QString::number(double(size) / tSize, 'f', 2) + 'T'; - else if (size >= gSize) - return QString::number(double(size) / gSize, 'f', 2) + "G"; - else if (size >= mSize) - return QString::number(double(size) / mSize, 'f', 1) + "M"; - else - return QString::number(size) + "K"; -} diff --git a/plugins/dde-dock/disk-mount/diskcontrolitem.h b/plugins/dde-dock/disk-mount/diskcontrolitem.h deleted file mode 100644 index b3bd39b2..00000000 --- a/plugins/dde-dock/disk-mount/diskcontrolitem.h +++ /dev/null @@ -1,42 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#ifndef DISKCONTROLITEM_H -#define DISKCONTROLITEM_H - -#include "dbus/dbusdiskmount.h" - -#include - -#include -#include -#include -#include - -class DiskControlItem : public QFrame -{ - Q_OBJECT - -public: - explicit DiskControlItem(const DiskInfo &info, QWidget *parent = 0); - -signals: - void requestUnmount(const QString &diskId) const; - -private slots: - void updateInfo(const DiskInfo &info); - const QString formatDiskSize(const quint64 size) const; - -private: - DiskInfo m_info; - QIcon m_unknowIcon; - - QLabel *m_diskIcon; - QLabel *m_diskName; - QLabel *m_diskCapacity; - QProgressBar *m_capacityValueBar; - Dtk::Widget::DImageButton *m_unmountButton; -}; - -#endif // DISKCONTROLITEM_H diff --git a/plugins/dde-dock/disk-mount/diskcontrolwidget.cpp b/plugins/dde-dock/disk-mount/diskcontrolwidget.cpp deleted file mode 100644 index c56f5990..00000000 --- a/plugins/dde-dock/disk-mount/diskcontrolwidget.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#include "diskcontrolwidget.h" -#include "diskcontrolitem.h" - -#define WIDTH 300 - -DiskControlWidget::DiskControlWidget(QWidget *parent) - : QScrollArea(parent), - - m_centralLayout(new QVBoxLayout), - m_centralWidget(new QWidget), - - m_diskInter(new DBusDiskMount(this)) -{ - m_centralWidget->setLayout(m_centralLayout); - m_centralWidget->setFixedWidth(WIDTH); - - setWidget(m_centralWidget); - setFixedWidth(WIDTH); - setFrameStyle(QFrame::NoFrame); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setStyleSheet("background-color:transparent;"); - - connect(m_diskInter, &DBusDiskMount::DiskListChanged, this, &DiskControlWidget::diskListChanged); - connect(m_diskInter, &DBusDiskMount::Error, this, &DiskControlWidget::unmountFinished); - - QMetaObject::invokeMethod(this, "diskListChanged", Qt::QueuedConnection); -} - -void DiskControlWidget::unmountAll() -{ - for (auto disk : m_diskInfoList) - unmountDisk(disk.m_id); -} - -void DiskControlWidget::diskListChanged() -{ - DiskInfoList diskList = m_diskInter->diskList(); - - while (QLayoutItem *item = m_centralLayout->takeAt(0)) - { - delete item->widget(); - delete item; - } - - int mountedCount = 0; - for (auto info : diskList) - { - if (info.m_mountPoint.isEmpty()) - continue; - else - ++mountedCount; - - DiskControlItem *item = new DiskControlItem(info, this); - - connect(item, &DiskControlItem::requestUnmount, this, &DiskControlWidget::unmountDisk); - - m_centralLayout->addWidget(item); - m_diskInfoList.append(info); - } - - emit diskCountChanged(mountedCount); - - const int contentHeight = mountedCount * 70; - const int maxHeight = std::min(contentHeight, 70 * 6); - - m_centralWidget->setFixedHeight(contentHeight); - setFixedHeight(maxHeight); -} - -void DiskControlWidget::unmountDisk(const QString &diskId) const -{ - m_diskInter->Unmount(diskId); -} - -void DiskControlWidget::unmountFinished(const QString &uuid, const QString &info) -{ - -} diff --git a/plugins/dde-dock/disk-mount/diskcontrolwidget.h b/plugins/dde-dock/disk-mount/diskcontrolwidget.h deleted file mode 100644 index 5359aaa4..00000000 --- a/plugins/dde-dock/disk-mount/diskcontrolwidget.h +++ /dev/null @@ -1,38 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#ifndef DISKCONTROLWIDGET_H -#define DISKCONTROLWIDGET_H - -#include "dbus/dbusdiskmount.h" - -#include -#include - -class DiskControlWidget : public QScrollArea -{ - Q_OBJECT - -public: - explicit DiskControlWidget(QWidget *parent = 0); - - void unmountAll(); - -signals: - void diskCountChanged(const int count) const; - -private slots: - void diskListChanged(); - void unmountDisk(const QString &diskId) const; - void unmountFinished(const QString &uuid, const QString &info); - -private: - QVBoxLayout *m_centralLayout; - QWidget *m_centralWidget; - DBusDiskMount *m_diskInter; - - DiskInfoList m_diskInfoList; -}; - -#endif // DISKCONTROLWIDGET_H diff --git a/plugins/dde-dock/disk-mount/diskmountplugin.cpp b/plugins/dde-dock/disk-mount/diskmountplugin.cpp deleted file mode 100644 index 2e397bda..00000000 --- a/plugins/dde-dock/disk-mount/diskmountplugin.cpp +++ /dev/null @@ -1,127 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#include "diskmountplugin.h" - -#define OPEN "open" -#define UNMOUNT_ALL "unmount_all" - -DiskMountPlugin::DiskMountPlugin(QObject *parent) - : QObject(parent), - - m_pluginAdded(false), - - m_tipsLabel(new QLabel), - m_diskPluginItem(new DiskPluginItem), - m_diskControlApplet(nullptr) -{ - m_diskPluginItem->setVisible(false); - - m_tipsLabel->setObjectName("diskmount"); - m_tipsLabel->setVisible(false); - m_tipsLabel->setText(tr("Disk")); - m_tipsLabel->setStyleSheet("color:white;" - "padding:5px 10px;"); - - connect(m_diskPluginItem, &DiskPluginItem::requestContextMenu, [this] {m_proxyInter->requestContextMenu(this, QString());}); -} - -const QString DiskMountPlugin::pluginName() const -{ - return "disk-mount"; -} - -void DiskMountPlugin::init(PluginProxyInterface *proxyInter) -{ - m_proxyInter = proxyInter; - - initCompoments(); - m_diskPluginItem->setDockDisplayMode(displayMode()); -} - -QWidget *DiskMountPlugin::itemWidget(const QString &itemKey) -{ - Q_UNUSED(itemKey); - - return m_diskPluginItem; -} - -QWidget *DiskMountPlugin::itemTipsWidget(const QString &itemKey) -{ - Q_UNUSED(itemKey); - - return m_tipsLabel; -} - -QWidget *DiskMountPlugin::itemPopupApplet(const QString &itemKey) -{ - Q_UNUSED(itemKey); - - return m_diskControlApplet; -} - -const QString DiskMountPlugin::itemContextMenu(const QString &itemKey) -{ - Q_UNUSED(itemKey); - - QList items; - items.reserve(2); - - QMap open; - open["itemId"] = OPEN; - open["itemText"] = tr("Open"); - open["isActive"] = true; - items.push_back(open); - - QMap unmountAll; - unmountAll["itemId"] = UNMOUNT_ALL; - unmountAll["itemText"] = tr("Unmount all"); - unmountAll["isActive"] = true; - items.push_back(unmountAll); - - QMap menu; - menu["items"] = items; - menu["checkableMenu"] = false; - menu["singleCheck"] = false; - - return QJsonDocument::fromVariant(menu).toJson(); -} - -void DiskMountPlugin::invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked) -{ - Q_UNUSED(itemKey) - Q_UNUSED(checked) - - if (menuId == OPEN) - QProcess::startDetached("gvfs-open", QStringList() << "computer://"); - else if (menuId == UNMOUNT_ALL) - m_diskControlApplet->unmountAll(); -} - -void DiskMountPlugin::initCompoments() -{ - m_diskControlApplet = new DiskControlWidget; - m_diskControlApplet->setObjectName("dist-mount"); - m_diskControlApplet->setVisible(false); - - connect(m_diskControlApplet, &DiskControlWidget::diskCountChanged, this, &DiskMountPlugin::diskCountChanged); -} - -void DiskMountPlugin::displayModeChanged(const Dock::DisplayMode mode) -{ - m_diskPluginItem->setDockDisplayMode(mode); -} - -void DiskMountPlugin::diskCountChanged(const int count) -{ - if (m_pluginAdded == bool(count)) - return; - - m_pluginAdded = bool(count); - - if (m_pluginAdded) - m_proxyInter->itemAdded(this, QString()); - else - m_proxyInter->itemRemoved(this, QString()); -} diff --git a/plugins/dde-dock/disk-mount/diskmountplugin.h b/plugins/dde-dock/disk-mount/diskmountplugin.h deleted file mode 100644 index ef3faad4..00000000 --- a/plugins/dde-dock/disk-mount/diskmountplugin.h +++ /dev/null @@ -1,49 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#ifndef DISKMOUNTPLUGIN_H -#define DISKMOUNTPLUGIN_H - -#include - -#include "pluginsiteminterface.h" -#include "diskcontrolwidget.h" -#include "diskpluginitem.h" - -class DiskMountPlugin : public QObject, PluginsItemInterface -{ - Q_OBJECT - Q_INTERFACES(PluginsItemInterface) - Q_PLUGIN_METADATA(IID "com.deepin.dock.PluginsItemInterface" FILE "disk-mount.json") - -public: - explicit DiskMountPlugin(QObject *parent = 0); - - const QString pluginName() const; - void init(PluginProxyInterface *proxyInter); - - QWidget *itemWidget(const QString &itemKey); - QWidget *itemTipsWidget(const QString &itemKey); - QWidget *itemPopupApplet(const QString &itemKey); - - const QString itemContextMenu(const QString &itemKey); - void invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked); - -private: - void initCompoments(); - - void displayModeChanged(const Dock::DisplayMode mode); - -private slots: - void diskCountChanged(const int count); - -private: - bool m_pluginAdded; - - QLabel *m_tipsLabel; - DiskPluginItem *m_diskPluginItem; - DiskControlWidget *m_diskControlApplet; -}; - -#endif // DISKMOUNTPLUGIN_H diff --git a/plugins/dde-dock/disk-mount/diskpluginitem.cpp b/plugins/dde-dock/disk-mount/diskpluginitem.cpp deleted file mode 100644 index fbcfe230..00000000 --- a/plugins/dde-dock/disk-mount/diskpluginitem.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#include "diskpluginitem.h" -#include "imageutil.h" - -#include -#include -#include -#include - -DiskPluginItem::DiskPluginItem(QWidget *parent) - : QWidget(parent), - m_displayMode(Dock::Efficient) -{ -// QIcon::setThemeName("deepin"); -} - -void DiskPluginItem::setDockDisplayMode(const Dock::DisplayMode mode) -{ - m_displayMode = mode; - - updateIcon(); -} - -void DiskPluginItem::paintEvent(QPaintEvent *e) -{ - QWidget::paintEvent(e); - - QPainter painter(this); - const QRectF &rf = QRectF(rect()); - const QRectF &rfp = QRectF(m_icon.rect()); - painter.drawPixmap(rf.center() - rfp.center(), m_icon); -} - -void DiskPluginItem::resizeEvent(QResizeEvent *e) -{ - QWidget::resizeEvent(e); - - updateIcon(); -} - -void DiskPluginItem::mousePressEvent(QMouseEvent *e) -{ - if (e->button() != Qt::RightButton) - return QWidget::mousePressEvent(e); - - const QPoint p(e->pos() - rect().center()); - if (p.manhattanLength() < std::min(width(), height()) * 0.8 * 0.5) - { - emit requestContextMenu(); - return; - } - - QWidget::mousePressEvent(e); -} - -QSize DiskPluginItem::sizeHint() const -{ - return QSize(26, 26); -} - -void DiskPluginItem::updateIcon() -{ - if (m_displayMode == Dock::Efficient) -// m_icon = ImageUtil::loadSvg(":/icons/resources/icon-small.svg", 16); - m_icon = QIcon::fromTheme("drive-removable-dock-symbolic").pixmap(16, 16); - else -// m_icon = ImageUtil::loadSvg(":/icons/resources/icon.svg", std::min(width(), height()) * 0.8); - m_icon = QIcon::fromTheme("drive-removable-dock").pixmap(std::min(width(), height()) * 0.8, std::min(width(), height()) * 0.8); - - update(); -} diff --git a/plugins/dde-dock/disk-mount/diskpluginitem.h b/plugins/dde-dock/disk-mount/diskpluginitem.h deleted file mode 100644 index c4d20bd4..00000000 --- a/plugins/dde-dock/disk-mount/diskpluginitem.h +++ /dev/null @@ -1,41 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#ifndef DISKPLUGINITEM_H -#define DISKPLUGINITEM_H - -#include "constants.h" - -#include -#include - -class DiskPluginItem : public QWidget -{ - Q_OBJECT - -public: - explicit DiskPluginItem(QWidget *parent = 0); - -signals: - void requestContextMenu() const; - -public slots: - void setDockDisplayMode(const Dock::DisplayMode mode); - -protected: - void paintEvent(QPaintEvent *e); - void resizeEvent(QResizeEvent *e); - void mousePressEvent(QMouseEvent *e); - QSize sizeHint() const; - -private: - void updateIcon(); - -private: - Dock::DisplayMode m_displayMode; - - QPixmap m_icon; -}; - -#endif // DISKPLUGINITEM_H diff --git a/plugins/dde-dock/disk-mount/imageutil.cpp b/plugins/dde-dock/disk-mount/imageutil.cpp deleted file mode 100644 index 58a3e60a..00000000 --- a/plugins/dde-dock/disk-mount/imageutil.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#include "imageutil.h" - -#include - -const QPixmap ImageUtil::loadSvg(const QString &path, const int size) -{ - QPixmap pixmap(size, size); - QSvgRenderer renderer(path); - pixmap.fill(Qt::transparent); - - QPainter painter; - painter.begin(&pixmap); - renderer.render(&painter); - painter.end(); - - return pixmap; -} diff --git a/plugins/dde-dock/disk-mount/imageutil.h b/plugins/dde-dock/disk-mount/imageutil.h deleted file mode 100644 index 7abcea84..00000000 --- a/plugins/dde-dock/disk-mount/imageutil.h +++ /dev/null @@ -1,17 +0,0 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: LGPL-3.0-or-later - -#ifndef IMAGEUTIL_H -#define IMAGEUTIL_H - -#include -#include - -class ImageUtil -{ -public: - static const QPixmap loadSvg(const QString &path, const int size); -}; - -#endif // IMAGEUTIL_H diff --git a/plugins/dde-dock/disk-mount/resources.qrc b/plugins/dde-dock/disk-mount/resources.qrc deleted file mode 100644 index f36bff8c..00000000 --- a/plugins/dde-dock/disk-mount/resources.qrc +++ /dev/null @@ -1,10 +0,0 @@ - - - resources/icon-small.svg - resources/icon.svg - resources/unmount-press.png - resources/unmount-normal.png - resources/unmount-hover.png - resources/unknown.svg - - diff --git a/plugins/dde-dock/disk-mount/resources/icon-small.svg b/plugins/dde-dock/disk-mount/resources/icon-small.svg deleted file mode 100644 index 549ca8a0..00000000 --- a/plugins/dde-dock/disk-mount/resources/icon-small.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - drive_harddisk_usb_symbolic_active_16px - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/plugins/dde-dock/disk-mount/resources/icon.svg b/plugins/dde-dock/disk-mount/resources/icon.svg deleted file mode 100644 index 952b644b..00000000 --- a/plugins/dde-dock/disk-mount/resources/icon.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - 磁盘挂载-48px - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/dde-dock/disk-mount/resources/unknown.svg b/plugins/dde-dock/disk-mount/resources/unknown.svg deleted file mode 100644 index 8156620a..00000000 --- a/plugins/dde-dock/disk-mount/resources/unknown.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - drive-unknown - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/dde-dock/disk-mount/resources/unmount-hover.png b/plugins/dde-dock/disk-mount/resources/unmount-hover.png deleted file mode 100644 index 863e17ac..00000000 Binary files a/plugins/dde-dock/disk-mount/resources/unmount-hover.png and /dev/null differ diff --git a/plugins/dde-dock/disk-mount/resources/unmount-normal.png b/plugins/dde-dock/disk-mount/resources/unmount-normal.png deleted file mode 100644 index 77feec2e..00000000 Binary files a/plugins/dde-dock/disk-mount/resources/unmount-normal.png and /dev/null differ diff --git a/plugins/dde-dock/disk-mount/resources/unmount-press.png b/plugins/dde-dock/disk-mount/resources/unmount-press.png deleted file mode 100644 index a3e0692c..00000000 Binary files a/plugins/dde-dock/disk-mount/resources/unmount-press.png and /dev/null differ diff --git a/plugins/dde-dock/dnd-mode/CMakeLists.txt b/plugins/dde-dock/dnd-mode/CMakeLists.txt index 62d25b0d..e30ce3c1 100644 --- a/plugins/dde-dock/dnd-mode/CMakeLists.txt +++ b/plugins/dde-dock/dnd-mode/CMakeLists.txt @@ -10,12 +10,10 @@ project(${PLUGIN_NAME}) file(GLOB_RECURSE SRCS "*.h" "*.cpp" - "../../widgets/*.h" - "../../widgets/*.cpp" + "../widgets/*.h" + "../widgets/*.cpp" "../common/*.h" "../common/*.cpp" - "../../common/*.h" - "../../common/*.cpp" ) find_package(PkgConfig REQUIRED) @@ -34,10 +32,9 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} - ../../interfaces - ../../widgets - ../../frame - ../../frame/util + ../../../interfaces + ../widgets + ../util ../common ) target_link_libraries(${PLUGIN_NAME} PRIVATE diff --git a/plugins/dde-dock/eye-comfort-mode/CMakeLists.txt b/plugins/dde-dock/eye-comfort-mode/CMakeLists.txt index e1886d7c..7b0670ce 100644 --- a/plugins/dde-dock/eye-comfort-mode/CMakeLists.txt +++ b/plugins/dde-dock/eye-comfort-mode/CMakeLists.txt @@ -10,12 +10,10 @@ project(${PLUGIN_NAME}) file(GLOB_RECURSE SRCS "*.h" "*.cpp" - "../../widgets/*.h" - "../../widgets/*.cpp" + "../widgets/*.h" + "../widgets/*.cpp" "../common/*.h" "../common/*.cpp" - "../../common/*.h" - "../../common/*.cpp" ) find_package(PkgConfig REQUIRED) @@ -34,9 +32,10 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} - ../../interfaces - ../../widgets + ../../../interfaces + ../widgets ../common + ../util ) target_link_libraries(${PLUGIN_NAME} PRIVATE ${DtkWidget_LIBRARIES} diff --git a/plugins/dde-dock/keyboard-layout/CMakeLists.txt b/plugins/dde-dock/keyboard-layout/CMakeLists.txt index 3c179aec..e552ef9e 100644 --- a/plugins/dde-dock/keyboard-layout/CMakeLists.txt +++ b/plugins/dde-dock/keyboard-layout/CMakeLists.txt @@ -36,8 +36,9 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} - ../../interfaces + ../../../interfaces ../common + ../util ) target_link_libraries(${PLUGIN_NAME} PRIVATE ${DtkWidget_LIBRARIES} diff --git a/plugins/dde-dock/media/CMakeLists.txt b/plugins/dde-dock/media/CMakeLists.txt index df952b68..ef6f2ce0 100644 --- a/plugins/dde-dock/media/CMakeLists.txt +++ b/plugins/dde-dock/media/CMakeLists.txt @@ -10,12 +10,10 @@ project(${PLUGIN_NAME}) file(GLOB_RECURSE SRCS "*.h" "*.cpp" - "../../widgets/*.h" - "../../widgets/*.cpp" + "../widgets/*.h" + "../widgets/*.cpp" "../common/*.h" "../common/*.cpp" - "../../common/*.h" - "../../common/*.cpp" ) find_package(PkgConfig REQUIRED) @@ -34,8 +32,8 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} - ../../interfaces - ../../widgets + ../../../interfaces + ../widgets ../common ) target_link_libraries(${PLUGIN_NAME} PRIVATE diff --git a/plugins/dde-dock/onboard/CMakeLists.txt b/plugins/dde-dock/onboard/CMakeLists.txt index 36df0c37..58ac8cd2 100644 --- a/plugins/dde-dock/onboard/CMakeLists.txt +++ b/plugins/dde-dock/onboard/CMakeLists.txt @@ -10,8 +10,8 @@ project(${PLUGIN_NAME}) file(GLOB_RECURSE SRCS "*.h" "*.cpp" - "../../widgets/*.h" - "../../widgets/*.cpp" + "../widgets/*.h" + "../widgets/*.cpp" "../common/*.h" "../common/*.cpp" ) @@ -22,14 +22,18 @@ find_package(Qt5DBus REQUIRED) find_package(DtkGui REQUIRED) find_package(DtkWidget REQUIRED) +pkg_check_modules(QGSettings REQUIRED gsettings-qt) + add_definitions("${QT_DEFINITIONS} -DQT_PLUGIN") add_library(${PLUGIN_NAME} SHARED ${SRCS} onboard.qrc) set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../) target_include_directories(${PLUGIN_NAME} PUBLIC ${Qt5DBus_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} - ../../interfaces + ${QGSettings_INCLUDE_DIRS} + ../../../interfaces ../common + ../widgets ) target_link_libraries(${PLUGIN_NAME} PRIVATE @@ -38,6 +42,7 @@ target_link_libraries(${PLUGIN_NAME} PRIVATE ${DtkGui_LIBRARIES} ${DtkWidget_LIBRARIES} ${DFrameworkDBus_LIBRARIES} + ${QGSettings_LIBRARIES} ) install(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION lib/dde-dock/plugins) diff --git a/plugins/dde-dock/power/CMakeLists.txt b/plugins/dde-dock/power/CMakeLists.txt index b3766d81..1a862a01 100644 --- a/plugins/dde-dock/power/CMakeLists.txt +++ b/plugins/dde-dock/power/CMakeLists.txt @@ -10,12 +10,10 @@ project(${PLUGIN_NAME}) file(GLOB_RECURSE SRCS "*.h" "*.cpp" - "../../widgets/*.h" - "../../widgets/*.cpp" + "../widgets/*.h" + "../widgets/*.cpp" "../common/*.h" "../common/*.cpp" - "../../common/*.h" - "../../common/*.cpp" ) find_package(PkgConfig REQUIRED) @@ -34,10 +32,9 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} - ../../interfaces - ../../widgets - ../../frame - ../../frame/util + ../../../interfaces + ../widgets + ../util ../common) target_link_libraries(${PLUGIN_NAME} PRIVATE ${DtkWidget_LIBRARIES} diff --git a/plugins/dde-dock/shutdown/CMakeLists.txt b/plugins/dde-dock/shutdown/CMakeLists.txt index 18498766..3b8869b0 100644 --- a/plugins/dde-dock/shutdown/CMakeLists.txt +++ b/plugins/dde-dock/shutdown/CMakeLists.txt @@ -10,10 +10,10 @@ project(${PLUGIN_NAME}) file(GLOB_RECURSE SRCS "*.h" "*.cpp" - "../../widgets/*.h" - "../../widgets/*.cpp" - "../../frame/util/imageutil.h" - "../../frame/util/imageutil.cpp" + "../widgets/*.h" + "../widgets/*.cpp" + "../util/imageutil.h" + "../util/imageutil.cpp" "../common/commoniconbutton.h" "../common/commoniconbutton.cpp" ) @@ -35,8 +35,10 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../) target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} - ../../interfaces - ../common) + ../../../interfaces + ../common + ../util + ../widgets) target_link_libraries(${PLUGIN_NAME} PRIVATE ${DtkWidget_LIBRARIES} ${XCB_EWMH_LIBRARIES} diff --git a/plugins/dde-dock/sound/CMakeLists.txt b/plugins/dde-dock/sound/CMakeLists.txt index b319624e..bcca8fc3 100644 --- a/plugins/dde-dock/sound/CMakeLists.txt +++ b/plugins/dde-dock/sound/CMakeLists.txt @@ -10,16 +10,14 @@ project(${PLUGIN_NAME}) file(GLOB_RECURSE SRCS "*.h" "*.cpp" - "../../widgets/*.h" - "../../widgets/*.cpp" - "../../frame/util/imageutil.h" - "../../frame/util/imageutil.cpp" - "../../frame/util/horizontalseparator.h" - "../../frame/util/horizontalseparator.cpp" + "../widgets/*.h" + "../widgets/*.cpp" + "../util/imageutil.h" + "../util/imageutil.cpp" + "../util/horizontalseparator.h" + "../util/horizontalseparator.cpp" "../common/*.h" "../common/*.cpp" - "../../common/*.h" - "../../common/*.cpp" ) find_package(PkgConfig REQUIRED) @@ -38,13 +36,11 @@ set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../syst target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} - ../../interfaces - ../../frame - ../../frame/accessible + ../../../interfaces + ../util ../tray - ../../common ../common - ../../widgets + ../widgets ) target_link_libraries(${PLUGIN_NAME} PRIVATE diff --git a/plugins/dde-network-core/CMakeLists.txt b/plugins/dde-network-core/CMakeLists.txt index 78cd3adc..f0a51986 100644 --- a/plugins/dde-network-core/CMakeLists.txt +++ b/plugins/dde-network-core/CMakeLists.txt @@ -87,6 +87,6 @@ endif() include_directories(src) add_subdirectory("src") -add_subdirectory("dock-network-plugin") +add_subdirectory("dock-tray-network-plugin") add_subdirectory("network-service-plugin") diff --git a/plugins/dde-network-core/dock-network-plugin/CMakeLists.txt b/plugins/dde-network-core/dock-tray-network-plugin/CMakeLists.txt similarity index 92% rename from plugins/dde-network-core/dock-network-plugin/CMakeLists.txt rename to plugins/dde-network-core/dock-tray-network-plugin/CMakeLists.txt index 3adbedd8..eca6741e 100644 --- a/plugins/dde-network-core/dock-network-plugin/CMakeLists.txt +++ b/plugins/dde-network-core/dock-tray-network-plugin/CMakeLists.txt @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: CC0-1.0 -set(PLUGIN_NAME "dock-network-plugin") +set(PLUGIN_NAME "dock-tray-network-plugin") project(${PLUGIN_NAME}) include(GNUInstallDirs) @@ -32,7 +32,6 @@ find_package(DtkWidget REQUIRED) find_package(KF5NetworkManagerQt REQUIRED) pkg_check_modules(DFrameworkDBus REQUIRED dframeworkdbus) -pkg_check_modules(DDE-Dock REQUIRED dde-dock) if (CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -fsanitize=address -O0") @@ -61,8 +60,6 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} - ${DDE-Network-Core_INCLUDE_DIRS} - ${DDE_DOCK_INCLUDE_DIR} ${Qt5Network_INCLUDE_DIRS} ${KF5_QT_INCLUDE_DIRS} "../../../interfaces" @@ -75,11 +72,10 @@ target_link_libraries(${PLUGIN_NAME} PRIVATE ${Qt5Widgets_LIBRARIES} ${Qt5Svg_LIBRARIES} ${Qt5DBus_LIBRARIES} - ${DDE-Network-Core_LIBRARIES} ${DFrameworkDBus_LIBRARIES} ${KF5_QT_LIBRARIES} ${Qt5Network_LIBRARIES} - dde-network-core + dde-tray-network-core ) install(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION lib/dde-dock/plugins/system-trays) diff --git a/plugins/dde-network-core/dock-network-plugin/dockcontentwidget.h b/plugins/dde-network-core/dock-tray-network-plugin/dockcontentwidget.h similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/dockcontentwidget.h rename to plugins/dde-network-core/dock-tray-network-plugin/dockcontentwidget.h diff --git a/plugins/dde-network-core/dock-network-plugin/lupdate.sh b/plugins/dde-network-core/dock-tray-network-plugin/lupdate.sh similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/lupdate.sh rename to plugins/dde-network-core/dock-tray-network-plugin/lupdate.sh diff --git a/plugins/dde-network-core/dock-network-plugin/network.json b/plugins/dde-network-core/dock-tray-network-plugin/network.json similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/network.json rename to plugins/dde-network-core/dock-tray-network-plugin/network.json diff --git a/plugins/dde-network-core/dock-network-plugin/network_v2.json b/plugins/dde-network-core/dock-tray-network-plugin/network_v2.json similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/network_v2.json rename to plugins/dde-network-core/dock-tray-network-plugin/network_v2.json diff --git a/plugins/dde-network-core/dock-network-plugin/networkplugin.cpp b/plugins/dde-network-core/dock-tray-network-plugin/networkplugin.cpp similarity index 99% rename from plugins/dde-network-core/dock-network-plugin/networkplugin.cpp rename to plugins/dde-network-core/dock-tray-network-plugin/networkplugin.cpp index d9d700b8..68a6f8e5 100644 --- a/plugins/dde-network-core/dock-network-plugin/networkplugin.cpp +++ b/plugins/dde-network-core/dock-tray-network-plugin/networkplugin.cpp @@ -42,7 +42,7 @@ NetworkPlugin::NetworkPlugin(QObject *parent) , m_netLimited(false) { QTranslator *translator = new QTranslator(this); - translator->load(QString("/usr/share/dock-network-plugin/translations/dock-network-plugin_%1").arg(QLocale().name())); + translator->load(QString("/usr/share/dock-tray-network-plugin/translations/dock-network-plugin_%1").arg(QLocale().name())); QCoreApplication::installTranslator(translator); } diff --git a/plugins/dde-network-core/dock-network-plugin/networkplugin.h b/plugins/dde-network-core/dock-tray-network-plugin/networkplugin.h similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/networkplugin.h rename to plugins/dde-network-core/dock-tray-network-plugin/networkplugin.h diff --git a/plugins/dde-network-core/dock-network-plugin/quickpanelwidget.cpp b/plugins/dde-network-core/dock-tray-network-plugin/quickpanelwidget.cpp similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/quickpanelwidget.cpp rename to plugins/dde-network-core/dock-tray-network-plugin/quickpanelwidget.cpp diff --git a/plugins/dde-network-core/dock-network-plugin/quickpanelwidget.h b/plugins/dde-network-core/dock-tray-network-plugin/quickpanelwidget.h similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/quickpanelwidget.h rename to plugins/dde-network-core/dock-tray-network-plugin/quickpanelwidget.h diff --git a/plugins/dde-network-core/dock-network-plugin/resources/network.svg b/plugins/dde-network-core/dock-tray-network-plugin/resources/network.svg similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/resources/network.svg rename to plugins/dde-network-core/dock-tray-network-plugin/resources/network.svg diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ady.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ady.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ady.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ady.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_af.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_af.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_af.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_af.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_af_ZA.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_af_ZA.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_af_ZA.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_af_ZA.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ak.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ak.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ak.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ak.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_am.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_am.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_am.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_am.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_am_ET.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_am_ET.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_am_ET.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_am_ET.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ar.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ar.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ar.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ar.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ar_EG.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ar_EG.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ar_EG.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ar_EG.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ast.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ast.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ast.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ast.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_az.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_az.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_az.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_az.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_bg.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_bg.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_bg.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_bg.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_bn.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_bn.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_bn.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_bn.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_bo.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_bo.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_bo.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_bo.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_bqi.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_bqi.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_bqi.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_bqi.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_br.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_br.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_br.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_br.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ca.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ca.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ca.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ca.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_cgg.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_cgg.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_cgg.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_cgg.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_cs.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_cs.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_cs.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_cs.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_da.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_da.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_da.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_da.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_de.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_de.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_de.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_de.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_de_CH.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_de_CH.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_de_CH.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_de_CH.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_de_DE.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_de_DE.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_de_DE.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_de_DE.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_el.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_el.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_el.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_el.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_el_GR.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_el_GR.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_el_GR.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_el_GR.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_en_AU.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_en_AU.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_en_AU.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_en_AU.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_en_GB.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_en_GB.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_en_GB.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_en_GB.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_en_NO.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_en_NO.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_en_NO.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_en_NO.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_en_US.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_en_US.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_en_US.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_en_US.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_eo.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_eo.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_eo.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_eo.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es_419.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es_419.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es_419.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es_419.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es_AR.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es_AR.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es_AR.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es_AR.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es_CL.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es_CL.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es_CL.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es_CL.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es_MX.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es_MX.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_es_MX.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_es_MX.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_et.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_et.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_et.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_et.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_eu.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_eu.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_eu.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_eu.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_fa.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_fa.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_fa.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_fa.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_fi.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_fi.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_fi.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_fi.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_fil.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_fil.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_fil.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_fil.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_fr.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_fr.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_fr.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_fr.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_gl.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_gl.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_gl.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_gl.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_gl_ES.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_gl_ES.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_gl_ES.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_gl_ES.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_he.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_he.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_he.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_he.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_hi_IN.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_hi_IN.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_hi_IN.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_hi_IN.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_hr.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_hr.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_hr.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_hr.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_hu.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_hu.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_hu.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_hu.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_hy.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_hy.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_hy.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_hy.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_id.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_id.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_id.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_id.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_id_ID.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_id_ID.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_id_ID.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_id_ID.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_it.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_it.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_it.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_it.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ja.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ja.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ja.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ja.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ka.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ka.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ka.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ka.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_kab.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_kab.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_kab.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_kab.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_kk.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_kk.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_kk.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_kk.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_km_KH.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_km_KH.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_km_KH.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_km_KH.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_kn_IN.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_kn_IN.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_kn_IN.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_kn_IN.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ko.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ko.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ko.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ko.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ku.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ku.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ku.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ku.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ku_IQ.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ku_IQ.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ku_IQ.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ku_IQ.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ky.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ky.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ky.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ky.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ky@Arab.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ky@Arab.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ky@Arab.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ky@Arab.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_la.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_la.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_la.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_la.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_lo.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_lo.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_lo.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_lo.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_lt.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_lt.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_lt.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_lt.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_lv.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_lv.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_lv.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_lv.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ml.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ml.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ml.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ml.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_mn.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_mn.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_mn.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_mn.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_mr.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_mr.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_mr.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_mr.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ms.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ms.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ms.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ms.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_nb.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_nb.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_nb.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_nb.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ne.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ne.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ne.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ne.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_nl.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_nl.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_nl.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_nl.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pa.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pa.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pa.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pa.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pam.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pam.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pam.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pam.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pl.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pl.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pl.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pl.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ps.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ps.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ps.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ps.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pt.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pt.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pt.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pt.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pt_BR.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pt_BR.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_pt_BR.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_pt_BR.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ro.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ro.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ro.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ro.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ru.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ru.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ru.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ru.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ru_UA.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ru_UA.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ru_UA.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ru_UA.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sc.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sc.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sc.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sc.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_si.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_si.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_si.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_si.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sk.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sk.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sk.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sk.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sl.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sl.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sl.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sl.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sq.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sq.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sq.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sq.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sr.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sr.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sr.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sr.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sv.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sv.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sv.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sv.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sv_SE.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sv_SE.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sv_SE.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sv_SE.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sw.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sw.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_sw.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_sw.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ta.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ta.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ta.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ta.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_te.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_te.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_te.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_te.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_th.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_th.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_th.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_th.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_tr.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_tr.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_tr.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_tr.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_tzm.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_tzm.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_tzm.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_tzm.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ug.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ug.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ug.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ug.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_uk.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_uk.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_uk.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_uk.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ur.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ur.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_ur.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_ur.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_uz.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_uz.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_uz.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_uz.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_vi.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_vi.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_vi.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_vi.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_zh_CN.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_zh_CN.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_zh_CN.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_zh_CN.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_zh_HK.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_zh_HK.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_zh_HK.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_zh_HK.ts diff --git a/plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_zh_TW.ts b/plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_zh_TW.ts similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/translations/dock-network-plugin_zh_TW.ts rename to plugins/dde-network-core/dock-tray-network-plugin/translations/dock-network-plugin_zh_TW.ts diff --git a/plugins/dde-network-core/dock-network-plugin/widget/commoniconbutton.cpp b/plugins/dde-network-core/dock-tray-network-plugin/widget/commoniconbutton.cpp similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/widget/commoniconbutton.cpp rename to plugins/dde-network-core/dock-tray-network-plugin/widget/commoniconbutton.cpp diff --git a/plugins/dde-network-core/dock-network-plugin/widget/commoniconbutton.h b/plugins/dde-network-core/dock-tray-network-plugin/widget/commoniconbutton.h similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/widget/commoniconbutton.h rename to plugins/dde-network-core/dock-tray-network-plugin/widget/commoniconbutton.h diff --git a/plugins/dde-network-core/dock-network-plugin/widget/jumpsettingbutton.cpp b/plugins/dde-network-core/dock-tray-network-plugin/widget/jumpsettingbutton.cpp similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/widget/jumpsettingbutton.cpp rename to plugins/dde-network-core/dock-tray-network-plugin/widget/jumpsettingbutton.cpp diff --git a/plugins/dde-network-core/dock-network-plugin/widget/jumpsettingbutton.h b/plugins/dde-network-core/dock-tray-network-plugin/widget/jumpsettingbutton.h similarity index 100% rename from plugins/dde-network-core/dock-network-plugin/widget/jumpsettingbutton.h rename to plugins/dde-network-core/dock-tray-network-plugin/widget/jumpsettingbutton.h diff --git a/plugins/dde-network-core/src/CMakeLists.txt b/plugins/dde-network-core/src/CMakeLists.txt index d67f1885..9f52ac75 100644 --- a/plugins/dde-network-core/src/CMakeLists.txt +++ b/plugins/dde-network-core/src/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.7) -project(dde-network-core) +project(dde-tray-network-core) set(CMAKE_CXX_STANDARD 11) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -90,7 +90,7 @@ target_link_libraries(${PROJECT_NAME} PRIVATE ${Libudev_LIBRARIES} ) -configure_file(dde-network-core.pc.in ${CMAKE_BINARY_DIR}/dde-network-core.pc @ONLY) +configure_file(dde-tray-network-core.pc.in ${CMAKE_BINARY_DIR}/dde-tray-network-core.pc @ONLY) set(INTERFACEFILES impl/dslcontroller.h @@ -105,8 +105,8 @@ set(INTERFACEFILES wirelessdevice.h) install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(FILES ${CMAKE_BINARY_DIR}/dde-network-core.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) -install(FILES ${INTERFACEFILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libddenetworkcore) -install(FILES ../config/org.deepin.dde.network.json DESTINATION ${CMAKE_INSTALL_DATADIR}/dsg/configs/org.deepin.dde.network) +install(FILES ${CMAKE_BINARY_DIR}/dde-tray-network-core.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +install(FILES ${INTERFACEFILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libddetraynetworkcore) +install(FILES ../config/org.deepin.dde.network.json DESTINATION ${CMAKE_INSTALL_DATADIR}/dsg/configs/org.deepin.dde.tray.network) # 安装 .qm 文件 install(FILES ${QM_FILES} DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/translations) diff --git a/plugins/dde-network-core/src/dde-network-core.pc.in b/plugins/dde-network-core/src/dde-tray-network-core.pc.in similarity index 100% rename from plugins/dde-network-core/src/dde-network-core.pc.in rename to plugins/dde-network-core/src/dde-tray-network-core.pc.in diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt index 3cd77d20..38544e03 100644 --- a/src/loader/CMakeLists.txt +++ b/src/loader/CMakeLists.txt @@ -17,12 +17,13 @@ add_executable(dockplugin-loader quickpluginitem.cpp utils/setproctitle.h utils/setproctitle.cpp + loader.qrc ) target_include_directories(dockplugin-loader PUBLIC "utils/" "../../interfaces/" - "../plugin/" + "../tray-wayland-integration/" ) target_link_libraries(dockplugin-loader PRIVATE diff --git a/src/loader/loader.qrc b/src/loader/loader.qrc new file mode 100644 index 00000000..a0298e51 --- /dev/null +++ b/src/loader/loader.qrc @@ -0,0 +1,6 @@ + + + texts/plugin_item_disconnect_16px.svg + texts/plugin_item_select_16px.svg + + \ No newline at end of file diff --git a/src/loader/main.cpp b/src/loader/main.cpp index b008a85a..d6f045f9 100644 --- a/src/loader/main.cpp +++ b/src/loader/main.cpp @@ -62,6 +62,7 @@ int main(int argc, char *argv[], char *envp[]) Dtk::Widget::DApplication app(argc, argv); app.setAttribute(Qt::AA_UseHighDpiPixmaps, true); + app.setQuitOnLastWindowClosed(false); QCommandLineParser parser; parser.addHelpOption(); diff --git a/src/loader/pluginitem.cpp b/src/loader/pluginitem.cpp index b85029ad..837a621b 100644 --- a/src/loader/pluginitem.cpp +++ b/src/loader/pluginitem.cpp @@ -4,7 +4,7 @@ #include "constants.h" #include "pluginitem.h" -#include "../tray-wayland-integration/plugin.h" +#include "plugin.h" #include #include @@ -23,15 +23,8 @@ PluginItem::PluginItem(PluginsItemInterface *pluginItemInterface, const QString PluginItem::~PluginItem() = default; -void PluginItem::mouseLeftButtonClicked() +QWidget *PluginItem::itemPopupApplet() { - const QString command = m_pluginsItemInterface->itemCommand(m_itemKey); - if (!command.isEmpty()) { - qInfo() << "command: " << command; - QProcess::startDetached(command, QStringList()); - return; - } - auto setPluginMsg = [this] { auto pluginsItemInterfaceV2 = dynamic_cast(m_pluginsItemInterface); if (!pluginsItemInterfaceV2) @@ -53,9 +46,9 @@ void PluginItem::mouseLeftButtonClicked() } if (m_isPanelPopupShow) { - popup->hide(); + popup->windowHandle()->hide(); m_isPanelPopupShow = false; - return; + return nullptr; } setPluginMsg(); @@ -73,13 +66,13 @@ void PluginItem::mouseLeftButtonClicked() pluginPopup->setPluginId(m_pluginsItemInterface->pluginName()); pluginPopup->setItemKey(m_itemKey); pluginPopup->setPopupType(Plugin::PluginPopup::PopupTypePanel); - pluginPopup->setX(geometry.x() + geometry.width() / 2), pluginPopup->setY(geometry.y() + geometry.height() / 2); m_isPanelPopupShow = true; - popup->show(); + return popup; } + return nullptr; } -void PluginItem::mouseRightButtonClicked() +QMenu *PluginItem::pluginContextMenu() { if (m_menu->actions().isEmpty()) { initPluginMenu(); @@ -98,11 +91,9 @@ void PluginItem::mouseRightButtonClicked() pluginPopup->setPluginId(m_pluginsItemInterface->pluginName()); pluginPopup->setItemKey(m_itemKey); pluginPopup->setPopupType(Plugin::PluginPopup::PopupTypeMenu); - pluginPopup->setX(geometry.x() + geometry.width() / 2); - pluginPopup->setY(geometry.y() + geometry.height() / 2); m_menu->setFixedSize(m_menu->sizeHint()); m_isPanelPopupShow = false; - m_menu->exec(); + return m_menu; } void PluginItem::mousePressEvent(QMouseEvent *e) @@ -113,16 +104,44 @@ void PluginItem::mousePressEvent(QMouseEvent *e) void PluginItem::mouseReleaseEvent(QMouseEvent *e) { if (e->button() == Qt::LeftButton) { - mouseLeftButtonClicked(); + if (executeCommand()) + return; + + if (auto popup = itemPopupApplet()) { + if (auto pluginPopup = Plugin::PluginPopup::get(popup->windowHandle())) { + auto geometry = windowHandle()->geometry(); + const auto offset = e->pos(); + pluginPopup->setX(geometry.x() + offset.x()); + pluginPopup->setY(geometry.y() + offset.y()); + popup->show(); + } + } } else if (e->button() == Qt::RightButton) { - mouseRightButtonClicked(); + if (auto menu = pluginContextMenu()) { + if (auto pluginPopup = Plugin::PluginPopup::get(menu->windowHandle())) { + auto geometry = windowHandle()->geometry(); + const auto offset = e->pos(); + pluginPopup->setX(geometry.x() + offset.x()); + pluginPopup->setY(geometry.y() + offset.y()); + menu->exec(); + } + } } QWidget::mouseReleaseEvent(e); } void PluginItem::enterEvent(QEvent *event) { - showPluginTooltip(); + if (auto toolTip = pluginTooltip()) { + if (auto pluginPopup = Plugin::PluginPopup::get(toolTip->windowHandle())) { + auto geometry = windowHandle()->geometry(); + auto e = dynamic_cast(event); + const auto offset = e->pos(); + pluginPopup->setX(geometry.x() + offset.x()); + pluginPopup->setY(geometry.y() + offset.y()); + toolTip->show(); + } + } QWidget::enterEvent(event); } @@ -136,7 +155,17 @@ void PluginItem::leaveEvent(QEvent *event) QWidget* PluginItem::centralWidget() { - return m_pluginsItemInterface->itemWidget(m_itemKey); + auto trayItemWidget = m_pluginsItemInterface->itemWidget(m_itemKey); + auto size = trayItemWidget->sizeHint(); + // TODO by sizePolicy when network plugin fixed + if (size.width() > 0 && size.height() > 0) { + trayItemWidget->setFixedSize(trayItemWidget->sizeHint()); + } else if (trayItemWidget->height() > 16) { + // FIXME: libdock-wirelesscasting-plugin.so return trayItemWidget.size=(640,480) + trayItemWidget->setFixedSize(16, 16); + } + + return trayItemWidget; } PluginsItemInterface * PluginItem::pluginsItemInterface() @@ -209,37 +238,45 @@ void PluginItem::initPluginMenu() } } -void PluginItem::showPluginTooltip() +QWidget *PluginItem::pluginTooltip() { auto popup = m_pluginsItemInterface->itemPopupApplet(m_itemKey); if (popup && popup->isVisible()) - popup->hide(); + popup->windowHandle()->hide(); - showTooltip(m_itemKey); + return itemTooltip(m_itemKey); } -void PluginItem::showTooltip(const QString &itemKey) +QWidget * PluginItem::itemTooltip(const QString &itemKey) { - QMetaObject::invokeMethod(this, [itemKey, this](){ - auto toolTip = m_pluginsItemInterface->itemTipsWidget(itemKey); - if (!toolTip) { - qDebug() << "no tooltip"; - return; - } + auto toolTip = m_pluginsItemInterface->itemTipsWidget(itemKey); + if (!toolTip) { + qDebug() << "no tooltip"; + return nullptr; + } - toolTip->setParent(nullptr); - toolTip->setAttribute(Qt::WA_TranslucentBackground); - toolTip->winId(); + toolTip->setParent(nullptr); + toolTip->setAttribute(Qt::WA_TranslucentBackground); + toolTip->winId(); - auto geometry = windowHandle()->geometry(); - auto pluginPopup = Plugin::PluginPopup::get(toolTip->windowHandle()); - pluginPopup->setPluginId(m_pluginsItemInterface->pluginName()); - pluginPopup->setItemKey(itemKey); - pluginPopup->setPopupType(Plugin::PluginPopup::PopupTypeTooltip); - pluginPopup->setX(geometry.x() + geometry.width() / 2), pluginPopup->setY(geometry.y() + geometry.height() / 2); - if (toolTip->sizeHint().width() > 0 && toolTip->sizeHint().height() > 0) { - toolTip->setFixedSize(toolTip->sizeHint()); - } - toolTip->show(); - }); + auto geometry = windowHandle()->geometry(); + auto pluginPopup = Plugin::PluginPopup::get(toolTip->windowHandle()); + pluginPopup->setPluginId(m_pluginsItemInterface->pluginName()); + pluginPopup->setItemKey(itemKey); + pluginPopup->setPopupType(Plugin::PluginPopup::PopupTypeTooltip); + if (toolTip->sizeHint().width() > 0 && toolTip->sizeHint().height() > 0) { + toolTip->setFixedSize(toolTip->sizeHint()); + } + return toolTip; +} + +bool PluginItem::executeCommand() +{ + const QString command = m_pluginsItemInterface->itemCommand(m_itemKey); + if (!command.isEmpty()) { + qInfo() << "command: " << command; + QProcess::startDetached(command, QStringList()); + return true; + } + return false; } diff --git a/src/loader/pluginitem.h b/src/loader/pluginitem.h index 8ac4d8f2..caa1a027 100644 --- a/src/loader/pluginitem.h +++ b/src/loader/pluginitem.h @@ -24,6 +24,9 @@ class PluginItem : public QWidget int pluginFlags() const; void setPluginFlags(int flags); +signals: + void recvMouseEvent(int type); + protected: void mousePressEvent(QMouseEvent *e) override; void mouseReleaseEvent(QMouseEvent *e) override; @@ -31,15 +34,16 @@ class PluginItem : public QWidget void leaveEvent(QEvent *event) override; virtual QWidget *centralWidget(); - virtual void mouseRightButtonClicked(); - virtual void showPluginTooltip(); + virtual QMenu *pluginContextMenu(); + virtual QWidget *pluginTooltip(); PluginsItemInterface * pluginsItemInterface(); void initPluginMenu(); - void showTooltip(const QString &itemKey); + QWidget *itemTooltip(const QString &itemKey); + bool executeCommand(); private: - void mouseLeftButtonClicked(); + QWidget *itemPopupApplet(); private: void updatePopupSize(const QRect &rect); diff --git a/src/loader/quickpluginitem.cpp b/src/loader/quickpluginitem.cpp index 97d0f03b..114c0c18 100644 --- a/src/loader/quickpluginitem.cpp +++ b/src/loader/quickpluginitem.cpp @@ -4,7 +4,7 @@ #include "quickpluginitem.h" #include "constants.h" -#include "../tray-wayland-integration/plugin.h" +#include "plugin.h" #include #include @@ -18,7 +18,9 @@ QuickPluginItem::QuickPluginItem(PluginsItemInterface *pluginInterface, const QS QWidget *QuickPluginItem::centralWidget() { if (pluginsItemInterface()) { - return pluginsItemInterface()->itemWidget(Dock::QUICK_ITEM_KEY); + auto quickItem = pluginsItemInterface()->itemWidget(Dock::QUICK_ITEM_KEY); + quickItem->setVisible(true); + return quickItem; } return nullptr; } @@ -26,14 +28,22 @@ QWidget *QuickPluginItem::centralWidget() void QuickPluginItem::mouseReleaseEvent(QMouseEvent *e) { if (e->button() == Qt::RightButton) { - mouseRightButtonClicked(); + if (auto menu = pluginContextMenu()) { + if (auto pluginPopup = Plugin::PluginPopup::get(menu->windowHandle())) { + auto geometry = windowHandle()->geometry(); + const auto offset = e->pos(); + pluginPopup->setX(geometry.x() + offset.x()); + pluginPopup->setY(geometry.y() + offset.y()); + menu->exec(); + } + } e->accept(); } QWidget::mouseReleaseEvent(e); } -void QuickPluginItem::mouseRightButtonClicked() +QMenu *QuickPluginItem::pluginContextMenu() { if (m_menu->isEmpty()) { initPluginMenu(); @@ -65,14 +75,22 @@ void QuickPluginItem::mouseRightButtonClicked() pluginPopup->setPluginId(pluginsItemInterface()->pluginName()); pluginPopup->setItemKey(Dock::QUICK_ITEM_KEY); pluginPopup->setPopupType(Plugin::PluginPopup::PopupTypeMenu); - pluginPopup->setX(geometry.x() + geometry.width() / 2); - pluginPopup->setY(geometry.y() + geometry.height() / 2); m_menu->setFixedSize(m_menu->sizeHint()); - m_menu->exec(); + return m_menu; } -void QuickPluginItem::showPluginTooltip() +QWidget *QuickPluginItem::pluginTooltip() { - showTooltip(Dock::QUICK_ITEM_KEY); + auto popup = pluginsItemInterface()->itemPopupApplet(m_itemKey); + if (popup && popup->isVisible()) + popup->windowHandle()->hide(); + + return itemTooltip(Dock::QUICK_ITEM_KEY); } +void QuickPluginItem::mousePressEvent(QMouseEvent *e) +{ + Q_EMIT recvMouseEvent(e->type()); + + PluginItem::mousePressEvent(e); +} diff --git a/src/loader/quickpluginitem.h b/src/loader/quickpluginitem.h index bfa787ed..f036b8b2 100644 --- a/src/loader/quickpluginitem.h +++ b/src/loader/quickpluginitem.h @@ -17,9 +17,10 @@ class QuickPluginItem : public PluginItem protected: virtual QWidget *centralWidget() override; + virtual void mousePressEvent(QMouseEvent *e) override; virtual void mouseReleaseEvent(QMouseEvent *e) override; - virtual void mouseRightButtonClicked() override; - virtual void showPluginTooltip() override; + virtual QMenu *pluginContextMenu() override; + virtual QWidget *pluginTooltip() override; private: QAction *m_onDockAction; diff --git a/src/loader/texts/plugin_item_disconnect_16px.svg b/src/loader/texts/plugin_item_disconnect_16px.svg new file mode 100644 index 00000000..a208403d --- /dev/null +++ b/src/loader/texts/plugin_item_disconnect_16px.svg @@ -0,0 +1,7 @@ + + + ICON / Action / off + + + + \ No newline at end of file diff --git a/src/loader/texts/plugin_item_select_16px.svg b/src/loader/texts/plugin_item_select_16px.svg new file mode 100644 index 00000000..eff205d0 --- /dev/null +++ b/src/loader/texts/plugin_item_select_16px.svg @@ -0,0 +1,11 @@ + + + action_select + + + + + + + + \ No newline at end of file diff --git a/src/loader/widgetplugin.cpp b/src/loader/widgetplugin.cpp index 1568684b..7f484950 100644 --- a/src/loader/widgetplugin.cpp +++ b/src/loader/widgetplugin.cpp @@ -3,7 +3,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later #include "constants.h" -#include "../tray-wayland-integration/plugin.h" +#include "plugin.h" #include "widgetplugin.h" #include "quickpluginitem.h" @@ -43,7 +43,7 @@ void WidgetPlugin::itemAdded(PluginsItemInterface * const itemInter, const QStri qDebug() << "itemAdded:" << itemKey; auto flag = getPluginFlags(); if (flag & Dock::Type_Quick) { - if (!Plugin::EmbedPlugin::contains(itemKey, Plugin::EmbedPlugin::Quick)) { + if (!Plugin::EmbedPlugin::contains(itemInter->pluginName(), Plugin::EmbedPlugin::Quick)) { PluginItem *item = new QuickPluginItem(itemInter, itemKey); item->setPluginFlags(flag); item->init(); @@ -58,11 +58,16 @@ void WidgetPlugin::itemAdded(PluginsItemInterface * const itemInter, const QStri item->windowHandle()->hide(); item->show(); m_pluginItems << item; + } else { + auto quickItem = m_pluginsItemInterface->itemWidget(Dock::QUICK_ITEM_KEY); + if(quickItem) { + quickItem->window()->windowHandle()->show(); + } } } if (flag & Dock::Type_Quick || flag & Dock::Type_System || flag & Dock::Type_Tray || flag & Dock::Attribute_Normal) { - if (!Plugin::EmbedPlugin::contains(itemKey, Plugin::EmbedPlugin::Tray)) { + if (!Plugin::EmbedPlugin::contains(itemInter->pluginName(), Plugin::EmbedPlugin::Tray, itemKey) && m_pluginsItemInterface->itemWidget(itemKey)) { PluginItem *item = new PluginItem(itemInter, itemKey); item->setPluginFlags(flag); item->init(); @@ -77,10 +82,15 @@ void WidgetPlugin::itemAdded(PluginsItemInterface * const itemInter, const QStri item->windowHandle()->hide(); item->show(); m_pluginItems << item; + } else { + auto trayItem = m_pluginsItemInterface->itemWidget(itemKey); + if (trayItem) { + trayItem->window()->windowHandle()->show(); + } } } if (flag & Dock::Type_Tool) { - if (!Plugin::EmbedPlugin::contains(itemKey, Plugin::EmbedPlugin::Fixed)) { + if (!Plugin::EmbedPlugin::contains(itemInter->pluginName(), Plugin::EmbedPlugin::Fixed, itemKey)) { PluginItem *item = new PluginItem(itemInter, itemKey); item->setPluginFlags(flag); item->init(); @@ -119,17 +129,20 @@ void WidgetPlugin::itemUpdate(PluginsItemInterface * const itemInter, const QStr void WidgetPlugin::itemRemoved(PluginsItemInterface * const itemInter, const QString &itemKey) { auto widget = m_pluginsItemInterface->itemWidget(itemKey); - if(widget) widget->hide(); + if(widget && widget->window() && widget->window()->windowHandle()) { + widget->window()->windowHandle()->hide(); + } auto quickPanel = m_pluginsItemInterface->itemWidget(Dock::QUICK_ITEM_KEY); - if(quickPanel) quickPanel->hide(); + if(quickPanel && quickPanel->window() && quickPanel->window()->windowHandle()) { + quickPanel->window()->windowHandle()->hide(); + } auto popupWidget = m_pluginsItemInterface->itemPopupApplet(itemKey); - if(popupWidget) popupWidget->hide(); + if(popupWidget) popupWidget->windowHandle()->hide(); auto tipsWidget = m_pluginsItemInterface->itemTipsWidget(itemKey); - if(tipsWidget) tipsWidget->hide(); - + if(tipsWidget && tipsWidget->windowHandle()) tipsWidget->windowHandle()->hide(); } void WidgetPlugin::requestWindowAutoHide(PluginsItemInterface * const itemInter, const QString &itemKey, const bool autoHide) @@ -236,11 +249,19 @@ void WidgetPlugin::initConnections(Plugin::EmbedPlugin *plugin, PluginItem *plug connect(plugin, &Plugin::EmbedPlugin::dockPositionChanged, this, &WidgetPlugin::onDockPositionChanged, Qt::UniqueConnection); connect(plugin, &Plugin::EmbedPlugin::eventMessage, this, &WidgetPlugin::onDockEventMessageArrived, Qt::UniqueConnection); - connect(plugin, &Plugin::EmbedPlugin::eventGeometry, this, [plugin, pluginItem](const QRect &geometry) { + connect(plugin, &Plugin::EmbedPlugin::eventGeometry, this, [this, plugin, pluginItem](const QRect &geometry) { if (plugin->pluginType() == Plugin::EmbedPlugin::Quick) { pluginItem->updateItemWidgetSize(geometry.size()); + } else { + if (geometry.width() == -1 || geometry.height() == -1) { + if (geometry.width() < 0 && geometry.height() < 0) return; + QSize size = geometry.width() == -1 ? QSize(geometry.height(), geometry.height()) : QSize(geometry.width(), geometry.width()); + pluginUpdateDockSize(size); + } } }); + + connect(pluginItem, &PluginItem::recvMouseEvent, plugin, &Plugin::EmbedPlugin::pluginRecvMouseEvent); } int WidgetPlugin::getPluginFlags() @@ -268,16 +289,91 @@ int WidgetPlugin::getPluginFlags() QString WidgetPlugin::messageCallback(PluginsItemInterfaceV2 *pluginItem, const QString &msg) { qInfo() << "Plugin callback message:" << pluginItem->pluginName() << msg; - foreach (auto plugin, Plugin::EmbedPlugin::all()) { - Q_EMIT plugin->requestMessage(msg); - } QJsonObject ret; + ret["code"] = -1; + + auto rootObj = getRootObj(msg); + if (rootObj.isEmpty()) { + qWarning() << "Root object is empty"; + return toJson(ret); + } + + auto msgType = rootObj.value(Dock::MSG_TYPE); + if (msgType == Dock::MSG_SUPPORT_FLAG_CHANGED) { + bool changed = supportFlag(pluginItem); + foreach (auto plugin, Plugin::EmbedPlugin::all()) { + Q_EMIT plugin->pluginSupportFlagChanged(changed); + } + } else { + foreach (auto plugin, Plugin::EmbedPlugin::all()) { + Q_EMIT plugin->requestMessage(msg); + } + } + ret["code"] = 0; + return toJson(ret); +} + +QJsonObject WidgetPlugin::getRootObj(const QString &jsonStr) +{ + QJsonParseError jsonParseError; + const QJsonDocument &resultDoc = QJsonDocument::fromJson(jsonStr.toLocal8Bit(), &jsonParseError); + if (jsonParseError.error != QJsonParseError::NoError || resultDoc.isEmpty()) { + qWarning() << "Result json parse error"; + return QJsonObject(); + } + + return resultDoc.object(); +} + +QString WidgetPlugin::toJson(const QJsonObject &jsonObj) +{ + QJsonDocument doc; + doc.setObject(jsonObj); + return doc.toJson(); +} + +bool WidgetPlugin::supportFlag(PluginsItemInterfaceV2 *pluginV2) +{ + if (!pluginV2) { + return true; + } + + QJsonObject obj; + obj[Dock::MSG_TYPE] = Dock::MSG_GET_SUPPORT_FLAG; + + auto ret = pluginV2->message(toJson(obj)); + if (ret.isEmpty()) + return true; + + auto rootObj = getRootObj(ret); + if (rootObj.isEmpty() || !rootObj.contains(Dock::MSG_SUPPORT_FLAG)) { + return true; + } + + return rootObj.value(Dock::MSG_SUPPORT_FLAG).toBool(true); +} + +void WidgetPlugin::pluginUpdateDockSize(const QSize &size) +{ + auto pluginsItemInterfaceV2 = dynamic_cast(m_pluginsItemInterface); + if (!pluginsItemInterfaceV2) { + return; + } + + QJsonObject sizeData; + sizeData["width"] = size.width(); + sizeData["height"] = size.height(); + + QJsonObject obj; + obj[Dock::MSG_TYPE] = Dock::MSG_DOCK_PANEL_SIZE_CHANGED; + obj[Dock::MSG_DATA] = sizeData; + + QJsonDocument doc; + doc.setObject(obj); - QJsonDocument result; - result.setObject(ret); - return result.toJson(); + pluginsItemInterfaceV2->message(doc.toJson()); } } diff --git a/src/loader/widgetplugin.h b/src/loader/widgetplugin.h index 2e152679..7e80db2d 100644 --- a/src/loader/widgetplugin.h +++ b/src/loader/widgetplugin.h @@ -47,7 +47,12 @@ public Q_SLOTS: Plugin::EmbedPlugin* getPlugin(QWidget*); void initConnections(Plugin::EmbedPlugin *plugin, PluginItem *pluginItem); int getPluginFlags(); + void pluginUpdateDockSize(const QSize &size); + static QString messageCallback(PluginsItemInterfaceV2 *, const QString &); + static bool supportFlag(PluginsItemInterfaceV2 *pluginV2); + static QJsonObject getRootObj(const QString &jsonStr); + static QString toJson(const QJsonObject &jsonObj); private: PluginsItemInterface* m_pluginsItemInterface; diff --git a/src/protocol/plugin-manager-v1.xml b/src/protocol/plugin-manager-v1.xml index e04bd218..02b17f1a 100644 --- a/src/protocol/plugin-manager-v1.xml +++ b/src/protocol/plugin-manager-v1.xml @@ -102,5 +102,8 @@ + + + diff --git a/src/tray-wayland-integration/CMakeLists.txt b/src/tray-wayland-integration/CMakeLists.txt index 833a6055..379f01d7 100644 --- a/src/tray-wayland-integration/CMakeLists.txt +++ b/src/tray-wayland-integration/CMakeLists.txt @@ -72,5 +72,5 @@ set_target_properties(dockpluginmanager-interface PROPERTIES ) # Do not install .so development library for we don't want others to link to it. -install(TARGETS dockpluginmanager-interface LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(TARGETS dockpluginmanager-interface DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(TARGETS dockpluginmanager DESTINATION ${KDE_INSTALL_QTPLUGINDIR}/wayland-shell-integration) diff --git a/src/tray-wayland-integration/plugin.cpp b/src/tray-wayland-integration/plugin.cpp index b1129f50..0d0dec1e 100644 --- a/src/tray-wayland-integration/plugin.cpp +++ b/src/tray-wayland-integration/plugin.cpp @@ -128,11 +128,17 @@ bool EmbedPlugin::contains(QWindow *window) return s_map.keys().contains(window); } -bool EmbedPlugin::contains(const QString &itemKey, int type) +bool EmbedPlugin::contains(const QString &pluginId, int type, const QString &itemKey) { for (const auto *plugin : s_map.values()) { - if (itemKey == plugin->itemKey() && type == plugin->pluginType()) { - return true; + if (itemKey.isEmpty()) { + if (pluginId == plugin->pluginId() && type == plugin->pluginType()) { + return true; + } + } else { + if (pluginId == plugin->pluginId() && itemKey == plugin->itemKey() && type == plugin->pluginType()) { + return true; + } } } diff --git a/src/tray-wayland-integration/plugin.h b/src/tray-wayland-integration/plugin.h index a37109e4..358e0439 100644 --- a/src/tray-wayland-integration/plugin.h +++ b/src/tray-wayland-integration/plugin.h @@ -50,7 +50,7 @@ class Q_DECL_EXPORT EmbedPlugin : public QObject static EmbedPlugin* get(QWindow* window); static bool contains(QWindow* window); - static bool contains(const QString &itemKey, int type); + static bool contains(const QString &pluginId, int type, const QString &itemKey = QString()); static QList all(); Q_SIGNALS: @@ -58,6 +58,7 @@ class Q_DECL_EXPORT EmbedPlugin : public QObject void eventGeometry(const QRect &geometry); void dockPositionChanged(uint32_t position); void dockColorThemeChanged(uint32_t colorType); + void pluginSupportFlagChanged(bool); Q_SIGNALS: void itemKeyChanged(); @@ -66,6 +67,7 @@ class Q_DECL_EXPORT EmbedPlugin : public QObject void pluginFlagsChanged(); void pluginSizePolicyChanged(); void requestMessage(const QString &msg); + void pluginRecvMouseEvent(int type); private: explicit EmbedPlugin(QWindow* window); diff --git a/src/tray-wayland-integration/pluginsurface.cpp b/src/tray-wayland-integration/pluginsurface.cpp index f9778f98..a15972aa 100644 --- a/src/tray-wayland-integration/pluginsurface.cpp +++ b/src/tray-wayland-integration/pluginsurface.cpp @@ -23,6 +23,10 @@ PluginSurface::PluginSurface(PluginManager *manager, QtWaylandClient::QWaylandWi connect(m_plugin, &EmbedPlugin::requestMessage, manager, [manager, this](const QString &msg) { manager->requestMessage(m_plugin->pluginId(), m_plugin->itemKey(), msg); }); + + connect(m_plugin, &EmbedPlugin::pluginRecvMouseEvent, this, [this] (int type){ + mouse_event(type); + }); } PluginSurface::~PluginSurface() @@ -36,7 +40,9 @@ void PluginSurface::plugin_close() void PluginSurface::plugin_geometry(int32_t x, int32_t y, int32_t width, int32_t height) { - m_window->setGeometry(x, y, width, height); + if (width > 0 && height > 0) { + m_window->setGeometry(x, y, width, height); + } Q_EMIT m_plugin->eventGeometry(QRect(x, y, width, height)); }