Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorSimon 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)
commitcd0a2b3ecd3b10cdb60daf5cf1dfc2eec08b9f4c (patch)
treea5a496b4db3d8364bc7461caf9c8c677573ecdea /sugar
parent531321740cbf6bd971ce73dbfea2bb83a4d64566 (diff)
parent3a1d514e9fa197e0c13c7763b5ace9fc56342a61 (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/activity.py20
-rw-r--r--sugar/activity/activityservice.py6
-rw-r--r--sugar/datastore/dbus_helpers.py31
-rw-r--r--sugar/graphics/combobox.py5
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()