From 254dee8455474099cd5a32c962572af2d3091f66 Mon Sep 17 00:00:00 2001 From: songwentao Date: Fri, 26 Nov 2021 14:59:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E7=9A=84=E5=B0=8F=E7=AA=97=E5=8F=A3=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=AA=97=E5=8F=A3=E5=90=8D=E7=A7=B0=E7=9A=84=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 给任务栏图标的小窗口显示窗口名称添加配置 Log: Task: https://pms.uniontech.com/zentao/task-view-92890.html Influence: 组策略配置场景 Change-Id: I330b6490408e0056ebc68ebefa1417207c26273f --- CMakeLists.txt | 4 ++++ configs/com.deepin.dde.dock.dconfig.json | 20 +++++++++++++++++++ debian/dde-dock.install | 1 + frame/item/appitem.cpp | 8 +++++--- frame/item/appitem.h | 6 ++++++ .../com.deepin.dde.dock.module.gschema.xml | 7 ------- 6 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 configs/com.deepin.dde.dock.dconfig.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 07d193e6f..921993c9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,6 +123,10 @@ install(FILES "cmake/DdeDock/DdeDockConfig.cmake" install(FILES gschema/com.deepin.dde.dock.module.gschema.xml DESTINATION share/glib-2.0/schemas) +#dconfig +file(GLOB DCONFIG_FILES "configs/*.json") +install(FILES ${DCONFIG_FILES} DESTINATION /usr/share/dsg/apps/dde-dock/configs/) + # Address Sanitizer 内存错误检测工具,打开下面的编译选项可以看到调试信息,正常运行时不需要这些信息 #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -fsanitize=address -O2") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fsanitize=address -O2") diff --git a/configs/com.deepin.dde.dock.dconfig.json b/configs/com.deepin.dde.dock.dconfig.json new file mode 100644 index 000000000..dd2b5d11e --- /dev/null +++ b/configs/com.deepin.dde.dock.dconfig.json @@ -0,0 +1,20 @@ +{ + "magic":"dsg.config.meta", + "version":"1.0", + "contents":{ + "Dock_Show_Window_name":{ + "value":0, + "serial":0, + "flags":"", + "name":"Dock_Show_Window_name", + "name[zh_CN]":"任务栏图标的小窗口显示窗口名称", + "description[zh_CN]":"提供鼠标悬停小窗口标题显示配置,默认为悬停显示: \ + 当配置为全部显示时,鼠标悬停在任务栏图标位置时所有预览窗口显示标题信息; \ + 当配置为悬停显示时,鼠标仅在悬停在预览小窗口时在当前窗口显示标题信息; \ + 当配置为不显示时,鼠标悬停应用位置和预览小窗口位置时都不显示标题信息;", + "description":"0 Mouse over show;1 Always show; 2 Always hide", + "permissions":"readwrite", + "visibility":"public" + } + } +} \ No newline at end of file diff --git a/debian/dde-dock.install b/debian/dde-dock.install index ae850628c..b9334f3c1 100644 --- a/debian/dde-dock.install +++ b/debian/dde-dock.install @@ -10,3 +10,4 @@ usr/lib/dde-dock/plugins/system-trays usr/lib/dde-dock/plugins/libmultitasking.so usr/lib/dde-dock/plugins/libshow-desktop.so usr/lib/dde-dock/plugins/libkeyboard-layout.so +usr/share/dsg/apps/dde-dock/configs/ \ No newline at end of file diff --git a/frame/item/appitem.cpp b/frame/item/appitem.cpp index 7d9f732fa..5e12a6f8d 100644 --- a/frame/item/appitem.cpp +++ b/frame/item/appitem.cpp @@ -41,8 +41,10 @@ #include #include +#include DGUI_USE_NAMESPACE +DCORE_USE_NAMESPACE #define APP_DRAG_THRESHOLD 20 @@ -69,6 +71,7 @@ AppItem::AppItem(const QGSettings *appSettings, const QGSettings *activeAppSetti , m_retryObtainIconTimer(new QTimer(this)) , m_refershIconTimer(new QTimer(this)) , m_themeType(DGuiApplicationHelper::instance()->themeType()) + , m_config(new DConfig(QString("com.deepin.dde.dock.dconfig"), QString(), this)) { QHBoxLayout *centralLayout = new QHBoxLayout; centralLayout->setMargin(0); @@ -663,9 +666,8 @@ void AppItem::showPreview() connect(m_appPreviewTips, &PreviewContainer::requestHidePopup, this, &AppItem::onResetPreview); // 预览标题显示方式的配置 - if (m_activeAppSettings->keys().contains("previewTitle")) { - m_appPreviewTips->setTitleDisplayMode(m_activeAppSettings->get("previewTitle").toInt()); - } + if (m_config->isValid() && m_config->keyList().contains("Dock_Show_Window_name")) + m_appPreviewTips->setTitleDisplayMode(m_config->value("Dock_Show_Window_name").toInt()); showPopupWindow(m_appPreviewTips, true); } diff --git a/frame/item/appitem.h b/frame/item/appitem.h index 3c5b83ec9..0109f5b14 100644 --- a/frame/item/appitem.h +++ b/frame/item/appitem.h @@ -38,6 +38,11 @@ using DockEntryInter = com::deepin::dde::daemon::dock::Entry; class QGSettings; + +DCORE_BEGIN_NAMESPACE +class DConfig; +DCORE_END_NAMESPACE + class AppItem : public DockItem { Q_OBJECT @@ -143,6 +148,7 @@ private: DGuiApplicationHelper::ColorType m_themeType; static QPoint MousePressPos; + DTK_CORE_NAMESPACE::DConfig *m_config; }; #endif // APPITEM_H diff --git a/gschema/com.deepin.dde.dock.module.gschema.xml b/gschema/com.deepin.dde.dock.module.gschema.xml index e16f3580e..6ef07aac2 100644 --- a/gschema/com.deepin.dde.dock.module.gschema.xml +++ b/gschema/com.deepin.dde.dock.module.gschema.xml @@ -62,13 +62,6 @@ Control Module Enable - - 0 - 0 Mouse over show;1 Always show; 2 Always hide - - The display mode of the application preview - -