fix: 修复默认程序有多个会冲突的问题

解析优先默认程序的配置文件时解析错误

Log: 修复默认程序有多个会冲突的问题
Influence: 默认程序
Bug: https://pms.uniontech.com/bug-view-182127.html
Change-Id: Ib9c86af489e5a5b48f5dc6326e16ba7ad5b7b2b1
This commit is contained in:
ssk-wh 2023-01-13 09:31:49 +08:00 committed by Gary Wang
parent f4650acfcd
commit 72384e3768
2 changed files with 11 additions and 11 deletions

View File

@ -19,22 +19,22 @@ struct DefaultUserAppInfos {
inline void toJson(QJsonObject& j, const DefaultUserAppInfo& userAppInfo)
{
j = QJsonObject{ { "appId", QJsonArray::fromVariantList(userAppInfo.appId) }, { "appType", userAppInfo.appType.c_str() }, { "supportedType", QJsonArray::fromVariantList(userAppInfo.supportedType) }};
j = QJsonObject{ { "AppId", QJsonArray::fromVariantList(userAppInfo.appId) }, { "AppType", userAppInfo.appType.c_str() }, { "SupportedType", QJsonArray::fromVariantList(userAppInfo.supportedType) }};
}
inline void fromJson(const QJsonObject& j, DefaultUserAppInfo& userAppInfo)
{
if (j.contains("appId")) {
userAppInfo.appId = j.value("appId").toArray().toVariantList();
if (j.contains("AppId")) {
userAppInfo.appId = j.value("AppId").toArray().toVariantList();
}
if (j.contains("appType")) {
userAppInfo.appType = j.value("appType").toString().toStdString();
if (j.contains("AppType")) {
userAppInfo.appType = j.value("AppType").toString().toStdString();
}
if (j.contains("supportedType")) {
userAppInfo.supportedType = j.value("supportedType").toArray().toVariantList();
if (j.contains("SupportedType")) {
userAppInfo.supportedType = j.value("SupportedType").toArray().toVariantList();
}
}
@ -49,7 +49,7 @@ inline void toJson(QJsonObject& j, const DefaultUserAppInfos& userAppInfos)
}
j = QJsonObject {
{"appInfos", appInfoArray}
{"DefaultApps", appInfoArray}
};
}
@ -57,9 +57,9 @@ inline void fromJson(const QJsonObject& j, DefaultUserAppInfos& userAppInfos)
{
QJsonObject tmpObj = j;
if (j.contains("appInfos")) {
if (j.contains("DefaultApps")) {
DefaultUserAppInfo userAppInfo;
for (auto appInfo : tmpObj.take("appInfos").toArray()) {
for (auto appInfo : tmpObj.take("DefaultApps").toArray()) {
fromJson(appInfo.toObject(), userAppInfo);
userAppInfos.appInfos.push_back(userAppInfo);
}

View File

@ -197,6 +197,7 @@ void MimeApp::deleteMimeAssociation(std::string mimeType, std::string desktopId)
void MimeApp::initConfigData()
{
// TODO 这个配置文件当前仍然是在dde-daemon中但mime的服务已经迁移到此项目后续应该把这个配置文件拿过来
std::string filename = findFilePath("/dde-daemon/mime/data.json");
QFile file(filename.c_str());
@ -236,7 +237,6 @@ void MimeApp::initConfigData()
}
}
}
}
std::string MimeApp::findFilePath(std::string fileName)