]> git.saurik.com Git - wxWidgets.git/commitdiff
applied file history patch
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 17 Jan 2001 18:01:35 +0000 (18:01 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 17 Jan 2001 18:01:35 +0000 (18:01 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/docview.cpp
src/gtk/files.lst
src/gtk1/files.lst

index 50bd316bea94b5e576e0c1db2394f58df9260215..a49ef09a9bfa5a1cabe68d4425f24bb8ad2b656b 100644 (file)
@@ -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)
index 1d12f09f277e2139688a01ed4e2f2f4d0874146a..26a2262e40e21b9774f79ee0ca7fa77b34169d3d 100644 (file)
@@ -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 \
index 1d12f09f277e2139688a01ed4e2f2f4d0874146a..26a2262e40e21b9774f79ee0ca7fa77b34169d3d 100644 (file)
@@ -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 \