Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2011-07-06 07:48:47 (GMT)
committer Simon Schampijer <simon@schampijer.de>2011-07-24 16:47:50 (GMT)
commit16506b00ee285fa4c5c1ad43e7b0f1e84802f86e (patch)
treeb3a4bc45fecf2f3d7e135e9161df80dd1f95a735
parent7ccbfb2da266004d149e89020eda01ae50bcaee7 (diff)
Display title in palette of shared activity OLPC #10676
The patch does display the activity name as primary text and the session title as secondary text. This is coherent with the palette of an activity in the frame. To make this work properly we need to refactor the code a bit and make the palette on demand. Signed-off-by: Simon Schampijer <simon@laptop.org> Reviewed-by: Gonzalo Odiard <gonzalo@laptop.org>
-rw-r--r--src/jarabe/desktop/meshbox.py82
1 files changed, 46 insertions, 36 deletions
diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
index 3d1e52a..756c303 100644
--- a/src/jarabe/desktop/meshbox.py
+++ b/src/jarabe/desktop/meshbox.py
@@ -63,43 +63,24 @@ _OLPC_MESH_ICON_NAME = 'network-mesh'
_AUTOSEARCH_TIMEOUT = 1000
-class ActivityView(hippo.CanvasBox):
- def __init__(self, model):
- hippo.CanvasBox.__init__(self)
-
+class _ActivityIcon(CanvasIcon):
+ def __init__(self, model, file_name, xo_color,
+ size=style.STANDARD_ICON_SIZE):
+ CanvasIcon.__init__(self, file_name=file_name,
+ xo_color=xo_color,
+ size=size)
self._model = model
- self._model.connect('current-buddy-added', self.__buddy_added_cb)
- self._model.connect('current-buddy-removed', self.__buddy_removed_cb)
-
- self._icons = {}
- self._palette = None
-
- self._layout = SnowflakeLayout()
- self.set_layout(self._layout)
-
- self._icon = self._create_icon()
- self._layout.add(self._icon, center=True)
+ self.connect('activated', self._clicked_cb)
- self._palette = self._create_palette()
- self._icon.set_palette(self._palette)
-
- for buddy in self._model.props.current_buddies:
- self._add_buddy(buddy)
-
- def _create_icon(self):
- icon = CanvasIcon(file_name=self._model.bundle.get_icon(),
- xo_color=self._model.get_color(), cache=True,
- size=style.STANDARD_ICON_SIZE)
- icon.connect('activated', self._clicked_cb)
- return icon
-
- def _create_palette(self):
- p_text = glib.markup_escape_text(self._model.bundle.get_name())
+ def create_palette(self):
+ primary_text = glib.markup_escape_text(self._model.bundle.get_name())
+ secondary_text = glib.markup_escape_text(self._model.get_name())
p_icon = Icon(file=self._model.bundle.get_icon(),
xo_color=self._model.get_color())
p_icon.props.icon_size = gtk.ICON_SIZE_LARGE_TOOLBAR
p = palette.Palette(None,
- primary_text=p_text,
+ primary_text=primary_text,
+ secondary_text=secondary_text,
icon=p_icon)
private = self._model.props.private
@@ -118,6 +99,40 @@ class ActivityView(hippo.CanvasBox):
return p
+ def _clicked_cb(self, item):
+ bundle = self._model.get_bundle()
+ misc.launch(bundle, activity_id=self._model.activity_id,
+ color=self._model.get_color())
+
+
+class ActivityView(hippo.CanvasBox):
+ def __init__(self, model):
+ hippo.CanvasBox.__init__(self)
+
+ self._model = model
+ self._model.connect('current-buddy-added', self.__buddy_added_cb)
+ self._model.connect('current-buddy-removed', self.__buddy_removed_cb)
+
+ self._icons = {}
+
+ self._layout = SnowflakeLayout()
+ self.set_layout(self._layout)
+
+ self._icon = self._create_icon()
+ self._layout.add(self._icon, center=True)
+
+ self._icon.palette_invoker.cache_palette = False
+
+ for buddy in self._model.props.current_buddies:
+ self._add_buddy(buddy)
+
+ def _create_icon(self):
+ icon = _ActivityIcon(self._model,
+ file_name=self._model.bundle.get_icon(),
+ xo_color=self._model.get_color(),
+ size=style.STANDARD_ICON_SIZE)
+ return icon
+
def has_buddy_icon(self, key):
return key in self._icons
@@ -134,11 +149,6 @@ class ActivityView(hippo.CanvasBox):
del self._icons[buddy.props.key]
icon.destroy()
- def _clicked_cb(self, item):
- bundle = self._model.get_bundle()
- misc.launch(bundle, activity_id=self._model.activity_id,
- color=self._model.get_color())
-
def set_filter(self, query):
text_to_check = self._model.bundle.get_name().lower() + \
self._model.bundle.get_bundle_id().lower()