Update of /cvsroot/mahogany/M/src/gui
In directory usw-pr-cvs1:/tmp/cvs-serv15172/src/gui

Modified Files:
        wxFiltersDialog.cpp 
Log Message:
Implement a folder tree traversal when renaming a filter, so that it is still used.

Index: wxFiltersDialog.cpp
===================================================================
RCS file: /cvsroot/mahogany/M/src/gui/wxFiltersDialog.cpp,v
retrieving revision 1.93
retrieving revision 1.94
diff -b -u -2 -r1.93 -r1.94
--- wxFiltersDialog.cpp 8 Jul 2002 14:25:31 -0000       1.93
+++ wxFiltersDialog.cpp 25 Jul 2002 16:53:24 -0000      1.94
@@ -1599,4 +1599,42 @@
 }
 
+
+#if !defined(NO_RENAME_FILTER_TRAVERSAL)
+class RenameAFilterTraversal : public MFolderTraversal
+{
+private:
+  wxString m_name;
+  wxString m_nameNew;
+public:
+   RenameAFilterTraversal(MFolder* folder, wxString name, wxString nameNew) 
+      : MFolderTraversal(*folder)
+      , m_name(name)
+      , m_nameNew(nameNew)
+   {  }
+
+   virtual bool OnVisitFolder(const wxString& folderName)
+      {
+         MFolder* folder = MFolder::Get(folderName);
+         CHECK( folder, NULL, "RenameAFilterTraversal: NULL folder" );
+         wxArrayString filters = folder->GetFilters();
+         size_t countFilters = filters.GetCount();
+         int foundInThisFolder = 0;
+         for ( size_t nFilter = 0; nFilter < countFilters; nFilter++ )
+         {
+            if (filters[nFilter] == m_name)
+            {
+                filters[nFilter] = m_nameNew;
+                foundInThisFolder = 1;
+            }
+         }
+         if (foundInThisFolder)
+         {
+             folder->SetFilters(filters);
+         }
+         return true;
+      }
+};
+#endif
+
 void
 wxAllFiltersDialog::OnRenameFiter(wxCommandEvent &event)
@@ -1622,4 +1660,5 @@
    }
 
+#if defined(NO_RENAME_FILTER_TRAVERSAL)
    MDialog_Message(_("Please note that the renamed filter is not used by "
                      "any folder any more, you should probably go to the\n"
@@ -1631,4 +1670,10 @@
                    _("Filter renamed"),
                    "FilterRenameWarn");
+#else
+   MFolder_obj folderRoot("");
+   RenameAFilterTraversal traverse(folderRoot, name, nameNew);
+   traverse.Traverse();
+#endif
+
 }
 



-------------------------------------------------------
This sf.net email is sponsored by: Jabber - The world's fastest growing 
real-time communications platform! Don't just IM. Build it in! 
http://www.jabber.com/osdn/xim
_______________________________________________
Mahogany-cvsupdates mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mahogany-cvsupdates

Reply via email to