home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.4)
-
- '''
- Helper classes to monitor directories/files for changes using gnomevfs
- '''
- import traceback
- import gnomevfs
- import gobject
- import gtk
-
- class Watcher(gobject.GObject):
- __gsignals__ = {
- 'changed': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [
- gobject.TYPE_STRING]) }
-
- def __init__(self):
- gobject.GObject.__init__(self)
- self.watched = { }
- self.monitor_type = gnomevfs.MONITOR_FILE
-
-
- def add(self, args):
- if type(args) is not list:
- args = [
- args]
-
- for name in args:
- if name == '':
- continue
-
- if name not in self.watched:
-
- try:
- self.watched[name] = gnomevfs.monitor_add(name, self.monitor_type, self._on_change)
- except Exception:
- msg = None
- traceback.print_exc()
- self.watched[name] = 0
- except:
- None<EXCEPTION MATCH>Exception
-
-
- None<EXCEPTION MATCH>Exception
-
-
-
- def remove(self, args):
- if type(args) is not list:
- args = [
- args]
-
- for name in args:
- if name in self.watched:
- if self.watched[name] != 0:
- gnomevfs.monitor_cancel(self.watched[name])
-
- del self.watched[name]
- continue
-
-
-
- def remove_all(self):
- self.remove(self.watched.keys())
-
-
- def _on_change(self, monitor, changed, event):
- if event == gnomevfs.MONITOR_EVENT_CHANGED or event == gnomevfs.MONITOR_EVENT_CREATED:
- gobject.idle_add(self.emit, 'changed', gnomevfs.get_local_path_from_uri(changed))
-
-
-
-
- class FileWatcher(Watcher):
-
- def __init__(self):
- Watcher.__init__(self)
-
-
-
- class DirWatcher(Watcher):
-
- def __init__(self):
- Watcher.__init__(self)
- self.monitor_type = gnomevfs.MONITOR_DIRECTORY
-
-
- if gtk.pygtk_version < (2, 8, 0):
- gobject.type_register(Watcher)
- gobject.type_register(FileWatcher)
- gobject.type_register(DirWatcher)
-
-