Refactor functions converting wxArrayString to string in wxArrayStringProperty::GenerateValueAsString()
Because ConvertArrayToString() and ArrayStringToString() produce string values it would more intuitive to just to return this string as a function value instead of passing it through the parameter.
This commit is contained in:
parent
6d318ad0e2
commit
bd784b3186
3 changed files with 39 additions and 35 deletions
|
|
@ -710,9 +710,16 @@ public:
|
|||
virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE;
|
||||
|
||||
// Implement in derived class for custom array-to-string conversion.
|
||||
#if WXWIN_COMPATIBILITY_3_0
|
||||
wxDEPRECATED_MSG("use function ConvertArrayToString(arr, delim) returning wxString")
|
||||
virtual void ConvertArrayToString(const wxArrayString& arr,
|
||||
wxString* pString,
|
||||
const wxUniChar& delimiter) const;
|
||||
const wxUniChar& delimiter) const
|
||||
{
|
||||
*pString = ConvertArrayToString(arr, delimiter);
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_0
|
||||
virtual wxString ConvertArrayToString(const wxArrayString& arr, const wxUniChar& delimiter) const;
|
||||
|
||||
// Shows string editor dialog. Value to be edited should be read from
|
||||
// value, and if dialog is not cancelled, it should be stored back and true
|
||||
|
|
@ -736,10 +743,17 @@ public:
|
|||
QuoteStrings = 0x02
|
||||
};
|
||||
|
||||
// Generates contents for string dst based on the contents of
|
||||
// wxArrayString src.
|
||||
// Generates string based on the contents of wxArrayString src.
|
||||
#if WXWIN_COMPATIBILITY_3_0
|
||||
wxDEPRECATED_MSG("use function ArrayStringToString(src, delim, flag) returning wxString")
|
||||
static void ArrayStringToString( wxString& dst, const wxArrayString& src,
|
||||
wxUniChar delimiter, int flags );
|
||||
wxUniChar delimiter, int flags )
|
||||
{
|
||||
dst = ArrayStringToString(src, delimiter, flags);
|
||||
}
|
||||
#endif // WXWIN_COMPATIBILITY_3_0
|
||||
static wxString ArrayStringToString(const wxArrayString& src,
|
||||
wxUniChar delimiter, int flags);
|
||||
|
||||
protected:
|
||||
virtual bool DisplayEditorDialog(wxPropertyGrid* pg, wxVariant& value) wxOVERRIDE;
|
||||
|
|
|
|||
|
|
@ -736,9 +736,8 @@ public:
|
|||
/**
|
||||
Implement in derived class for custom array-to-string conversion.
|
||||
*/
|
||||
virtual void ConvertArrayToString(const wxArrayString& arr,
|
||||
wxString* pString,
|
||||
const wxUniChar& delimiter) const;
|
||||
virtual wxString ConvertArrayToString(const wxArrayString& arr,
|
||||
const wxUniChar& delimiter) const;
|
||||
|
||||
/**
|
||||
Shows string editor dialog to edit the individual item. Value to be edited
|
||||
|
|
@ -758,11 +757,10 @@ public:
|
|||
};
|
||||
|
||||
/**
|
||||
Generates contents for string @a dst based on the contents of
|
||||
wxArrayString @a src.
|
||||
Generates string based on the contents of wxArrayString @a src.
|
||||
*/
|
||||
static void ArrayStringToString( wxString& dst, const wxArrayString& src,
|
||||
wxUniChar delimiter, int flags );
|
||||
static wxString ArrayStringToString(const wxArrayString& src,
|
||||
wxUniChar delimiter, int flags);
|
||||
|
||||
protected:
|
||||
virtual bool DisplayEditorDialog(wxPropertyGrid* pg, wxVariant& value);
|
||||
|
|
|
|||
|
|
@ -2685,27 +2685,22 @@ void wxArrayStringProperty::OnSetValue()
|
|||
GenerateValueAsString();
|
||||
}
|
||||
|
||||
void
|
||||
wxArrayStringProperty::ConvertArrayToString(const wxArrayString& arr,
|
||||
wxString* pString,
|
||||
const wxUniChar& delimiter) const
|
||||
wxString wxArrayStringProperty::ConvertArrayToString(const wxArrayString& arr,
|
||||
const wxUniChar& delimiter) const
|
||||
{
|
||||
int flag;
|
||||
if ( delimiter == '"' || delimiter == '\'' )
|
||||
{
|
||||
// Quoted strings
|
||||
ArrayStringToString(*pString,
|
||||
arr,
|
||||
delimiter,
|
||||
Escape | QuoteStrings);
|
||||
flag = Escape | QuoteStrings;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Regular delimiter
|
||||
ArrayStringToString(*pString,
|
||||
arr,
|
||||
delimiter,
|
||||
0);
|
||||
flag = 0;
|
||||
}
|
||||
|
||||
return ArrayStringToString(arr, delimiter, flag);
|
||||
}
|
||||
|
||||
wxString wxArrayStringProperty::ValueToString( wxVariant& WXUNUSED(value),
|
||||
|
|
@ -2719,26 +2714,20 @@ wxString wxArrayStringProperty::ValueToString( wxVariant& WXUNUSED(value),
|
|||
}
|
||||
|
||||
wxArrayString arr = m_value.GetArrayString();
|
||||
wxString s;
|
||||
ConvertArrayToString(arr, &s, m_delimiter);
|
||||
return s;
|
||||
return ConvertArrayToString(arr, m_delimiter);
|
||||
}
|
||||
|
||||
// Converts wxArrayString to a string separated by delimiters and spaces.
|
||||
// preDelim is useful for "str1" "str2" style. Set flags to 1 to do slash
|
||||
// conversion.
|
||||
void
|
||||
wxArrayStringProperty::ArrayStringToString( wxString& dst,
|
||||
const wxArrayString& src,
|
||||
wxUniChar delimiter, int flags )
|
||||
wxString wxArrayStringProperty::ArrayStringToString(const wxArrayString& src,
|
||||
wxUniChar delimiter, int flags)
|
||||
{
|
||||
wxString pdr;
|
||||
wxString preas;
|
||||
|
||||
unsigned int itemCount = src.size();
|
||||
|
||||
dst.Empty();
|
||||
|
||||
if ( flags & Escape )
|
||||
{
|
||||
preas = delimiter;
|
||||
|
|
@ -2746,6 +2735,8 @@ wxArrayStringProperty::ArrayStringToString( wxString& dst,
|
|||
pdr += delimiter;
|
||||
}
|
||||
|
||||
wxString dst;
|
||||
|
||||
if ( itemCount )
|
||||
dst.append( preas );
|
||||
|
||||
|
|
@ -2776,12 +2767,14 @@ wxArrayStringProperty::ArrayStringToString( wxString& dst,
|
|||
else if ( flags & QuoteStrings )
|
||||
dst.append( delimStr );
|
||||
}
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
void wxArrayStringProperty::GenerateValueAsString()
|
||||
{
|
||||
wxArrayString arr = m_value.GetArrayString();
|
||||
ConvertArrayToString(arr, &m_display, m_delimiter);
|
||||
m_display = ConvertArrayToString(arr, m_delimiter);
|
||||
}
|
||||
|
||||
// Default implementation doesn't do anything.
|
||||
|
|
@ -2845,8 +2838,7 @@ bool wxArrayStringProperty::DisplayEditorDialog(wxPropertyGrid* pg, wxVariant& v
|
|||
if ( !curValue.IsNull() )
|
||||
{
|
||||
wxArrayString actualValue = curValue.GetArrayString();
|
||||
wxString tempStr;
|
||||
ConvertArrayToString(actualValue, &tempStr, m_delimiter);
|
||||
wxString tempStr = ConvertArrayToString(actualValue, m_delimiter);
|
||||
#if wxUSE_VALIDATORS
|
||||
if ( dialogValidator.DoValidate(pg, validator,
|
||||
tempStr) )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue