@@ -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