Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMorgan 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)
commit63f987594b248d14e0a4daff704224261e322d3a (patch)
treecd114110c5cda8e4ff5564dd66a703a937c06678 /sugar
parent52f2bea3ed542e65f22664b5c837280fdab6960d (diff)
parent0690c423458af9ccc5fd5fc4293eb76cf0b3d808 (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/activity.py29
-rw-r--r--sugar/datastore/datastore.py3
-rw-r--r--sugar/graphics/objectchooser.py5
-rw-r--r--sugar/graphics/radiotoolbutton.py2
-rw-r--r--sugar/graphics/toggletoolbutton.py2
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():