X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0b4e4c3937371a1404c0847b3e355a2dd6063d6b..a1b806b98241ab649c169aaa1f134df85e80fb8b:/src/propgrid/props.cpp diff --git a/src/propgrid/props.cpp b/src/propgrid/props.cpp index 27cb584949..c9a5a6c73e 100644 --- a/src/propgrid/props.cpp +++ b/src/propgrid/props.cpp @@ -95,7 +95,9 @@ wxString wxStringProperty::ValueToString( wxVariant& value, if ( GetChildCount() && HasFlag(wxPG_PROP_COMPOSED_VALUE) ) { // Value stored in m_value is non-editable, non-full value - if ( (argFlags & wxPG_FULL_VALUE) || (argFlags & wxPG_EDITABLE_VALUE) ) + if ( (argFlags & wxPG_FULL_VALUE) || + (argFlags & wxPG_EDITABLE_VALUE) || + !s.length() ) { // Calling this under incorrect conditions will fail wxASSERT_MSG( argFlags & wxPG_VALUE_IS_CURRENT, @@ -186,8 +188,10 @@ wxNumericPropertyValidator:: { arr.Add(wxS("+")); arr.Add(wxS("-")); - arr.Add(wxS(".")); arr.Add(wxS("e")); + + // Use locale-specific decimal point + arr.Add(wxString::Format("%g", 1.1)[1]); } SetIncludes(arr); @@ -206,7 +210,7 @@ bool wxNumericPropertyValidator::Validate(wxWindow* parent) wxTextCtrl* tc = static_cast(wnd); wxString text = tc->GetValue(); - if ( !text.length() ) + if ( text.empty() ) return false; return true; @@ -256,7 +260,7 @@ bool wxIntProperty::StringToValue( wxVariant& variant, const wxString& text, int wxString s; long value32; - if ( text.length() == 0 ) + if ( text.empty() ) { variant.MakeNull(); return true; @@ -535,7 +539,7 @@ bool wxUIntProperty::StringToValue( wxVariant& variant, const wxString& text, in wxString variantType = variant.GetType(); bool isPrevLong = variantType == wxPG_VARIANT_TYPE_LONG; - if ( text.length() == 0 ) + if ( text.empty() ) { variant.MakeNull(); return true; @@ -666,11 +670,11 @@ wxFloatProperty::~wxFloatProperty() { } // This helper method provides standard way for floating point-using // properties to convert values to string. -void wxPropertyGrid::DoubleToString(wxString& target, - double value, - int precision, - bool removeZeroes, - wxString* precTemplate) +const wxString& wxPropertyGrid::DoubleToString(wxString& target, + double value, + int precision, + bool removeZeroes, + wxString* precTemplate) { if ( precision >= 0 ) { @@ -678,7 +682,7 @@ void wxPropertyGrid::DoubleToString(wxString& target, if (!precTemplate) precTemplate = &text1; - if ( !precTemplate->length() ) + if ( precTemplate->empty() ) { *precTemplate = wxS("%."); *precTemplate << wxString::Format( wxS("%i"), precision ); @@ -692,7 +696,7 @@ void wxPropertyGrid::DoubleToString(wxString& target, target.Printf( wxS("%f"), value ); } - if ( removeZeroes && precision != 0 && target.length() ) + if ( removeZeroes && precision != 0 && !target.empty() ) { // Remove excess zeroes (do not remove this code just yet, // since sprintf can't do the same consistently across platforms). @@ -722,7 +726,7 @@ void wxPropertyGrid::DoubleToString(wxString& target, for ( ; i != target.end(); i++ ) { - if ( *i != wxS('0') && *i != wxS('.') ) + if ( *i != wxS('0') && *i != wxS('.') && *i != wxS(',') ) { isZero = false; break; @@ -732,6 +736,8 @@ void wxPropertyGrid::DoubleToString(wxString& target, if ( isZero ) target.erase(target.begin()); } + + return target; } wxString wxFloatProperty::ValueToString( wxVariant& value, @@ -754,7 +760,7 @@ bool wxFloatProperty::StringToValue( wxVariant& variant, const wxString& text, i wxString s; double value; - if ( text.length() == 0 ) + if ( text.empty() ) { variant.MakeNull(); return true; @@ -908,7 +914,7 @@ bool wxBoolProperty::StringToValue( wxVariant& variant, const wxString& text, in text.CmpNoCase(m_label) == 0 ) boolValue = true; - if ( text.length() == 0 ) + if ( text.empty() ) { variant.MakeNull(); return true; @@ -1512,7 +1518,7 @@ bool wxFlagsProperty::StringToValue( wxVariant& variant, const wxString& text, i // semicolons are no longer valid delimeters WX_PG_TOKENIZER1_BEGIN(text,wxS(',')) - if ( token.length() ) + if ( !token.empty() ) { // Determine which one it is long bit = IdToBit( token ); @@ -1684,7 +1690,7 @@ bool wxPGFileDialogAdapter::DoShowDialog( wxPropertyGrid* propGrid, wxPGProperty path = filename.GetPath(); indFilter = fileProp->m_indFilter; - if ( !path.length() && fileProp->m_basePath.length() ) + if ( path.empty() && !fileProp->m_basePath.empty() ) path = fileProp->m_basePath; } else @@ -1775,7 +1781,7 @@ void wxFileProperty::OnSetValue() } // Find index for extension. - if ( m_indFilter < 0 && fnstr.length() ) + if ( m_indFilter < 0 && !fnstr.empty() ) { wxString ext = filename.GetExt(); int curind = 0; @@ -1792,7 +1798,7 @@ void wxFileProperty::OnSetValue() pos = len; wxString found_ext = m_wildcard.substr(ext_begin, pos-ext_begin); - if ( found_ext.length() > 0 ) + if ( !found_ext.empty() ) { if ( found_ext[0] == wxS('*') ) { @@ -1833,7 +1839,7 @@ wxString wxFileProperty::ValueToString( wxVariant& value, return wxEmptyString; wxString fullName = filename.GetFullName(); - if ( !fullName.length() ) + if ( fullName.empty() ) return wxEmptyString; if ( argFlags & wxPG_FULL_VALUE ) @@ -1842,7 +1848,7 @@ wxString wxFileProperty::ValueToString( wxVariant& value, } else if ( m_flags & wxPG_PROP_SHOW_FULL_FILENAME ) { - if ( m_basePath.Length() ) + if ( !m_basePath.empty() ) { wxFileName fn2(filename); fn2.MakeRelativeTo(m_basePath); @@ -2180,7 +2186,7 @@ bool wxPGArrayEditorDialog::Create( wxWindow *parent, wxBoxSizer* topsizer = new wxBoxSizer( wxVERTICAL ); // Message - if ( message.length() ) + if ( !message.empty() ) topsizer->Add( new wxStaticText(this,-1,message), 0, wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL|wxALL, spacing ); @@ -2549,7 +2555,7 @@ wxArrayStringProperty::ArrayStringToString( wxString& dst, if ( flags & Escape ) { str.Replace( wxS("\\"), wxS("\\\\"), true ); - if ( pdr.length() ) + if ( !pdr.empty() ) str.Replace( preas, pdr, true ); }