]> git.saurik.com Git - wxWidgets.git/commitdiff
Corrected a clearing bug
authorJulian Smart <julian@anthemion.co.uk>
Sat, 28 Oct 2006 09:29:07 +0000 (09:29 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Sat, 28 Oct 2006 09:29:07 +0000 (09:29 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/richtext/richtextbuffer.h
src/richtext/richtextbuffer.cpp
src/richtext/richtextctrl.cpp
src/richtext/richtextxml.cpp

index 8ea8b0bbd736acd2756ff7a8961d656f3464d483..23c9e298e35f6d4302e731319674ce1c0f3a2da1 100644 (file)
@@ -1588,11 +1588,8 @@ public:
     /// Initialisation
     void Init();
 
-    /// Clears the buffer and resets the command processor
-    virtual void Clear();
-
-    /// The same as Clear, and adds an empty paragraph.
-    virtual void Reset();
+    /// Clears the buffer, adds an empty paragraph, and clears the command processor.
+    virtual void ResetAndClearCommands();
 
     /// Load a file
     virtual bool LoadFile(const wxString& filename, int type = wxRICHTEXT_TYPE_ANY);
index a73d8825d0dffb963881a781fce11831cb0b9233..e59021ae5241c402d17230dff81901af62a17e65 100644 (file)
@@ -2420,6 +2420,8 @@ void wxRichTextParagraphLayoutBox::Reset()
     Clear();
 
     AddParagraph(wxEmptyString);
+    
+    Invalidate(wxRICHTEXT_ALL);
 }
 
 /// Invalidate the buffer. With no argument, invalidates whole buffer.
@@ -4545,19 +4547,12 @@ wxRichTextBuffer::~wxRichTextBuffer()
     ClearEventHandlers();
 }
 
-void wxRichTextBuffer::Clear()
+void wxRichTextBuffer::ResetAndClearCommands()
 {
-    DeleteChildren();
+    Reset();
+    
     GetCommandProcessor()->ClearCommands();
-    Modify(false);
-    Invalidate(wxRICHTEXT_ALL);
-}
 
-void wxRichTextBuffer::Reset()
-{
-    DeleteChildren();
-    AddParagraph(wxEmptyString);
-    GetCommandProcessor()->ClearCommands();
     Modify(false);
     Invalidate(wxRICHTEXT_ALL);
 }
index c59cbfb85192290c17a4a53f8cfdf3b9c357a2e3..bf308ffb7a0f0032054cd5eb96ce0a4fc0b4c56c 100644 (file)
@@ -128,6 +128,7 @@ bool wxRichTextCtrl::Create( wxWindow* parent, wxWindowID id, const wxString& va
         SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
     }
 
+    GetBuffer().Reset();
     GetBuffer().SetRichTextCtrl(this);
 
     if (style & wxTE_READONLY)
@@ -220,7 +221,7 @@ void wxRichTextCtrl::Thaw()
 /// Clear all text
 void wxRichTextCtrl::Clear()
 {
-    m_buffer.Reset();
+    m_buffer.ResetAndClearCommands();
     m_buffer.SetDirty(true);
     m_caretPosition = -1;
     m_caretPositionForDefaultStyle = -2;
@@ -572,7 +573,6 @@ void wxRichTextCtrl::OnChar(wxKeyEvent& event)
 
         EndBatchUndo();
 
-        // Shouldn't this be in Do()?
         if (GetLastPosition() == -1)
         {
             GetBuffer().Reset();
@@ -601,7 +601,6 @@ void wxRichTextCtrl::OnChar(wxKeyEvent& event)
 
         EndBatchUndo();
 
-        // Shouldn't this be in Do()?
         if (GetLastPosition() == -1)
         {
             GetBuffer().Reset();
index 801c5d2fbcf1fabf206a4ae4678fadad0b860c8b..82170da836ca6d60d28a2ec7663425d90bc98926 100644 (file)
@@ -41,7 +41,7 @@ bool wxRichTextXMLHandler::DoLoadFile(wxRichTextBuffer *buffer, wxInputStream& s
     if (!stream.IsOk())
         return false;
 
-    buffer->Clear();
+    buffer->ResetAndClearCommands();
 
     wxXmlDocument* xmlDoc = new wxXmlDocument;
     bool success = true;