X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4a10ea8b13fd0851e71e6fa5ebbe5b93933be11e..0164f8ebfd7bbf1b0a96cb67641cd607c022ae9f:/src/common/docview.cpp diff --git a/src/common/docview.cpp b/src/common/docview.cpp index 5e2cada2da..3e1167c0f0 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -21,19 +21,19 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ - #pragma hdrstop + #pragma hdrstop #endif #if wxUSE_DOC_VIEW_ARCHITECTURE #ifndef WX_PRECOMP + #include "wx/list.h" #include "wx/string.h" #include "wx/utils.h" #include "wx/app.h" #include "wx/dc.h" #include "wx/dialog.h" #include "wx/menu.h" - #include "wx/list.h" #include "wx/filedlg.h" #include "wx/intl.h" #include "wx/log.h" @@ -50,8 +50,8 @@ #endif #if wxUSE_PRINTING_ARCHITECTURE - #include "wx/prntbase.h" - #include "wx/printdlg.h" + #include "wx/prntbase.h" + #include "wx/printdlg.h" #endif #include "wx/msgdlg.h" @@ -60,19 +60,20 @@ #include "wx/confbase.h" #include "wx/file.h" #include "wx/cmdproc.h" +#include "wx/tokenzr.h" #include #include #if wxUSE_STD_IOSTREAM - #include "wx/ioswrap.h" - #if wxUSE_IOSTREAMH - #include - #else - #include - #endif + #include "wx/ioswrap.h" + #if wxUSE_IOSTREAMH + #include + #else + #include + #endif #else - #include "wx/wfstream.h" + #include "wx/wfstream.h" #endif // ---------------------------------------------------------------------------- @@ -656,14 +657,18 @@ void wxView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint)) void wxView::OnChangeFilename() { - if (GetFrame() && GetDocument()) - { - wxString title; + // GetFrame can return wxWindow rather than wxTopLevelWindow due to + // generic MDI implementation so use SetLabel rather than SetTitle. + // It should cause SetTitle() for top level windows. + wxWindow *win = GetFrame(); + if (!win) return; - GetDocument()->GetPrintableName(title); + wxDocument *doc = GetDocument(); + if (!doc) return; - GetFrame()->SetTitle(title); - } + wxString name; + doc->GetPrintableName(name); + win->SetLabel(name); } void wxView::SetDocument(wxDocument *doc) @@ -792,6 +797,17 @@ wxView *wxDocTemplate::CreateView(wxDocument *doc, long flags) // that of the template bool wxDocTemplate::FileMatchesTemplate(const wxString& path) { + wxStringTokenizer parser (GetFileFilter(), wxT(";")); + wxString anything = wxT ("*"); + while (parser.HasMoreTokens()) + { + wxString filter = parser.GetNextToken(); + wxString filterExt = FindExtension (filter); + if ( filter.IsSameAs (anything) || + filterExt.IsSameAs (anything) || + filterExt.IsSameAs (FindExtension (path)) ) + return true; + } return GetDefaultExtension().IsSameAs(FindExtension(path)); } @@ -2441,4 +2457,3 @@ bool wxTransferStreamToFile(wxInputStream& stream, const wxString& filename) #endif // wxUSE_STD_IOSTREAM/!wxUSE_STD_IOSTREAM #endif // wxUSE_DOC_VIEW_ARCHITECTURE -