From: Vadim Zeitlin Date: Tue, 27 Mar 2012 11:58:09 +0000 (+0000) Subject: Set wxTextAreaBase::m_filename in the methods of this class itself. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/90761420ee8333764c0e5662d5616c5794acbe5b Set wxTextAreaBase::m_filename in the methods of this class itself. m_filename member was declared in wxTextAreaBase but set only in the overridden wxTextCtrlBase methods. This meant that it wasn't updated correctly in wxStyledTextCtrl which also derives from wxTextAreaBase and so saving SaveFile() with empty file name didn't work there even when the control had been originally loaded from a file. Move the code updating m_filename to wxTextAreaBase itself to fix this. This also simplifies the code as it's now not necessary to override Do{Load,Save}File() in wxTextCtrlBase at all. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71026 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/textctrl.h b/include/wx/textctrl.h index f6833830de..d5aa2324ef 100644 --- a/include/wx/textctrl.h +++ b/include/wx/textctrl.h @@ -743,9 +743,6 @@ protected: int overflow(int i); #endif // wxHAS_TEXT_WINDOW_STREAM - virtual bool DoLoadFile(const wxString& file, int fileType); - virtual bool DoSaveFile(const wxString& file, int fileType); - // Another wxTextAreaBase override. virtual bool IsValidPosition(long pos) const { diff --git a/src/common/textcmn.cpp b/src/common/textcmn.cpp index a3a43e6998..ed3e07f505 100644 --- a/src/common/textcmn.cpp +++ b/src/common/textcmn.cpp @@ -851,34 +851,36 @@ bool wxTextAreaBase::DoLoadFile(const wxString& filename, int WXUNUSED(fileType) { SetValue(text); + DiscardEdits(); + m_filename = filename; + return true; } } #endif // wxUSE_FFILE + wxLogError(_("File couldn't be loaded.")); + return false; } -bool wxTextCtrlBase::DoLoadFile(const wxString& filename, int fileType) +bool wxTextAreaBase::DoSaveFile(const wxString& filename, int WXUNUSED(fileType)) { - if ( wxTextAreaBase::DoLoadFile(filename, fileType) ) +#if wxUSE_FFILE + wxFFile file(filename, wxT("w")); + if ( file.IsOpened() && file.Write(GetValue(), *wxConvCurrent) ) { - DiscardEdits(); + // if it worked, save for future calls m_filename = filename; + + // it's not modified any longer + DiscardEdits(); + return true; } - wxLogError(_("File couldn't be loaded.")); - return false; -} +#endif // wxUSE_FFILE -bool wxTextAreaBase::DoSaveFile(const wxString& filename, int WXUNUSED(fileType)) -{ -#if wxUSE_FFILE - wxFFile file(filename, wxT("w")); - return file.IsOpened() && file.Write(GetValue(), *wxConvCurrent); -#else return false; -#endif // wxUSE_FFILE } bool wxTextAreaBase::SaveFile(const wxString& filename, int fileType) @@ -895,21 +897,6 @@ bool wxTextAreaBase::SaveFile(const wxString& filename, int fileType) return DoSaveFile(filenameToUse, fileType); } -bool wxTextCtrlBase::DoSaveFile(const wxString& filename, int fileType) -{ - if ( wxTextAreaBase::DoSaveFile(filename, fileType) ) - { - // if it worked, save for future calls - m_filename = filename; - - // it's not modified any longer - DiscardEdits(); - - return true; - } - return false; -} - // ---------------------------------------------------------------------------- // stream-like insertion operator // ----------------------------------------------------------------------------