Skip to content

Commit b16e5e4

Browse files
vkconfig: Add messages to layers schema
1 parent 2ca6313 commit b16e5e4

10 files changed

Lines changed: 466 additions & 111 deletions

File tree

vkconfig_core/layer.cpp

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -639,23 +639,52 @@ void Layer::AddSettingsMessages(const QJsonValue& json_settings_value) {
639639
const QJsonValue& json_conditions_value = json_message_object.value("conditions");
640640
assert(json_conditions_value != QJsonValue::Undefined);
641641
const QJsonArray& json_settings_array = json_conditions_value.toArray();
642+
643+
message.conditions.clear();
642644
for (int j = 0, o = json_settings_array.size(); j < o; ++j) {
643-
this->AddSettingData(message.conditions, json_settings_array[j]);
645+
const QJsonObject& json_conditions_object = json_settings_array[j].toObject();
646+
Condition condition;
647+
648+
SettingDataSet setting;
649+
this->AddSettingData(setting, json_conditions_object.value("setting"));
650+
condition.setting = setting[0];
651+
condition.op =
652+
GetConditionOperatorType(json_conditions_object.value("operator").toString().toStdString().c_str());
653+
654+
message.conditions.push_back(condition);
644655
}
645656

646657
const QJsonValue& json_actions_value = json_message_object.value("actions");
647658
if (json_actions_value != QJsonValue::Undefined) {
648-
message.actions.clear();
649659
const QJsonObject& json_actions_object = json_actions_value.toObject();
650-
const QStringList keys = json_actions_object.keys();
651-
for (std::size_t key_index = 0, key_count = keys.size(); key_index < key_count; ++key_index) {
652-
const QJsonValue& json_value = json_actions_object.value(keys[key_index]);
653-
const QJsonArray& json_settings_array = json_value.toArray();
654-
SettingDataSet actions;
660+
661+
if (json_actions_object.value("default") != QJsonValue::Undefined) {
662+
message.default_action =
663+
GetActionType(json_actions_object.value("default").toString().toStdString().c_str());
664+
}
665+
666+
if (json_actions_object.value("BUTTON0") != QJsonValue::Undefined) {
667+
const QJsonObject& json_button0_object = json_actions_object.value("BUTTON0").toObject();
668+
const QJsonValue& json_type_value = json_button0_object.value("type");
669+
670+
message.actions[ACTION0].type = ::GetButtonType(json_type_value.toString().toStdString().c_str());
671+
672+
const QJsonArray& json_settings_array = json_button0_object.value("settings").toArray();
655673
for (int j = 0, o = json_settings_array.size(); j < o; ++j) {
656-
this->AddSettingData(actions, json_settings_array[j]);
674+
this->AddSettingData(message.actions[ACTION0].settings, json_settings_array[j]);
675+
}
676+
}
677+
678+
if (json_actions_object.value("BUTTON1") != QJsonValue::Undefined) {
679+
const QJsonObject& json_button1_object = json_actions_object.value("BUTTON1").toObject();
680+
const QJsonValue& json_type_value = json_button1_object.value("type");
681+
682+
message.actions[ACTION1].type = ::GetButtonType(json_type_value.toString().toStdString().c_str());
683+
684+
const QJsonArray& json_settings_array = json_button1_object.value("settings").toArray();
685+
for (int j = 0, o = json_settings_array.size(); j < o; ++j) {
686+
this->AddSettingData(message.actions[ACTION1].settings, json_settings_array[j]);
657687
}
658-
message.actions.insert(std::make_pair(GetButtonType(keys[key_index].toStdString().c_str()), actions));
659688
}
660689
}
661690

0 commit comments

Comments
 (0)