diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2009-02-16 19:08:48 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2009-02-16 19:08:48 (GMT) |
commit | 831797e9215c33f351f1979db284b5a82b2c3c7e (patch) | |
tree | 170fce3b7a1ee8975b74c27bc1115a4ad0ee6ed1 | |
parent | ba283350f0826da079223cea49f0594968a5b78e (diff) |
Use notebook to strore board and lessons
Use it instead of inserting/creating lessons box.
That scheme prevents segfaults on f10
-rw-r--r-- | SliderPuzzleUI.py | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/SliderPuzzleUI.py b/SliderPuzzleUI.py index c3a73da..026e85e 100644 --- a/SliderPuzzleUI.py +++ b/SliderPuzzleUI.py @@ -231,7 +231,6 @@ class SliderPuzzleUI (gtk.Table): self.game_box = BorderFrame(border_color=COLOR_FRAME_GAME) self.game_box.add(self.game_wrapper) - inner_table.attach(self.game_box, 1,2,0,1, gtk.FILL, gtk.FILL) lang_combo = prepare_btn(LanguageComboBox('org.worldwideworkshop.olpc.SliderPuzzle')) lang_combo.connect('changed', self.do_select_language) @@ -264,6 +263,13 @@ class SliderPuzzleUI (gtk.Table): self.msg_label.show() timer_hbox.pack_start(self.msg_label, True) + self.notebook = gtk.Notebook() + self.notebook.show() + self.notebook.props.show_border = False + self.notebook.props.show_tabs = False + self.notebook.append_page(self.game_box) + inner_table.attach(self.notebook, 1,2,0,1, gtk.FILL, gtk.FILL) + self.btn_lesson = prepare_btn(gtk.Button(" ")) self.labels_to_translate.append([self.btn_lesson, _("Lesson Plans")]) self.btn_lesson.connect("clicked", self.do_lesson_plan) @@ -379,7 +385,7 @@ class SliderPuzzleUI (gtk.Table): lbl[0].set_label(_(lbl[1])) if not self.game_wrapper.get_parent() and not first_time: self.game_box.pop() - if isinstance(self.game_box.get_child(), NotebookReaderWidget): + if self.notebook.get_current_page() == 1: m = self.do_lesson_plan else: m = self.do_select_category @@ -548,14 +554,16 @@ class SliderPuzzleUI (gtk.Table): self._on_lesson_plan = True if self._contest_mode and self.get_game_state() < GAME_STARTED: return - if isinstance(self.game_box.get_child(), NotebookReaderWidget): - self.game_box.pop() - else: - s = NotebookReaderWidget('lessons', self.selected_lang_details) - s.connect('parent-set', self.do_lesson_plan_reparent) - s.show_all() - self.game_box.push(s) + page = self.notebook.get_current_page() + if page == 0: self.timer.stop() + if self.notebook.get_n_pages() == 1: + lessons = NotebookReaderWidget('lessons', + self.selected_lang_details) + lessons.connect('parent-set', self.do_lesson_plan_reparent) + lessons.show_all() + self.notebook.append_page(lessons) + self.notebook.set_current_page(int(not page)) finally: self._on_lesson_plan = False |