Damn.
On Tue, May 27, 2008 at 5:09 PM, Simon Schampijer <[EMAIL PROTECTED]> wrote:
> Did you forgot to add the patch?
>
> Simon
>
> Tomeu Vizoso wrote:
>>
>> Hi,
>>
>> this patch addresses https://dev.laptop.org/ticket/7013 .
>>
>> Thanks,
>>
>> Tomeu
>> _______________________________________________
>> Sugar mailing list
>> [email protected]
>> http://lists.laptop.org/listinfo/sugar
>>
>
>
From 9c90c9b50a08a652c054ce6a1782cfe3394ee376 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <[EMAIL PROTECTED]>
Date: Tue, 27 May 2008 14:10:32 +0200
Subject: [PATCH] Sort activities in the list and ring by installation date.
---
src/view/home/activitieslist.py | 9 ++++++++-
src/view/home/activitiesring.py | 20 +++++++++++++++++---
2 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/src/view/home/activitieslist.py b/src/view/home/activitieslist.py
index 4b9ea2d..825e234 100644
--- a/src/view/home/activitieslist.py
+++ b/src/view/home/activitieslist.py
@@ -65,9 +65,12 @@ class ActivitiesList(hippo.CanvasScrollbars):
self.remove(entry)
return
+ def _compare_activities(self, entry_1, entry_2):
+ return entry_2.get_installation_time() - entry_1.get_installation_time()
+
def _add_activity(self, activity_info):
entry = ActivityEntry(activity_info)
- self._box.append(entry)
+ self._box.insert_sorted(entry, 0, self._compare_activities)
entry.set_visible(entry.matches(self._query))
def set_filter(self, query):
@@ -135,6 +138,7 @@ class ActivityEntry(hippo.CanvasBox, hippo.CanvasItem):
self._version = activity_info.version
self._favorite = activity_info.favorite
self._title = activity_info.name
+ self._installation_time = activity_info.installation_time
self._favorite_icon = FavoriteIcon(self._favorite)
self._favorite_icon.connect('notify::favorite',
@@ -190,6 +194,9 @@ class ActivityEntry(hippo.CanvasBox, hippo.CanvasItem):
def get_version(self):
return self._version
+ def get_installation_time(self):
+ return self._installation_time
+
def matches(self, query):
if not query:
return True
diff --git a/src/view/home/activitiesring.py b/src/view/home/activitiesring.py
index d8dd018..1484788 100644
--- a/src/view/home/activitiesring.py
+++ b/src/view/home/activitiesring.py
@@ -70,15 +70,26 @@ class ActivitiesRing(hippo.CanvasBox, hippo.CanvasItem):
registry.connect('activity-removed', self.__activity_removed_cb)
registry.connect('activity-changed', self.__activity_changed_cb)
+ def _compare_activities(self, icon_1, icon_2):
+ if hasattr(icon_1, 'installation_time') and \
+ hasattr(icon_2, 'installation_time'):
+ return icon_2.installation_time - icon_1.installation_time
+ else:
+ return 0
+
+ def _add_activity(self, activity_info):
+ icon = ActivityIcon(activity_info)
+ self.insert_sorted(icon, 0, self._compare_activities)
+
def _get_activities_cb(self, activity_list):
for info in activity_list:
if info.favorite and info.bundle_id != "org.laptop.JournalActivity":
- self.append(ActivityIcon(info))
+ self._add_activity(info)
def __activity_added_cb(self, activity_registry, activity_info):
if activity_info.favorite and \
activity_info.bundle_id != "org.laptop.JournalActivity":
- self.append(ActivityIcon(activity_info))
+ self._add_activity(info)
def _find_activity_icon(self, bundle_id, version):
for icon in self.get_children():
@@ -101,7 +112,7 @@ class ActivitiesRing(hippo.CanvasBox, hippo.CanvasItem):
if icon is not None and not activity_info.favorite:
self.remove(icon)
elif icon is None and activity_info.favorite:
- self.append(ActivityIcon(activity_info))
+ self._add_activity(activity_info)
def _shell_state_changed_cb(self, model, pspec):
# FIXME implement this
@@ -156,6 +167,9 @@ class ActivityIcon(CanvasIcon):
return self._activity_info.version
version = property(get_version, None)
+ def _get_installation_time(self):
+ return self._activity_info.installation_time
+ installation_time = property(_get_installation_time, None)
class CurrentActivityIcon(CanvasIcon, hippo.CanvasItem):
def __init__(self):
--
1.5.2.5
_______________________________________________
Sugar mailing list
[email protected]
http://lists.laptop.org/listinfo/sugar