diff options
author | Morgan Collett <morgan.collett@gmail.com> | 2007-08-22 14:55:16 (GMT) |
---|---|---|
committer | Morgan Collett <morgan.collett@gmail.com> | 2007-08-22 14:55:16 (GMT) |
commit | 63f987594b248d14e0a4daff704224261e322d3a (patch) | |
tree | cd114110c5cda8e4ff5564dd66a703a937c06678 /sugar | |
parent | 52f2bea3ed542e65f22664b5c837280fdab6960d (diff) | |
parent | 0690c423458af9ccc5fd5fc4293eb76cf0b3d808 (diff) |
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/activity/activity.py | 29 | ||||
-rw-r--r-- | sugar/datastore/datastore.py | 3 | ||||
-rw-r--r-- | sugar/graphics/objectchooser.py | 5 | ||||
-rw-r--r-- | sugar/graphics/radiotoolbutton.py | 2 | ||||
-rw-r--r-- | sugar/graphics/toggletoolbutton.py | 2 |
5 files changed, 30 insertions, 11 deletions
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py index f63174a..eea76a8 100644 --- a/sugar/activity/activity.py +++ b/sugar/activity/activity.py @@ -25,9 +25,11 @@ import logging import os import time import tempfile +from hashlib import sha1 import gtk, gobject import dbus +import json from sugar import util from sugar.presence import presenceservice @@ -276,9 +278,15 @@ class Activity(Window, gtk.Container): self._jobject.metadata['activity'] = self.get_service_name() self._jobject.metadata['activity_id'] = self.get_id() self._jobject.metadata['keep'] = '0' - #self._jobject.metadata['buddies'] = '' self._jobject.metadata['preview'] = '' - self._jobject.metadata['icon-color'] = profile.get_color().to_string() + + if self._shared_activity is not None: + icon_color = self._shared_activity.props.color + else: + icon_color = profile.get_color().to_string() + + self._jobject.metadata['icon-color'] = icon_color + self._jobject.file_path = '' datastore.write(self._jobject, reply_handler=self._internal_jobject_create_cb, @@ -394,7 +402,15 @@ class Activity(Window, gtk.Container): return base64.b64encode(preview_data) def _get_buddies(self): - return '' + if self._shared_activity is not None: + buddies = {} + for buddy in self._shared_activity.get_joined_buddies(): + if not buddy.props.owner: + buddy_id = sha1(buddy.props.key).hexdigest() + buddies[buddy_id] = [buddy.props.nick, buddy.props.color] + return buddies + else: + return {} def save(self): """Request that the activity is saved to the Journal.""" @@ -402,11 +418,16 @@ class Activity(Window, gtk.Container): if self._updating_jobject: return - #self.metadata['buddies'] = self._get_buddies() + buddies_dict = self._get_buddies() + if buddies_dict: + self.metadata['buddies_id'] = json.write(buddies_dict.keys()) + self.metadata['buddies'] = json.write(self._get_buddies()) + if self._preview is None: self.metadata['preview'] = '' else: self.metadata['preview'] = self._preview + try: if self._jobject.file_path: self.write_file(self._jobject.file_path) diff --git a/sugar/datastore/datastore.py b/sugar/datastore/datastore.py index 0dbe35b..7af2e93 100644 --- a/sugar/datastore/datastore.py +++ b/sugar/datastore/datastore.py @@ -116,7 +116,8 @@ class DSObject(object): return activities def is_bundle(self): - return self.metadata['mime_type'] == 'application/vnd.olpc-x-sugar' + return self.metadata['mime_type'] in ['application/vnd.olpc-x-sugar', + 'application/vnd.olpc-sugar'] def resume(self, service_name=None): if self.is_bundle(): diff --git a/sugar/graphics/objectchooser.py b/sugar/graphics/objectchooser.py index 46739f6..f929063 100644 --- a/sugar/graphics/objectchooser.py +++ b/sugar/graphics/objectchooser.py @@ -133,7 +133,7 @@ class CollapsedEntry(CanvasRoundBox): if self._icon_name: return self._icon_name - if self._is_bundle(): + if self.jobject.is_bundle(): bundle = Bundle(self.jobject.file_path) self._icon_name = bundle.get_icon() @@ -159,9 +159,6 @@ class CollapsedEntry(CanvasRoundBox): ti = time.strptime(self.jobject.metadata['mtime'], "%Y-%m-%dT%H:%M:%S") return str(Date(time.mktime(ti))) - def _is_bundle(self): - return self.jobject.metadata['mime_type'] == 'application/vnd.olpc-x-sugar' - def _format_title(self): return '"%s"' % self.jobject.metadata['title'] diff --git a/sugar/graphics/radiotoolbutton.py b/sugar/graphics/radiotoolbutton.py index 7b587a1..7bede42 100644 --- a/sugar/graphics/radiotoolbutton.py +++ b/sugar/graphics/radiotoolbutton.py @@ -45,7 +45,7 @@ class RadioToolButton(gtk.RadioToolButton): self._palette.props.invoker = WidgetInvoker(self.child) def set_tooltip(self, text): - self._set_palette(Palette(text)) + self.set_palette(Palette(text)) def do_expose_event(self, event): if self._palette and self._palette.is_up(): diff --git a/sugar/graphics/toggletoolbutton.py b/sugar/graphics/toggletoolbutton.py index 74e78a6..72a6c84 100644 --- a/sugar/graphics/toggletoolbutton.py +++ b/sugar/graphics/toggletoolbutton.py @@ -41,7 +41,7 @@ class ToggleToolButton(gtk.ToggleToolButton): self._palette.props.invoker = WidgetInvoker(self.child) def set_tooltip(self, text): - self._set_palette(Palette(text)) + self.set_palette(Palette(text)) def do_expose_event(self, event): if self._palette and self._palette.is_up(): |