Use {Set,Get}Text() instead of using m_text directly in wxTextDataObject as
these virtual methods overridable and should be called in case the class
doesn't actually use m_text for its storage at all.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72258
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
size_t wxTextDataObject::GetDataSize(const wxDataFormat& format) const
{
size_t wxTextDataObject::GetDataSize(const wxDataFormat& format) const
{
+ const wxString& text = GetText();
if ( format == wxDF_UNICODETEXT || wxLocaleIsUtf8 )
{
if ( format == wxDF_UNICODETEXT || wxLocaleIsUtf8 )
{
- return m_text.utf8_length();
+ return text.utf8_length();
- const wxCharBuffer buf(wxConvLocal.cWC2MB(m_text.wc_str()));
+ const wxCharBuffer buf(wxConvLocal.cWC2MB(text.wc_str()));
return buf ? strlen(buf) : 0;
}
}
return buf ? strlen(buf) : 0;
}
}
if ( !buf )
return false;
if ( !buf )
return false;
+ const wxString& text = GetText();
if ( format == wxDF_UNICODETEXT || wxLocaleIsUtf8 )
{
if ( format == wxDF_UNICODETEXT || wxLocaleIsUtf8 )
{
- memcpy(buf, m_text.utf8_str(), m_text.utf8_length());
+ memcpy(buf, text.utf8_str(), text.utf8_length());
- const wxCharBuffer bufLocal(wxConvLocal.cWC2MB(m_text.wc_str()));
+ const wxCharBuffer bufLocal(wxConvLocal.cWC2MB(text.wc_str()));
if ( !bufLocal )
return false;
if ( !bufLocal )
return false;
// is not in UTF-8 so do an extra check for tranquility, it shouldn't
// matter much if we lose a bit of performance when pasting from
// clipboard
// is not in UTF-8 so do an extra check for tranquility, it shouldn't
// matter much if we lose a bit of performance when pasting from
// clipboard
- m_text = wxString::FromUTF8(buf, len);
+ SetText(wxString::FromUTF8(buf, len));
}
else // wxDF_TEXT, convert from current (non-UTF8) locale
{
}
else // wxDF_TEXT, convert from current (non-UTF8) locale
{
- m_text = wxConvLocal.cMB2WC(buf, len, NULL);
+ SetText(wxConvLocal.cMB2WC(buf, len, NULL));