class Gui(abstract.LessonbasedGui): def __init__(self, teacher): abstract.LessonbasedGui.__init__(self, teacher) self.g_w = RhythmWidget() self.practise_box.pack_start(self.g_w, False) self.g_c = Controller(self.g_w) self.practise_box.pack_start(self.g_c, False) self.g_flashbar = gu.FlashBar() self.practise_box.pack_start(self.g_flashbar, False) self.g_flashbar.show() self.std_buttons_add( ('new', self.new_question), ('guess_answer', self.guess_answer), ('repeat', self.repeat_question), ('give_up', self.give_up)) self.g_w.show() def new_question(self, *w): def exception_cleanup(): self.m_t.q_status = self.QSTATUS_NO soundcard.synth.stop() self.std_buttons_exception_cleanup() self.m_t.new_question() try: self.m_t.play_question() self.std_buttons_new_question() self.g_w.grab_focus() self.g_w.set_score(self.m_t.get_empty_staff()) self.g_c.set_editable(True) except Exception, e: if isinstance(e, mpd.MpdException): if 'm_mpd_badcode' not in dir(e): e.m_mpd_badcode = self.m_t.m_P.get_question()[e.m_mpd_varname].get_err_context(e, self.m_t.m_P) if not self.standard_exception_handler(e, exception_cleanup): raise
class Gui(abstract.LessonbasedGui): def __init__(self, teacher): abstract.LessonbasedGui.__init__(self, teacher) self.g_w = RhythmWidget() self.practise_box.pack_start(self.g_w, False) self.g_c = Controller(self.g_w) self.practise_box.pack_start(self.g_c, False) self.g_flashbar = gu.FlashBar() self.practise_box.pack_start(self.g_flashbar, False) self.g_flashbar.show() self.std_buttons_add( ('new', self.new_question), ('guess_answer', self.guess_answer), ('repeat', self.repeat_question), ('give_up', self.give_up)) self.g_w.show() def new_question(self, *w): def exception_cleanup(): self.m_t.q_status = self.m_t.QSTATUS_NO self.std_buttons_exception_cleanup() try: g = self.m_t.new_question() if g == self.m_t.OK: self.m_t.play_question() self.std_buttons_new_question() self.g_w.grab_focus() self.g_w.set_score(self.m_t.m_score) self.g_c.set_editable(True) except Duration.BadStringException, e: gu.dialog_ok("Lesson file error", secondary_text=u"Bad rhythm string in the elements variable of the lessonfile. Only digits and dots expected: %s" % unicode(e)) exception_cleanup() except Exception, e: if not self.standard_exception_handler(e, exception_cleanup): raise