Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2010-09-22 09:46:20 (GMT)
committer Simon Schampijer <simon@schampijer.de>2010-09-22 09:46:20 (GMT)
commit910609ecf77fbb264d807bfe654396401da17030 (patch)
treeb23ae0999d59fe98ba0ae66f01f08df344cf05a7
parente5d4ff44225e1a01ade06eac2907db36b2f21a6a (diff)
Feedback when deleting files on an external device #10351
-rw-r--r--src/jarabe/journal/listview.py39
-rw-r--r--src/jarabe/journal/model.py4
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