diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-05-17 10:31:57 (GMT) |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-05-17 10:31:57 (GMT) |
commit | cd0a2b3ecd3b10cdb60daf5cf1dfc2eec08b9f4c (patch) | |
tree | a5a496b4db3d8364bc7461caf9c8c677573ecdea /sugar | |
parent | 531321740cbf6bd971ce73dbfea2bb83a4d64566 (diff) | |
parent | 3a1d514e9fa197e0c13c7763b5ace9fc56342a61 (diff) |
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/activity/activity.py | 20 | ||||
-rw-r--r-- | sugar/activity/activityservice.py | 6 | ||||
-rw-r--r-- | sugar/datastore/dbus_helpers.py | 31 | ||||
-rw-r--r-- | sugar/graphics/combobox.py | 5 |
4 files changed, 25 insertions, 37 deletions
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py index 76e10b9..421d7ba 100644 --- a/sugar/activity/activity.py +++ b/sugar/activity/activity.py @@ -146,6 +146,10 @@ class Activity(Window, gtk.Container): 'joined': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])) } + __gproperties__ = { + 'active': (bool, None, None, False, gobject.PARAM_READWRITE) + } + def __init__(self, handle, create_jobject=True): """Initialise the Activity @@ -175,6 +179,7 @@ class Activity(Window, gtk.Container): self.connect('destroy', self._destroy_cb) + self._active = False self._activity_id = handle.activity_id self._pservice = presenceservice.get_instance() self._shared_activity = None @@ -213,7 +218,16 @@ class Activity(Window, gtk.Container): else: self.jobject = None - self.connect('focus-out-event', self._focus_out_event_cb) + def do_set_property(self, pspec, value): + if pspec.name == 'active': + if self._active != value: + self._active = value + if not self._active and self.jobject: + self.save() + + def do_get_property(self, pspec): + if pspec.name == 'active': + return self._active def _internal_jobject_create_cb(self): pass @@ -221,10 +235,6 @@ class Activity(Window, gtk.Container): def _internal_jobject_error_cb(self, err): logging.debug("Error creating activity datastore object: %s" % err) - def _focus_out_event_cb(self, widget, event): - if self.jobject: - self.save() - def read_file(self): """ Subclasses implement this method if they support resuming objects from diff --git a/sugar/activity/activityservice.py b/sugar/activity/activityservice.py index 04629ba..b69ba83 100644 --- a/sugar/activity/activityservice.py +++ b/sugar/activity/activityservice.py @@ -15,6 +15,8 @@ # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. +import logging + import dbus import dbus.service @@ -81,3 +83,7 @@ class ActivityService(dbus.service.Object): def execute(self, command, args): return self._activity.execute(command, args) + @dbus.service.method(_ACTIVITY_INTERFACE) + def set_active(self, active): + logging.debug('ActivityService.set_active: %s.' % active) + self._activity.props.active = active diff --git a/sugar/datastore/dbus_helpers.py b/sugar/datastore/dbus_helpers.py index 96c2dd4..33aa9a6 100644 --- a/sugar/datastore/dbus_helpers.py +++ b/sugar/datastore/dbus_helpers.py @@ -34,32 +34,13 @@ except Exception, e: _data_store = None logging.error(e) -def get_contents(filename): - if not filename: - return '' - f = open(filename, "r") - try: - contents = f.read() - finally: - f.close() - return contents - def create(properties, filename): - logging.debug('dbus_helpers.create: %s, %s' % (properties, filename)) - try: - logging.debug(get_contents(filename)) - except UnicodeDecodeError: - pass object_id = _data_store.create(dbus.Dictionary(properties), filename) logging.debug('dbus_helpers.create: ' + object_id) return object_id def update(uid, properties, filename, reply_handler=None, error_handler=None): - logging.debug('dbus_helpers.update: %s, %s, %s' % (uid, properties, filename)) - try: - logging.debug(get_contents(filename)) - except UnicodeDecodeError: - pass + logging.debug('dbus_helpers.update') if reply_handler and error_handler: _data_store.update(uid, dbus.Dictionary(properties), filename, reply_handler=reply_handler, @@ -68,20 +49,16 @@ def update(uid, properties, filename, reply_handler=None, error_handler=None): _data_store.update(uid, dbus.Dictionary(properties), filename) def get_properties(uid): - props = _data_store.get_properties(uid) - logging.debug('dbus_helpers.get_properties: %s, %s' % (uid, props)) - return props + logging.debug('dbus_helpers.get_properties: %s' % uid) + return _data_store.get_properties(uid) def get_filename(uid): filename = _data_store.get_filename(uid) logging.debug('dbus_helpers.get_filename: %s, %s' % (uid, filename)) - try: - logging.debug(get_contents(filename)) - except UnicodeDecodeError: - pass return filename def find(query, reply_handler, error_handler): + logging.debug('dbus_helpers.find') if reply_handler and error_handler: return _data_store.find(query, reply_handler=reply_handler, error_handler=error_handler) diff --git a/sugar/graphics/combobox.py b/sugar/graphics/combobox.py index cb25f6d..ce8628a 100644 --- a/sugar/graphics/combobox.py +++ b/sugar/graphics/combobox.py @@ -40,7 +40,6 @@ class ComboBox(gtk.ComboBox): self.set_model(self._model) self.set_row_separator_func(self._is_separator) - self.connect('realize', self._realize_cb) def do_get_property(self, pspec): if pspec.name == 'value': @@ -49,10 +48,6 @@ class ComboBox(gtk.ComboBox): else: return gtk.ComboBox.do_get_property(self, pspec) - def _realize_cb(self, widget, data=None): - if self.get_active() == -1: - self.set_active(0) - def append_item(self, action_id, text, icon_name=None): if not self._icon_renderer and icon_name: self._icon_renderer = gtk.CellRendererPixbuf() |