Default order for activities in the frame.

This commit is contained in:
Marco Pesenti Gritti 2007-09-22 03:37:31 +02:00
parent 2a91e02444
commit 478b31a49e
3 changed files with 56 additions and 5 deletions

View File

@ -8,6 +8,7 @@ sugar-xo.gtkrc: gtkrc.em
sugardir = $(pkgdatadir)/data sugardir = $(pkgdatadir)/data
sugar_DATA = \ sugar_DATA = \
activities.defaults \
mime.defaults \ mime.defaults \
$(GTKRC_FILES) $(GTKRC_FILES)

18
data/activities.defaults Normal file
View File

@ -0,0 +1,18 @@
# Ordered list of the activities displayed in the frame
org.laptop.Chat
org.laptop.WebActivity
org.laptop.AbiWordActivity
org.laptop.RecordActivity
org.laptop.Oficina
org.laptop.TamTamJam
org.vpri.EtoysActivity
org.laptop.TurtleArtActivity
org.laptop.Pippy
org.laptop.Calculate
org.laptop.MeasureActivity
org.laptop.TamTamEdit
org.laptop.TamTamSynthLab
org.laptop.Memorize
org.laptop.BlockPartyActivity
org.laptop.Connect

View File

@ -23,6 +23,7 @@ from sugar.graphics.icon import Icon
from sugar.graphics import style from sugar.graphics import style
from sugar import profile from sugar import profile
from sugar import activity from sugar import activity
from sugar import env
from activitybutton import ActivityButton from activitybutton import ActivityButton
@ -54,6 +55,7 @@ class ActivitiesTray(hippo.CanvasBox):
self._shell_model = self._shell.get_model() self._shell_model = self._shell.get_model()
self._invite_to_item = {} self._invite_to_item = {}
self._invites = self._shell_model.get_invites() self._invites = self._shell_model.get_invites()
self._config = self._load_config()
self._tray = HTray() self._tray = HTray()
self.append(hippo.CanvasWidget(widget=self._tray), hippo.PACK_EXPAND) self.append(hippo.CanvasWidget(widget=self._tray), hippo.PACK_EXPAND)
@ -69,10 +71,40 @@ class ActivitiesTray(hippo.CanvasBox):
self._invites.connect('invite-added', self._invite_added_cb) self._invites.connect('invite-added', self._invite_added_cb)
self._invites.connect('invite-removed', self._invite_removed_cb) self._invites.connect('invite-removed', self._invite_removed_cb)
def _load_config(self):
config = []
f = open(env.get_data_path('activities.defaults'), 'r')
for line in f.readlines():
line = line.strip()
if line and not line.startswith('#'):
config.append(line)
f.close()
return config
def _get_activities_cb(self, activity_list): def _get_activities_cb(self, activity_list):
for activity_info in activity_list: known_activities = []
if activity_info.show_launcher: unknown_activities = []
self.add_activity(activity_info) name_to_activity = {}
while activity_list:
info = activity_list.pop()
name_to_activity[info.service_name] = info
if info.service_name in self._config:
known_activities.append(info)
else:
unknown_activities.append(info)
sorted_activities = []
for name in self._config:
if name in name_to_activity:
sorted_activities.append(name_to_activity[name])
for info in sorted_activities + unknown_activities:
if info.show_launcher:
self.add_activity(info)
def _activity_clicked_cb(self, icon): def _activity_clicked_cb(self, icon):
self._shell.start_activity(icon.get_bundle_id()) self._shell.start_activity(icon.get_bundle_id())