@@ -33,29 +33,30 @@ bool DataControllerValue::Initialize(DataModel& model, Element* element, const S
3333
3434void DataControllerValue::ProcessEvent (Event& event)
3535{
36- if (const Element* element = GetElement ())
37- {
38- Variant value_to_set;
39- const auto & parameters = event.GetParameters ();
40- const auto override_value_it = parameters.find (" data-binding-override-value" );
41- const auto value_it = parameters.find (" value" );
42- if (override_value_it != parameters.cend ())
43- value_to_set = override_value_it->second ;
44- else if (value_it != parameters.cend ())
45- value_to_set = value_it->second ;
46- else
47- Log::Message (Log::LT_WARNING,
48- " A 'change' event was received, but it did not contain the attribute 'value' when processing a data binding in %s" ,
49- element->GetAddress ().c_str ());
50-
51- DataModel* model = element->GetDataModel ();
52- if (value_to_set.GetType () == Variant::NONE || !model)
53- return ;
54-
55- if (DataVariable variable = model->GetVariable (address))
56- if (variable.Set (value_to_set))
57- model->DirtyVariable (address.front ().name );
58- }
36+ Element* element = GetElement ();
37+ if (!element || event.GetTargetElement () != element)
38+ return ;
39+
40+ Variant value_to_set;
41+ const auto & parameters = event.GetParameters ();
42+ const auto override_value_it = parameters.find (" data-binding-override-value" );
43+ const auto value_it = parameters.find (" value" );
44+ if (override_value_it != parameters.cend ())
45+ value_to_set = override_value_it->second ;
46+ else if (value_it != parameters.cend ())
47+ value_to_set = value_it->second ;
48+ else
49+ Log::Message (Log::LT_WARNING,
50+ " A 'change' event was received, but it did not contain the attribute 'value' when processing a data binding in %s" ,
51+ element->GetAddress ().c_str ());
52+
53+ DataModel* model = element->GetDataModel ();
54+ if (value_to_set.GetType () == Variant::NONE || !model)
55+ return ;
56+
57+ if (DataVariable variable = model->GetVariable (address))
58+ if (variable.Set (value_to_set))
59+ model->DirtyVariable (address.front ().name );
5960}
6061
6162void DataControllerValue::Release ()
@@ -102,12 +103,13 @@ void DataControllerEvent::ProcessEvent(Event& event)
102103 if (!expression)
103104 return ;
104105
105- if (Element* element = GetElement ())
106- {
107- DataExpressionInterface expr_interface (element->GetDataModel (), element, &event);
108- Variant unused_value_out;
109- expression->Run (expr_interface, unused_value_out);
110- }
106+ Element* element = GetElement ();
107+ if (!element)
108+ return ;
109+
110+ DataExpressionInterface expr_interface (element->GetDataModel (), element, &event);
111+ Variant unused_value_out;
112+ expression->Run (expr_interface, unused_value_out);
111113}
112114
113115void DataControllerEvent::Release ()
0 commit comments