]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/docview.cpp
added trace message to wxCSConv creation code
[wxWidgets.git] / src / common / docview.cpp
index 221ce1b1364ab66a3209fe731c1727f3cf1e0d9a..bd6fa67c3d1b481e372f02b0fd379b66c17d471c 100644 (file)
@@ -571,7 +571,7 @@ bool wxDocument::DoSaveDocument(const wxString& file)
         msgTitle = wxString(_("File error"));
 
 #if wxUSE_STD_IOSTREAM
-    wxSTD ofstream store(file.mb_str());
+    wxSTD ofstream store(file.mb_str(), wxSTD ios::binary);
     if (store.fail() || store.bad())
 #else
     wxFileOutputStream store(file);
@@ -596,39 +596,26 @@ bool wxDocument::DoSaveDocument(const wxString& file)
 
 bool wxDocument::DoOpenDocument(const wxString& file)
 {
-    wxString msgTitle;
-    if (!wxTheApp->GetAppName().empty())
-        msgTitle = wxTheApp->GetAppName();
-    else
-        msgTitle = wxString(_("File error"));
-
 #if wxUSE_STD_IOSTREAM
-    wxSTD ifstream store(file.mb_str());
-    if (store.fail() || store.bad())
+    wxSTD ifstream store(file.mb_str(), wxSTD ios::binary);
+    if (!store.fail() && !store.bad())
 #else
     wxFileInputStream store(file);
-    if (store.GetLastError() != wxSTREAM_NO_ERROR)
+    if (store.GetLastError() == wxSTREAM_NO_ERROR)
 #endif
     {
-        (void)wxMessageBox(_("Sorry, could not open this file."), msgTitle, wxOK|wxICON_EXCLAMATION,
-                           GetDocumentWindow());
-        return false;
-    }
 #if wxUSE_STD_IOSTREAM
-    LoadObject(store);
-    if ( !store && !store.eof() )
+        LoadObject(store);
+        if ( !!store || store.eof() )
 #else
-    int res = LoadObject(store).GetLastError();
-    if ((res != wxSTREAM_NO_ERROR) &&
-        (res != wxSTREAM_EOF))
+        int res = LoadObject(store).GetLastError();
+        if ( res == wxSTREAM_NO_ERROR || res == wxSTREAM_EOF )
 #endif
-    {
-        (void)wxMessageBox(_("Sorry, could not open this file."), msgTitle, wxOK|wxICON_EXCLAMATION,
-                           GetDocumentWindow());
-        return false;
+            return true;
     }
 
-    return true;
+    wxLogError(_("Sorry, could not open this file."));
+    return false;
 }
 
 
@@ -2178,6 +2165,8 @@ void wxFileHistory::AddFileToHistory(const wxString& file)
                 pathInMenu = m_fileHistory[i];
             }
 
+            // we need to quote '&' characters which are used for mnemonics
+            pathInMenu.Replace(_T("&"), _T("&&"));
             wxString buf;
             buf.Printf(s_MRUEntryFormat, i + 1, pathInMenu.c_str());
             wxList::compatibility_iterator node = m_fileMenus.GetFirst();