From eb03421c5dd132fb79ac12a436efefbfb0287544 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Savard Date: Mon, 30 Mar 2009 17:38:36 +0000 Subject: Core (bug 341760) : TutoSerializer, 2nd version (fonction save_tutorial added) + Tests : added serializertests.py --- (limited to 'src/sugar/activity/activity.py') diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py index 21e38f6..3e2d3d4 100644 --- a/src/sugar/activity/activity.py +++ b/src/sugar/activity/activity.py @@ -77,6 +77,7 @@ from sugar.datastore import datastore from sugar.session import XSMPClient from sugar import wm from sugar.tutorius.services import ObjectStore +from sugar.tutorius.tutoserialize import TutoSerializer _ = lambda msg: gettext.dgettext('sugar-toolkit', msg) @@ -126,11 +127,21 @@ class ActivityToolbar(gtk.Toolbar): if hasattr(self._activity,"get_tutorials") and hasattr(self._activity.get_tutorials,"__call__"): self.tutorials = ToolComboBox(label_text=_('Tutorials:')) self.tutorials.combo.connect('changed', self.__tutorial_changed_cb) - tutorials = self._activity.get_tutorials() + # Get tutorial list by file + logging.debug("************************************ before creating serialize") + serialize = TutoSerializer() + logging.debug("************************************ before calling load_tuto_list()") + + #tutorials = self._activity.get_tutorials() + if getattr(self._activity,"_tutorials",None) is None: + tutorials = serialize.load_tuto_list() + self._current_tutorial = None if tutorials: for key, tutorial in tutorials.items(): - self.tutorials.combo.append_item(key, tutorial.name) + # self.tutorials.combo.append_item(key, _(tutorial.name)) + self.tutorials.combo.append_item(key, _(tutorial)) + self.insert(self.tutorials, -1) self.tutorials.show() @@ -196,16 +207,34 @@ class ActivityToolbar(gtk.Toolbar): """ Callback for tutorial combobox item change """ - model = combo.get_model() - it = combo.get_active_iter() - (key, ) = model.get(it, 0) - tutorial = self._activity.get_tutorials().get(key,None) - if not tutorial is None: + logging.debug("************ function __tutorial_changed_cb called") + serialize = TutoSerializer() + + if self._current_tutorial: + self._current_tutorial.detach() + + model = self.tutorials.combo.get_model() + it = self.tutorials.combo.get_active_iter() + (key,) = model.get(it, 0) + + #Load and build chosen tutorial from Pickle file + logging.debug("****************** before tuto build") +## tutorials = self._activity.get_tutorials() + tuto = serialize.build_tutorial(key) + self._activity._tutorials = tuto + logging.debug("****************** after tuto build") +## tutorial = self._activity.get_tutorials().get(key,None) + tutorial = tuto.get(key, None) + + if not getattr(self._activity,"_tutorials",None) is None: if not self._current_tutorial is None: self._current_tutorial.detach() + self._current_tutorial = tutorial + logging.debug(" *************** try to attach tuto") self._current_tutorial.attach(self._activity) + def __keep_clicked_cb(self, button): self._activity.copy() -- cgit v0.9.1