From 02718e6af40552cb8ac97a8af70370698617386b Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 17 Jan 2001 18:01:35 +0000 Subject: [PATCH] applied file history patch git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/docview.cpp | 52 ++++++++++++++++++++++++++++++++++++++------------ src/gtk/files.lst | 5 ----- src/gtk1/files.lst | 5 ----- 3 files changed, 40 insertions(+), 22 deletions(-) diff --git a/src/common/docview.cpp b/src/common/docview.cpp index 50bd316..a49ef09 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -1386,7 +1386,7 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, msgTitle = wxTheApp->GetAppName(); else msgTitle = wxString(_("File error")); - + (void)wxMessageBox(_("Sorry, could not open this file."), msgTitle, wxOK | wxICON_EXCLAMATION, parent); @@ -2040,22 +2040,29 @@ wxFileHistory::~wxFileHistory() void wxFileHistory::AddFileToHistory(const wxString& file) { int i; + // Check we don't already have this file for (i = 0; i < m_fileHistoryN; i++) { - if (m_fileHistory[i] && wxString(m_fileHistory[i]) == file) + if ( m_fileHistory[i] && (file == m_fileHistory[i]) ) + { + // we do have it, move it to the top of the history + RemoveFileFromHistory (i); + AddFileToHistory (file); return; + } } - // Add to the project file history: - // Move existing files (if any) down so we can insert file at beginning. - - // First delete filename that has popped off the end of the array (if any) - if (m_fileHistoryN == m_fileMaxFiles) + // if we already have a full history, delete the one at the end + if ( m_fileMaxFiles == m_fileHistoryN ) { - delete[] m_fileHistory[m_fileMaxFiles-1]; - m_fileHistory[m_fileMaxFiles-1] = (wxChar *) NULL; + RemoveFileFromHistory (m_fileHistoryN - 1); + AddFileToHistory (file); + return; } + + // Add to the project file history: + // Move existing files (if any) down so we can insert file at beginning. if (m_fileHistoryN < m_fileMaxFiles) { wxNode* node = m_fileMenus.First(); @@ -2076,19 +2083,40 @@ void wxFileHistory::AddFileToHistory(const wxString& file) } m_fileHistory[0] = copystring(file); + // this is the directory of the last opened file + wxString pathCurrent; + wxSplitPath( m_fileHistory[0], &pathCurrent, NULL, NULL ); for (i = 0; i < m_fileHistoryN; i++) - if (m_fileHistory[i]) + { + if ( m_fileHistory[i] ) { + // if in same directory just show the filename; otherwise the full + // path + wxString pathInMenu, path, filename, ext; + wxSplitPath( m_fileHistory[i], &path, &filename, &ext ); + if ( path == pathCurrent ) + { + pathInMenu = filename; + if ( !ext.empty() ) + pathInMenu = pathInMenu + wxFILE_SEP_EXT + ext; + } + else + { + // absolute path; could also set relative path + pathInMenu = m_fileHistory[i]; + } + wxString buf; - buf.Printf(s_MRUEntryFormat, i+1, m_fileHistory[i]); + buf.Printf(s_MRUEntryFormat, i + 1, pathInMenu.c_str()); wxNode* node = m_fileMenus.First(); while (node) { wxMenu* menu = (wxMenu*) node->Data(); - menu->SetLabel(wxID_FILE1+i, buf); + menu->SetLabel(wxID_FILE1 + i, buf); node = node->Next(); } } + } } void wxFileHistory::RemoveFileFromHistory(int i) diff --git a/src/gtk/files.lst b/src/gtk/files.lst index 1d12f09..26a2262 100644 --- a/src/gtk/files.lst +++ b/src/gtk/files.lst @@ -23,7 +23,6 @@ ALL_SOURCES = \ generic/msgdlgg.cpp \ generic/numdlgg.cpp \ generic/panelg.cpp \ - generic/plot.cpp \ generic/printps.cpp \ generic/prntdlgg.cpp \ generic/progdlgg.cpp \ @@ -369,7 +368,6 @@ ALL_HEADERS = \ panel.h \ paper.h \ pen.h \ - plot.h \ print.h \ printdlg.h \ prntbase.h \ @@ -529,7 +527,6 @@ ALL_HEADERS = \ generic/msgdlgg.h \ generic/notebook.h \ generic/panelg.h \ - generic/plot.h \ generic/printps.h \ generic/prntdlgg.h \ generic/progdlgg.h \ @@ -800,7 +797,6 @@ GENERICOBJS = \ msgdlgg.o \ numdlgg.o \ panelg.o \ - plot.o \ printps.o \ prntdlgg.o \ progdlgg.o \ @@ -844,7 +840,6 @@ GENERICDEPS = \ msgdlgg.d \ numdlgg.d \ panelg.d \ - plot.d \ printps.d \ prntdlgg.d \ progdlgg.d \ diff --git a/src/gtk1/files.lst b/src/gtk1/files.lst index 1d12f09..26a2262 100644 --- a/src/gtk1/files.lst +++ b/src/gtk1/files.lst @@ -23,7 +23,6 @@ ALL_SOURCES = \ generic/msgdlgg.cpp \ generic/numdlgg.cpp \ generic/panelg.cpp \ - generic/plot.cpp \ generic/printps.cpp \ generic/prntdlgg.cpp \ generic/progdlgg.cpp \ @@ -369,7 +368,6 @@ ALL_HEADERS = \ panel.h \ paper.h \ pen.h \ - plot.h \ print.h \ printdlg.h \ prntbase.h \ @@ -529,7 +527,6 @@ ALL_HEADERS = \ generic/msgdlgg.h \ generic/notebook.h \ generic/panelg.h \ - generic/plot.h \ generic/printps.h \ generic/prntdlgg.h \ generic/progdlgg.h \ @@ -800,7 +797,6 @@ GENERICOBJS = \ msgdlgg.o \ numdlgg.o \ panelg.o \ - plot.o \ printps.o \ prntdlgg.o \ progdlgg.o \ @@ -844,7 +840,6 @@ GENERICDEPS = \ msgdlgg.d \ numdlgg.d \ panelg.d \ - plot.d \ printps.d \ prntdlgg.d \ progdlgg.d \ -- 2.7.4