diff --git a/deepin-devicemanager/src/DeviceManager/DeviceMonitor.cpp b/deepin-devicemanager/src/DeviceManager/DeviceMonitor.cpp index 6d766f13e..d0f79c198 100644 --- a/deepin-devicemanager/src/DeviceManager/DeviceMonitor.cpp +++ b/deepin-devicemanager/src/DeviceManager/DeviceMonitor.cpp @@ -179,7 +179,20 @@ void DeviceMonitor::setInfoFromEdidForCustom(const QMap &mapIn void DeviceMonitor::setInfoFromDbus(const QMap &mapInfo) { if (mapInfo["Name"].toLower().contains(m_DisplayInput.toLower(), Qt::CaseInsensitive)) { + QRegExp reInput("^([a-zA-Z]*)-[\\s\\S]*"); + if (m_Interface.isEmpty() && reInput.exactMatch(mapInfo["Name"])) { + m_Interface = reInput.cap(1); + } + setAttribute(mapInfo, "CurResolution", m_CurrentResolution); + + if (Common::specialComType == Common::kSpecialType10) { + QRegExp reResolution("^([0-9]{1,5})×([0-9]{1,5})@([0-9.]+)Hz$"); + if (reResolution.exactMatch(m_CurrentResolution)) { + m_CurrentResolution = QString("%1×%2").arg(reResolution.cap(1)).arg(reResolution.cap(2)); + m_RefreshRate = QString::number(ceil(reResolution.cap(3).toDouble())) + "Hz"; + } + } } } diff --git a/deepin-devicemanager/src/Tool/ThreadExecXrandr.cpp b/deepin-devicemanager/src/Tool/ThreadExecXrandr.cpp index 2d3f4e7b4..64b9f43e5 100644 --- a/deepin-devicemanager/src/Tool/ThreadExecXrandr.cpp +++ b/deepin-devicemanager/src/Tool/ThreadExecXrandr.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2022 -2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -50,12 +50,15 @@ void ThreadExecXrandr::run() { if (m_Gpu) { getGpuInfoFromXrandr(); - } else { - if(Common::boardVendorType() == "PGUV") { - QList> lstMap; - getResolutionRateFromDBus(lstMap); - }else + } else { + if (Common::isHwPlatform()) { + QList> lstMap; + getResolutionRateFromDBus(lstMap); + if (lstMap.isEmpty()) + getMonitorInfoFromXrandrVerbose(); + } else { getMonitorInfoFromXrandrVerbose(); + } } }