Increase properties' tolerance for wxNullVariant as old value

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2008-10-03 17:30:10 +00:00
parent 9e6bebdcac
commit 0c931dd4eb

View File

@@ -112,7 +112,7 @@ bool wxStringProperty::StringToValue( wxVariant& variant, const wxString& text,
if ( GetChildCount() && HasFlag(wxPG_PROP_COMPOSED_VALUE) ) if ( GetChildCount() && HasFlag(wxPG_PROP_COMPOSED_VALUE) )
return wxPGProperty::StringToValue(variant, text, argFlags); return wxPGProperty::StringToValue(variant, text, argFlags);
if ( m_value.GetString() != text ) if ( variant != text )
{ {
variant = text; variant = text;
return true; return true;
@@ -230,7 +230,7 @@ bool wxIntProperty::StringToValue( wxVariant& variant, const wxString& text, int
if ( useText.ToLong( &value32, 0 ) ) if ( useText.ToLong( &value32, 0 ) )
{ {
if ( !isPrevLong || m_value.GetLong() != value32 ) if ( !isPrevLong || variant != value32 )
{ {
variant = value32; variant = value32;
return true; return true;
@@ -245,7 +245,7 @@ bool wxIntProperty::StringToValue( wxVariant& variant, const wxString& text, int
bool wxIntProperty::IntToValue( wxVariant& variant, int value, int WXUNUSED(argFlags) ) const bool wxIntProperty::IntToValue( wxVariant& variant, int value, int WXUNUSED(argFlags) ) const
{ {
if ( variant.GetType() != wxPG_VARIANT_TYPE_LONG || variant.GetLong() != value ) if ( variant.GetType() != wxPG_VARIANT_TYPE_LONG || variant != (long)value )
{ {
variant = (long)value; variant = (long)value;
return true; return true;
@@ -447,7 +447,7 @@ bool wxUIntProperty::StringToValue( wxVariant& variant, const wxString& text, in
else else
{ {
unsigned long value32 = wxLongLong(value64).GetLo(); unsigned long value32 = wxLongLong(value64).GetLo();
if ( !isPrevLong || m_value.GetLong() != (long)value32 ) if ( !isPrevLong || m_value != (long)value32 )
{ {
variant = (long)value32; variant = (long)value32;
return true; return true;
@@ -460,7 +460,7 @@ bool wxUIntProperty::StringToValue( wxVariant& variant, const wxString& text, in
bool wxUIntProperty::IntToValue( wxVariant& variant, int number, int WXUNUSED(argFlags) ) const bool wxUIntProperty::IntToValue( wxVariant& variant, int number, int WXUNUSED(argFlags) ) const
{ {
if ( m_value != (long)number ) if ( variant != (long)number )
{ {
variant = (long)number; variant = (long)number;
return true; return true;
@@ -640,7 +640,7 @@ bool wxFloatProperty::StringToValue( wxVariant& variant, const wxString& text, i
bool res = text.ToDouble(&value); bool res = text.ToDouble(&value);
if ( res ) if ( res )
{ {
if ( m_value != value ) if ( variant != value )
{ {
variant = value; variant = value;
return true; return true;
@@ -808,11 +808,11 @@ wxString wxBoolProperty::GetValueAsString( int argFlags ) const
bool wxBoolProperty::StringToValue( wxVariant& variant, const wxString& text, int WXUNUSED(argFlags) ) const bool wxBoolProperty::StringToValue( wxVariant& variant, const wxString& text, int WXUNUSED(argFlags) ) const
{ {
int value = 0; bool boolValue = false;
if ( text.CmpNoCase(wxPGGlobalVars->m_boolChoices[1].GetText()) == 0 || if ( text.CmpNoCase(wxPGGlobalVars->m_boolChoices[1].GetText()) == 0 ||
text.CmpNoCase(wxS("true")) == 0 || text.CmpNoCase(wxS("true")) == 0 ||
text.CmpNoCase(m_label) == 0 ) text.CmpNoCase(m_label) == 0 )
value = 1; boolValue = true;
if ( text.length() == 0 ) if ( text.length() == 0 )
{ {
@@ -820,11 +820,9 @@ bool wxBoolProperty::StringToValue( wxVariant& variant, const wxString& text, in
return true; return true;
} }
bool oldValue = m_value.GetBool(); if ( variant != boolValue )
if ( (oldValue && !value) || (!oldValue && value) )
{ {
variant = wxPGVariant_Bool(value); variant = wxPGVariant_Bool(boolValue);
return true; return true;
} }
return false; return false;
@@ -833,9 +831,8 @@ bool wxBoolProperty::StringToValue( wxVariant& variant, const wxString& text, in
bool wxBoolProperty::IntToValue( wxVariant& variant, int value, int ) const bool wxBoolProperty::IntToValue( wxVariant& variant, int value, int ) const
{ {
bool boolValue = value ? true : false; bool boolValue = value ? true : false;
bool oldValue = m_value.GetBool();
if ( oldValue != boolValue ) if ( variant != boolValue )
{ {
variant = wxPGVariant_Bool(boolValue); variant = wxPGVariant_Bool(boolValue);
return true; return true;
@@ -1451,7 +1448,6 @@ bool wxFlagsProperty::StringToValue( wxVariant& variant, const wxString& text, i
return false; return false;
long newFlags = 0; long newFlags = 0;
long oldValue = m_value;
// semicolons are no longer valid delimeters // semicolons are no longer valid delimeters
WX_PG_TOKENIZER1_BEGIN(text,wxS(',')) WX_PG_TOKENIZER1_BEGIN(text,wxS(','))
@@ -1474,10 +1470,11 @@ bool wxFlagsProperty::StringToValue( wxVariant& variant, const wxString& text, i
WX_PG_TOKENIZER1_END() WX_PG_TOKENIZER1_END()
variant = newFlags; if ( variant != (long)newFlags )
{
if ( newFlags != oldValue ) variant = (long)newFlags;
return true; return true;
}
return false; return false;
} }
@@ -1974,7 +1971,7 @@ bool wxLongStringProperty::DisplayEditorDialog( wxPGProperty* prop, wxPropertyGr
bool wxLongStringProperty::StringToValue( wxVariant& variant, const wxString& text, int ) const bool wxLongStringProperty::StringToValue( wxVariant& variant, const wxString& text, int ) const
{ {
if ( m_value != text ) if ( variant != text )
{ {
variant = text; variant = text;
return true; return true;