X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cc91438c0f450aa835e64f49cbc9f89ea70cb0c7..3cb6eaec797ebbe20a0e05e5c9ba625909845e72:/src/richtext/richtextbuffer.cpp diff --git a/src/richtext/richtextbuffer.cpp b/src/richtext/richtextbuffer.cpp index 2f908fdf2e..ea2b4d8d64 100644 --- a/src/richtext/richtextbuffer.cpp +++ b/src/richtext/richtextbuffer.cpp @@ -688,6 +688,7 @@ void wxRichTextParagraphLayoutBox::Copy(const wxRichTextParagraphLayoutBox& obj) wxRichTextBox::Copy(obj); m_partialParagraph = obj.m_partialParagraph; + m_defaultAttributes = obj.m_defaultAttributes; } /// Get/set the size for the given range. @@ -1429,8 +1430,6 @@ wxString wxRichTextParagraphLayoutBox::GetTextForRange(const wxRichTextRange& ra wxRichTextObject* child = node->GetData(); if (!child->GetRange().IsOutside(range)) { -// if (lineCount > 0) -// text += wxT("\n"); wxRichTextRange childRange = range; childRange.LimitTo(child->GetRange()); @@ -1438,7 +1437,7 @@ wxString wxRichTextParagraphLayoutBox::GetTextForRange(const wxRichTextRange& ra text += childText; - if (childRange.GetEnd() == child->GetRange().GetEnd()) + if ((childRange.GetEnd() == child->GetRange().GetEnd()) && node->GetNext()) text += wxT("\n"); lineCount ++; @@ -6324,7 +6323,7 @@ void wxRichTextAction::UpdateAppearance(long caretPosition, bool sendUpdateEvent m_ctrl->Refresh(false); if (sendUpdateEvent) - m_ctrl->SendTextUpdatedEvent(); + wxTextCtrl::SendTextUpdatedEvent(m_ctrl); } } } @@ -7902,7 +7901,7 @@ wxTextAttrEx wxTextAttrEx::CombineEx(const wxTextAttrEx& attr, IMPLEMENT_CLASS(wxRichTextFileHandler, wxObject) -#if wxUSE_STREAMS +#if wxUSE_FFILE && wxUSE_STREAMS bool wxRichTextFileHandler::LoadFile(wxRichTextBuffer *buffer, const wxString& filename) { wxFFileInputStream stream(filename); @@ -7920,7 +7919,7 @@ bool wxRichTextFileHandler::SaveFile(wxRichTextBuffer *buffer, const wxString& f return false; } -#endif // wxUSE_STREAMS +#endif // wxUSE_FFILE && wxUSE_STREAMS /// Can we handle this filename (if using files)? By default, checks the extension. bool wxRichTextFileHandler::CanHandle(const wxString& filename) const @@ -8175,16 +8174,33 @@ bool wxRichTextImageBlock::Load(wxImage& image) // Write data in hex to a stream bool wxRichTextImageBlock::WriteHex(wxOutputStream& stream) { - wxString hex; - int i; - for (i = 0; i < (int) m_dataSize; i++) + const int bufSize = 512; + char buf[bufSize+1]; + + int left = m_dataSize; + int n, i, j; + j = 0; + while (left > 0) { - hex = wxDecToHex(m_data[i]); - wxCharBuffer buf = hex.ToAscii(); + if (left*2 > bufSize) + { + n = bufSize; left -= (bufSize/2); + } + else + { + n = left*2; left = 0; + } - stream.Write((const char*) buf, hex.length()); - } + char* b = buf; + for (i = 0; i < (n/2); i++) + { + wxDecToHex(m_data[j], b, b+1); + b += 2; j ++; + } + buf[n] = 0; + stream.Write((const char*) buf, n); + } return true; } @@ -8196,7 +8212,7 @@ bool wxRichTextImageBlock::ReadHex(wxInputStream& stream, int length, int imageT if (m_data) delete[] m_data; - wxString str(wxT(" ")); + wxChar str[2]; m_data = new unsigned char[dataSize]; int i; for (i = 0; i < dataSize; i ++)