IMPORTANT: backwards-incompatible change to properties.
The useDefault argument for the SGPropertyNode::tie(...) methods will invoke the setter only when there is already a property value defined; previously, the setter was always invoked, with a default value if necessary.
This commit is contained in:
@@ -1117,6 +1117,7 @@ SGPropertyNode::tie (const SGRawValue<bool> &rawValue, bool useDefault)
|
||||
if (_type == ALIAS || _tied)
|
||||
return false;
|
||||
|
||||
useDefault = useDefault && hasValue();
|
||||
bool old_val = false;
|
||||
if (useDefault)
|
||||
old_val = getBoolValue();
|
||||
@@ -1138,6 +1139,7 @@ SGPropertyNode::tie (const SGRawValue<int> &rawValue, bool useDefault)
|
||||
if (_type == ALIAS || _tied)
|
||||
return false;
|
||||
|
||||
useDefault = useDefault && hasValue();
|
||||
int old_val = 0;
|
||||
if (useDefault)
|
||||
old_val = getIntValue();
|
||||
@@ -1159,6 +1161,7 @@ SGPropertyNode::tie (const SGRawValue<long> &rawValue, bool useDefault)
|
||||
if (_type == ALIAS || _tied)
|
||||
return false;
|
||||
|
||||
useDefault = useDefault && hasValue();
|
||||
long old_val = 0;
|
||||
if (useDefault)
|
||||
old_val = getLongValue();
|
||||
@@ -1180,6 +1183,7 @@ SGPropertyNode::tie (const SGRawValue<float> &rawValue, bool useDefault)
|
||||
if (_type == ALIAS || _tied)
|
||||
return false;
|
||||
|
||||
useDefault = useDefault && hasValue();
|
||||
float old_val = 0.0;
|
||||
if (useDefault)
|
||||
old_val = getFloatValue();
|
||||
@@ -1201,6 +1205,7 @@ SGPropertyNode::tie (const SGRawValue<double> &rawValue, bool useDefault)
|
||||
if (_type == ALIAS || _tied)
|
||||
return false;
|
||||
|
||||
useDefault = useDefault && hasValue();
|
||||
double old_val = 0.0;
|
||||
if (useDefault)
|
||||
old_val = getDoubleValue();
|
||||
@@ -1223,6 +1228,7 @@ SGPropertyNode::tie (const SGRawValue<string> &rawValue, bool useDefault)
|
||||
if (_type == ALIAS || _tied)
|
||||
return false;
|
||||
|
||||
useDefault = useDefault && hasValue();
|
||||
string old_val;
|
||||
if (useDefault)
|
||||
old_val = getStringValue();
|
||||
|
||||
Reference in New Issue
Block a user