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)
|
if (_type == ALIAS || _tied)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
useDefault = useDefault && hasValue();
|
||||||
bool old_val = false;
|
bool old_val = false;
|
||||||
if (useDefault)
|
if (useDefault)
|
||||||
old_val = getBoolValue();
|
old_val = getBoolValue();
|
||||||
@@ -1138,6 +1139,7 @@ SGPropertyNode::tie (const SGRawValue<int> &rawValue, bool useDefault)
|
|||||||
if (_type == ALIAS || _tied)
|
if (_type == ALIAS || _tied)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
useDefault = useDefault && hasValue();
|
||||||
int old_val = 0;
|
int old_val = 0;
|
||||||
if (useDefault)
|
if (useDefault)
|
||||||
old_val = getIntValue();
|
old_val = getIntValue();
|
||||||
@@ -1159,6 +1161,7 @@ SGPropertyNode::tie (const SGRawValue<long> &rawValue, bool useDefault)
|
|||||||
if (_type == ALIAS || _tied)
|
if (_type == ALIAS || _tied)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
useDefault = useDefault && hasValue();
|
||||||
long old_val = 0;
|
long old_val = 0;
|
||||||
if (useDefault)
|
if (useDefault)
|
||||||
old_val = getLongValue();
|
old_val = getLongValue();
|
||||||
@@ -1180,6 +1183,7 @@ SGPropertyNode::tie (const SGRawValue<float> &rawValue, bool useDefault)
|
|||||||
if (_type == ALIAS || _tied)
|
if (_type == ALIAS || _tied)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
useDefault = useDefault && hasValue();
|
||||||
float old_val = 0.0;
|
float old_val = 0.0;
|
||||||
if (useDefault)
|
if (useDefault)
|
||||||
old_val = getFloatValue();
|
old_val = getFloatValue();
|
||||||
@@ -1201,6 +1205,7 @@ SGPropertyNode::tie (const SGRawValue<double> &rawValue, bool useDefault)
|
|||||||
if (_type == ALIAS || _tied)
|
if (_type == ALIAS || _tied)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
useDefault = useDefault && hasValue();
|
||||||
double old_val = 0.0;
|
double old_val = 0.0;
|
||||||
if (useDefault)
|
if (useDefault)
|
||||||
old_val = getDoubleValue();
|
old_val = getDoubleValue();
|
||||||
@@ -1223,6 +1228,7 @@ SGPropertyNode::tie (const SGRawValue<string> &rawValue, bool useDefault)
|
|||||||
if (_type == ALIAS || _tied)
|
if (_type == ALIAS || _tied)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
useDefault = useDefault && hasValue();
|
||||||
string old_val;
|
string old_val;
|
||||||
if (useDefault)
|
if (useDefault)
|
||||||
old_val = getStringValue();
|
old_val = getStringValue();
|
||||||
|
|||||||
Reference in New Issue
Block a user