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(); }