fix: 修复Intel显卡图标误显示为AMD及插件加载失败

1. CMakeLists.txt 链接 libdde-shell 库 (Dde::Shell),修复 undefined symbol:
   ds::DApplet::staticMetaObject 导致 .so 加载失败、弹框空白的问题

2. parseGpuVendorShort 用正则单词边界匹配厂商名称,修复 indexOf('ati')
   误匹配 'corporation' 中的子串导致 Intel 显卡显示 AMD 图标的问题
This commit is contained in:
2026-07-14 10:01:46 +08:00
parent f79171dbcd
commit e771a160ab
2 changed files with 9 additions and 6 deletions
+2
View File
@@ -12,6 +12,7 @@ set(CMAKE_AUTOMOC ON)
find_package(Qt6 REQUIRED COMPONENTS Core Quick DBus LinguistTools) find_package(Qt6 REQUIRED COMPONENTS Core Quick DBus LinguistTools)
find_package(Dtk6 REQUIRED COMPONENTS Core) find_package(Dtk6 REQUIRED COMPONENTS Core)
find_package(DDEShell REQUIRED)
# 插件 ID # 插件 ID
set(PLUGIN_ID "org.deepin.ds.graphics-driver") set(PLUGIN_ID "org.deepin.ds.graphics-driver")
@@ -63,6 +64,7 @@ target_link_libraries(org.deepin.ds.graphics-driver PRIVATE
Qt6::Quick Qt6::Quick
Qt6::DBus Qt6::DBus
Dtk6::Core Dtk6::Core
Dde::Shell
) )
# 安装到dde-shell插件目录 # 安装到dde-shell插件目录
+7 -6
View File
@@ -572,13 +572,14 @@ AppletItem {
} }
// 识别 GPU 厂商简称 // 识别 GPU 厂商简称
// 注意:用单词边界匹配,避免 "corporation" 中的 "ati" 等子串误匹配
function parseGpuVendorShort(info) { function parseGpuVendorShort(info) {
var name = info.toLowerCase() var name = parseGpuName(info).toLowerCase()
if (name.indexOf("nvidia") !== -1) return "NV" if (/nvidia/.test(name)) return "NV"
if (name.indexOf("amd") !== -1 || name.indexOf("ati") !== -1 || name.indexOf("advanced micro") !== -1) return "AMD" if (/\bamd\b/.test(name) || /\bati\b/.test(name) || /advanced micro/.test(name)) return "AMD"
if (name.indexOf("intel") !== -1) return "Intel" if (/intel/.test(name)) return "Intel"
if (name.indexOf("qualcomm") !== -1) return "QC" if (/qualcomm/.test(name)) return "QC"
if (name.indexOf("microsoft") !== -1) return "MS" if (/microsoft/.test(name)) return "MS"
return "GPU" return "GPU"
} }