diff options
author | Simon Schampijer <simon@schampijer.de> | 2010-09-22 09:46:20 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@schampijer.de> | 2010-09-22 09:46:20 (GMT) |
commit | 910609ecf77fbb264d807bfe654396401da17030 (patch) | |
tree | b23ae0999d59fe98ba0ae66f01f08df344cf05a7 | |
parent | e5d4ff44225e1a01ade06eac2907db36b2f21a6a (diff) |
Feedback when deleting files on an external device #10351
-rw-r--r-- | src/jarabe/journal/listview.py | 39 | ||||
-rw-r--r-- | src/jarabe/journal/model.py | 4 |
2 files changed, 15 insertions, 28 deletions
diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py index 6556b08..e1ca620 100644 --- a/src/jarabe/journal/listview.py +++ b/src/jarabe/journal/listview.py @@ -1,4 +1,4 @@ -# Copyright (C) 2007, One Laptop Per Child +# Copyright (C) 2007, 2010 One Laptop Per Child # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -23,7 +23,6 @@ import time import hippo import gobject import gtk -import dbus from sugar.graphics import style from sugar.graphics.icon import CanvasIcon, Icon @@ -31,10 +30,6 @@ from sugar.graphics.icon import CanvasIcon, Icon from jarabe.journal.collapsedentry import CollapsedEntry from jarabe.journal import model -DS_DBUS_SERVICE = 'org.laptop.sugar.DataStore' -DS_DBUS_INTERFACE = 'org.laptop.sugar.DataStore' -DS_DBUS_PATH = '/org/laptop/sugar/DataStore' - UPDATE_INTERVAL = 300 EMPTY_JOURNAL = _("Your Journal is empty") @@ -109,19 +104,18 @@ class BaseListView(gtk.HBox): self._refresh_idle_handler = None self._update_dates_timer = None - bus = dbus.SessionBus() - datastore = dbus.Interface( - bus.get_object(DS_DBUS_SERVICE, DS_DBUS_PATH), DS_DBUS_INTERFACE) - self._datastore_created_handler = \ - datastore.connect_to_signal('Created', - self.__datastore_created_cb) - self._datastore_updated_handler = \ - datastore.connect_to_signal('Updated', - self.__datastore_updated_cb) + model.created.connect(self.__model_created_cb) + model.updated.connect(self.__model_updated_cb) + model.deleted.connect(self.__model_deleted_cb) + + def __model_created_cb(self, sender, **kwargs): + self._set_dirty() + + def __model_updated_cb(self, sender, **kwargs): + self._set_dirty() - self._datastore_deleted_handler = \ - datastore.connect_to_signal('Deleted', - self.__datastore_deleted_cb) + def __model_deleted_cb(self, sender, **kwargs): + self._set_dirty() def __destroy_cb(self, widget): self._datastore_created_handler.remove() @@ -463,15 +457,6 @@ class BaseListView(gtk.HBox): if entry.get_visible(): entry.update_date() - def __datastore_created_cb(self, uid): - self._set_dirty() - - def __datastore_updated_cb(self, uid): - self._set_dirty() - - def __datastore_deleted_cb(self, uid): - self._set_dirty() - def _set_dirty(self): if self._fully_obscured: self._dirty = True diff --git a/src/jarabe/journal/model.py b/src/jarabe/journal/model.py index 50e8dc1..f4186f0 100644 --- a/src/jarabe/journal/model.py +++ b/src/jarabe/journal/model.py @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2008, One Laptop Per Child +# Copyright (C) 2007, 2008, 2010 One Laptop Per Child # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -460,6 +460,7 @@ def delete(object_id): """ if os.path.exists(object_id): os.unlink(object_id) + deleted.send(None, object_id=object_id) else: _get_datastore().delete(object_id) @@ -504,6 +505,7 @@ def write(metadata, file_path='', update_mtime=True, transfer_ownership=True): destination_path = os.path.join(metadata['mountpoint'], file_name) shutil.copy(file_path, destination_path) object_id = destination_path + created.send(None, object_id=object_id) return object_id |