[Option][JSON] Custom auto-replaces

This commit is contained in:
Eric Kotato 2022-08-26 22:32:27 +03:00
parent fd5fc10ff8
commit 89bd7f37f1

View file

@ -171,6 +171,33 @@ CheckHandler ScalesLimit() {
}; };
} }
CheckHandler ReplacesLimit() {
return [=] (QVariant value) -> QVariant {
auto newArrayValue = QJsonArray();
if (value.canConvert<QJsonArray>()) {
auto arrayValue = value.toJsonArray();
for (auto i = arrayValue.begin(); i != arrayValue.end(); ++i) {
if (!(*i).isArray()) {
continue;
}
const auto a = (*i).toArray();
if (a.size() != 2 || !a.at(0).isString() || !a.at(1).isString()) {
continue;
}
const auto from = a.at(0).toString();
const auto to = a.at(1).toString();
Ui::AddCustomReplacement(from, to);
newArrayValue.append(a);
}
}
return newArrayValue;
};
}
CheckHandler NetSpeedBoostConv(CheckHandler wrapped = nullptr) { CheckHandler NetSpeedBoostConv(CheckHandler wrapped = nullptr) {
return [=] (QVariant value) -> QVariant { return [=] (QVariant value) -> QVariant {
@ -319,6 +346,9 @@ const std::map<QString, Definition, std::greater<QString>> DefinitionMap {
{ "disable_up_edit", { { "disable_up_edit", {
.type = SettingType::BoolSetting, .type = SettingType::BoolSetting,
.defaultValue = false, }}, .defaultValue = false, }},
{ "replaces", {
.type = SettingType::QJsonArraySetting,
.limitHandler = ReplacesLimit(), }},
}; };
using OldOptionKey = QString; using OldOptionKey = QString;