| 48 | } |
| 49 | |
| 50 | QList<std::shared_ptr<Rule>> rulesFromJsonV4(const QJsonObject &objectWithRules) |
| 51 | { |
| 52 | QList<std::shared_ptr<Rule>> rules; |
| 53 | auto rulesVal = objectWithRules.value("rules"); |
| 54 | if (!rulesVal.isArray()) |
| 55 | return rules; |
| 56 | |
| 57 | QJsonArray ruleList = rulesVal.toArray(); |
| 58 | for (auto ruleVal : ruleList) |
| 59 | { |
| 60 | std::shared_ptr<Rule> rule; |
| 61 | if (!ruleVal.isObject()) |
| 62 | continue; |
| 63 | auto ruleObj = ruleVal.toObject(); |
| 64 | auto actionVal = ruleObj.value("action"); |
| 65 | if (!actionVal.isString()) |
| 66 | continue; |
| 67 | auto action = RuleAction_fromString(actionVal.toString()); |
| 68 | if (action == Defer) |
| 69 | continue; |
| 70 | |
| 71 | auto osVal = ruleObj.value("os"); |
| 72 | if (!osVal.isObject()) |
| 73 | { |
| 74 | // add a new implicit action rule |
| 75 | rules.append(ImplicitRule::create(action)); |
| 76 | continue; |
| 77 | } |
| 78 | |
| 79 | auto osObj = osVal.toObject(); |
| 80 | auto osNameVal = osObj.value("name"); |
| 81 | if (!osNameVal.isString()) |
| 82 | continue; |
| 83 | QString osName = osNameVal.toString(); |
| 84 | QString versionRegex = osObj.value("version").toString(); |
| 85 | // add a new OS rule |
| 86 | rules.append(OsRule::create(action, osName, versionRegex)); |
| 87 | } |
| 88 | return rules; |
| 89 | } |
| 90 | |
| 91 | QJsonObject ImplicitRule::toJson() |
| 92 | { |
no test coverage detected