X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/888b0f22a9c9f4609eef3bb7e9a3ce1e67ac6c31..1be06faf7318abf88a35b299b90ceb2a49c0353b:/src/common/docview.cpp diff --git a/src/common/docview.cpp b/src/common/docview.cpp index 5e0d3c4aef..bcb467b60e 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -1114,8 +1114,8 @@ wxDocument *wxDocManager::CreateDocument(const wxString& path, long flags) } return newDoc; } - else - return (wxDocument *) NULL; + + return (wxDocument *) NULL; } wxView *wxDocManager::CreateView(wxDocument *doc, long flags) @@ -1364,7 +1364,7 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, wxString descrBuf = wxT("*.*"); #endif - int FilterIndex = 0; + int FilterIndex = -1; wxWindow* parent = wxFindSuitableParent(); @@ -1376,6 +1376,7 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, 0, parent); + wxDocTemplate *theTemplate = (wxDocTemplate *)NULL; if (!pathTmp.IsEmpty()) { if (!wxFileExists(pathTmp)) @@ -1396,21 +1397,20 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, path = pathTmp; - // This is dodgy in that we're selecting the template on the - // basis of the file extension, which may not be a standard - // one. We really want to know exactly which template was - // chosen by using a more advanced file selector. - wxDocTemplate *theTemplate = FindTemplateForPath(path); - if ( !theTemplate ) + // first choose the template using the extension, if this fails (i.e. + // wxFileSelectorEx() didn't fill it), then use the path + if ( FilterIndex != -1 ) theTemplate = templates[FilterIndex]; - - return theTemplate; + if ( !theTemplate ) + theTemplate = FindTemplateForPath(path); } else { path = wxT(""); - return (wxDocTemplate *) NULL; } + + return theTemplate; + #if 0 // In all other windowing systems, until we have more advanced // file selectors, we must select the document type (template) first, and