From af2f59251419ce6d5058d73ebf6d2ef1c9cbc5c4 Mon Sep 17 00:00:00 2001 From: ut002729 Date: Thu, 25 Jul 2024 16:44:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lastore配置版本高于1.0时才走本地数据库查询 Log: 增加本地数据库查询条件 Task: https://pms.uniontech.com/task-view-357591.html Change-Id: I28ba40f05f09defc72bb6dfc480b3460dacb3554 --- src/Common/vendor/zdrivermanager.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/Common/vendor/zdrivermanager.cpp b/src/Common/vendor/zdrivermanager.cpp index 1815a2b..b366af9 100644 --- a/src/Common/vendor/zdrivermanager.cpp +++ b/src/Common/vendor/zdrivermanager.cpp @@ -36,6 +36,9 @@ #include +#include +DCORE_USE_NAMESPACE + static QMutex g_mutex; static QMap> g_ppds; //所有ppd文件的字典,以device_id(没有device_id则以make_and_model)作为key static QMap *> g_ppdsDirct; //将厂商和型号格式化之后作为key生成的字典,键值为g_ppds的key @@ -49,6 +52,26 @@ static const QString g_dbpath = "/opt/deepin/dde-printer/printer-drivers/deb-rep static const QString g_ppddbname = "ppd.db"; static const QString g_dbversion = "0.1.2"; +static bool isLastoreConfigVerAccord() +{ + QString name = "org.deepin.lastore"; + DConfig *config = DConfig::create(name, name); + + if (config == nullptr) { + return false; + } + + QString version = config->value("version").toByteArray(); + config->deleteLater(); + + qCDebug(COMMONMOUDLE) << "config ver:" << version; + if (!version.isEmpty() && QVersionNumber::fromString(version) > QVersionNumber::fromString("1.0")) { + return true; + } + + return false; +} + static QMap stringToVariant(const QMap &driver) { QMap info; @@ -886,7 +909,8 @@ void DriverSearcher::askForFinish() if (m_drivers.isEmpty() || m_matchLocalDriver) { getLocalDrivers(); } - if (m_drivers.isEmpty() && supportArchs.contains(g_Settings->getSystemArch())) { + + if (m_drivers.isEmpty() && supportArchs.contains(g_Settings->getSystemArch()) && isLastoreConfigVerAccord()) { getLocalDbDrivers(); }