From e771a160ab9c06ac330759fc235acc937530fa08 Mon Sep 17 00:00:00 2001 From: GershonWang Date: Tue, 14 Jul 2026 10:01:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DIntel=E6=98=BE?= =?UTF-8?q?=E5=8D=A1=E5=9B=BE=E6=A0=87=E8=AF=AF=E6=98=BE=E7=A4=BA=E4=B8=BA?= =?UTF-8?q?AMD=E5=8F=8A=E6=8F=92=E4=BB=B6=E5=8A=A0=E8=BD=BD=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. CMakeLists.txt 链接 libdde-shell 库 (Dde::Shell),修复 undefined symbol: ds::DApplet::staticMetaObject 导致 .so 加载失败、弹框空白的问题 2. parseGpuVendorShort 用正则单词边界匹配厂商名称,修复 indexOf('ati') 误匹配 'corporation' 中的子串导致 Intel 显卡显示 AMD 图标的问题 --- CMakeLists.txt | 2 ++ package/driverview.qml | 13 +++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2cc9d02..c24d8be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ set(CMAKE_AUTOMOC ON) find_package(Qt6 REQUIRED COMPONENTS Core Quick DBus LinguistTools) find_package(Dtk6 REQUIRED COMPONENTS Core) +find_package(DDEShell REQUIRED) # 插件 ID set(PLUGIN_ID "org.deepin.ds.graphics-driver") @@ -63,6 +64,7 @@ target_link_libraries(org.deepin.ds.graphics-driver PRIVATE Qt6::Quick Qt6::DBus Dtk6::Core + Dde::Shell ) # 安装到dde-shell插件目录 diff --git a/package/driverview.qml b/package/driverview.qml index a369da3..29fbe8b 100644 --- a/package/driverview.qml +++ b/package/driverview.qml @@ -572,13 +572,14 @@ AppletItem { } // 识别 GPU 厂商简称 + // 注意:用单词边界匹配,避免 "corporation" 中的 "ati" 等子串误匹配 function parseGpuVendorShort(info) { - var name = info.toLowerCase() - if (name.indexOf("nvidia") !== -1) return "NV" - if (name.indexOf("amd") !== -1 || name.indexOf("ati") !== -1 || name.indexOf("advanced micro") !== -1) return "AMD" - if (name.indexOf("intel") !== -1) return "Intel" - if (name.indexOf("qualcomm") !== -1) return "QC" - if (name.indexOf("microsoft") !== -1) return "MS" + var name = parseGpuName(info).toLowerCase() + if (/nvidia/.test(name)) return "NV" + if (/\bamd\b/.test(name) || /\bati\b/.test(name) || /advanced micro/.test(name)) return "AMD" + if (/intel/.test(name)) return "Intel" + if (/qualcomm/.test(name)) return "QC" + if (/microsoft/.test(name)) return "MS" return "GPU" }