[Spambayes-checkins] spambayes/Outlook2000 addin.py,1.1,1.2 manager.py,1.10,1.11

Mark Hammond mhammond@users.sourceforge.net
Sun, 20 Oct 2002 01:28:01 -0700


Update of /cvsroot/spambayes/spambayes/Outlook2000
In directory usw-pr-cvs1:/tmp/cvs-serv10411

Modified Files:
	addin.py manager.py 
Log Message:
Ensure addin and respond dynamically to changes made in the GUI
(ie, list of folders to watch changes)


Index: addin.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/addin.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** addin.py	20 Oct 2002 07:47:00 -0000	1.1
--- addin.py	20 Oct 2002 08:27:58 -0000	1.2
***************
*** 73,76 ****
--- 73,79 ----
  
  class FolderItemsEvent:
+     def __del__(self):
+         print "Event dieing"
+ 
      def Init(self, target, application, manager):
          self.application = application
***************
*** 107,110 ****
--- 110,115 ----
          import manager
          self.manager = manager.GetManager()
+         assert self.manager.addin is None, "Should not already have an addin"
+         self.manager.addin = self
          
          # ActiveExplorer may be none when started without a UI (eg, WinCE synchronisation)
***************
*** 121,127 ****
              item.Enabled = True
  
          # Create a notification hook for all folders we filter.
          self.UpdateFolderHooks()
! 
      def UpdateFolderHooks(self):
          new_hooks = {}
--- 126,135 ----
              item.Enabled = True
  
+         self.FiltersChanged()
+ 
+     def FiltersChanged(self):
          # Create a notification hook for all folders we filter.
          self.UpdateFolderHooks()
!         
      def UpdateFolderHooks(self):
          new_hooks = {}
***************
*** 139,145 ****
                      new_hook.Init(folder, self.application, self.manager)
                      new_hooks[eid] = new_hook
!                     print "Created new message hook for", folder.Name
              else:
                  new_hooks[eid] = existing
          self.folder_hooks = new_hooks
              
--- 147,156 ----
                      new_hook.Init(folder, self.application, self.manager)
                      new_hooks[eid] = new_hook
!                     print "AntiSpam: Watching for new messages in folder", folder.Name
              else:
                  new_hooks[eid] = existing
+         for k in self.folder_hooks.keys():
+             if not new_hooks.has_key(k):
+                 self.folder_hooks[k]._obj_.close()
          self.folder_hooks = new_hooks
              

Index: manager.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/Outlook2000/manager.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** manager.py	20 Oct 2002 07:47:00 -0000	1.10
--- manager.py	20 Oct 2002 08:27:58 -0000	1.11
***************
*** 39,42 ****
--- 39,43 ----
  class BayesManager:
      def __init__(self, config_base="default", outlook=None, verbose=1):
+         self.addin = None
          self.verbose = verbose
          if not os.path.isabs(config_base):
***************
*** 231,234 ****
--- 232,237 ----
          d = dialogs.FilterDialog.FilterArrivalsDialog(dlg.mgr, rule.Rule, filter.filterer)
          d.DoModal()
+         if dlg.mgr.addin is not None:
+             dlg.mgr.addin.FiltersChanged()
          
      import dialogs.ManagerDialog