From 5f4429b3f8106355d9ad91e8573effd2ed66a877 Mon Sep 17 00:00:00 2001 From: donghualin Date: Tue, 28 Jun 2022 09:31:40 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Ddebian=E6=89=93?= =?UTF-8?q?=E5=8C=85=E4=BD=BF=E7=94=A8AM=E5=AE=8F=E4=B8=8D=E7=94=9F?= =?UTF-8?q?=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原因:rule中定义的宏只在CMakeLists.txt文件中生效,在c++代码中不生效 解决方案:在CMakeLists.txt文件中直接定义一个宏来判断是否使用AM,这样c++代码中就可以使用CMakeLists.txt文件中的宏 Log: Influence: 任务栏是否使用AM服务 Task: https://pms.uniontech.com/task-view-133075.html Change-Id: Icea6ac1ac4d86dfc4f4aab040deabe99a9d1d83c --- CMakeLists.txt | 2 ++ debian/rules | 3 +-- frame/item/launcheritem.cpp | 8 +++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b46bbdc35..d208ea282 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,8 @@ endif() file(GLOB INTERFACES "interfaces/*.h") +add_compile_definitions(USE_AM) + #因为单元测试需要直接测试源代码,而主程序代码中include的单元使用了相对路径 #单元测试的CMakeLists和主程序的CMakeLists路径不同,编译单元测试时会提示找不到文件 #因此设置搜索路径 diff --git a/debian/rules b/debian/rules index a23c49052..9fbc0fdc0 100755 --- a/debian/rules +++ b/debian/rules @@ -12,5 +12,4 @@ DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) override_dh_auto_configure: dh_auto_configure -- \ - -DHOST_MULTIARCH="$(DEB_HOST_MULTIARCH)" \ - -DUSE_AM=YES + -DHOST_MULTIARCH="$(DEB_HOST_MULTIARCH)" diff --git a/frame/item/launcheritem.cpp b/frame/item/launcheritem.cpp index f482e3ad6..7e53e310f 100644 --- a/frame/item/launcheritem.cpp +++ b/frame/item/launcheritem.cpp @@ -100,11 +100,17 @@ void LauncherItem::mouseReleaseEvent(QMouseEvent *e) if (e->button() != Qt::LeftButton) return; +#ifdef USE_AM + DDBusSender dbusSender = DDBusSender() + .service("org.deepin.dde.Launcher1") + .path("/org/deepin/dde/Launcher1") + .interface("org.deepin.dde.Launcher1"); +#else DDBusSender dbusSender = DDBusSender() .service("com.deepin.dde.Launcher") .path("/com/deepin/dde/Launcher") .interface("com.deepin.dde.Launcher"); - +#endif QDBusPendingReply visibleReply = dbusSender.property("Visible").get(); if (!visibleReply.value()) dbusSender.method("Show").call();