diff options
Diffstat (limited to 'extensions/deviceicon/volume.py')
-rw-r--r-- | extensions/deviceicon/volume.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/extensions/deviceicon/volume.py b/extensions/deviceicon/volume.py index e7f62a2..ea2377d 100644 --- a/extensions/deviceicon/volume.py +++ b/extensions/deviceicon/volume.py @@ -28,8 +28,10 @@ from jarabe.journal import journalactivity from jarabe.view.palettes import VolumePalette from jarabe.frame.frameinvoker import FrameWidgetInvoker + _icons = {} + class DeviceView(TrayIcon): FRAME_POSITION_RELATIVE = 500 @@ -70,9 +72,11 @@ class DeviceView(TrayIcon): journal.reveal() return True + def setup(tray): gobject.idle_add(_setup_volumes, tray) + def _setup_volumes(tray): volume_monitor = gio.volume_monitor_get() @@ -86,9 +90,11 @@ def _setup_volumes(tray): volume_monitor.connect('mount-added', _mount_added_cb, tray) volume_monitor.connect('mount-removed', _mount_removed_cb, tray) + def _volume_added_cb(volume_monitor, volume, tray): _mount(volume, tray) + def _mount(volume, tray): # Follow Nautilus behaviour here # since it has the same issue with removable device @@ -102,20 +108,23 @@ def _mount(volume, tray): #TODO: pass None as mount_operation, or better, SugarMountOperation volume.mount(gtk.MountOperation(tray.get_toplevel()), _mount_cb) + def _mount_cb(volume, result): logging.debug('_mount_cb %r %r', volume, result) volume.mount_finish(result) + def _mount_added_cb(volume_monitor, mount, tray): _add_device(mount, tray) + def _mount_removed_cb(volume_monitor, mount, tray): icon = _icons[mount] tray.remove_device(icon) del _icons[mount] + def _add_device(mount, tray): icon = DeviceView(mount) _icons[mount] = icon tray.add_device(icon) - |