def set_lesson_description(self, txt): if txt: self.g_lesson_description.set_text(gu.escape(txt)) self.g_lesson_description.set_use_markup(True) self.g_lesson_description.show() else: self.g_lesson_description.hide()
def __init__(self, show_gtk_warnings): gtk.Dialog.__init__(self) self.m_show_gtk_warnings = show_gtk_warnings self.set_default_size(630, 400) self.vbox.set_border_width(8) label = gtk.Label(_("GNU Solfege message window")) label.set_name('Heading2') self.vbox.pack_start(label, False) label = gtk.Label( _("Please report this to the bug database or send an email to [email protected] if the content of the message make you believe you have found a bug." )) label.set_line_wrap(True) self.vbox.pack_start(label, False) scrollwin = gtk.ScrolledWindow() scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.vbox.pack_start(scrollwin) self.g_text = gtk.TextView() scrollwin.add(self.g_text) self.g_report = gtk.Button() self.g_report.connect('clicked', self.do_report) box = gtk.HBox() self.g_report.add(box) im = gtk.image_new_from_stock('gtk-execute', gtk.ICON_SIZE_BUTTON) box.pack_start(im) label = gtk.Label() label.set_text_with_mnemonic(gu.escape( _('_Make automatic bug report'))) label.set_use_markup(True) box.pack_start(label) self.action_area.pack_start(self.g_report) self.g_close = gtk.Button(stock='gtk-close') self.action_area.pack_start(self.g_close) self.g_close.connect('clicked', lambda w: self.hide())
def set_lesson_heading(self, txt): if txt: self.g_lesson_heading.set_text('<span size="large"><b>%s</b></span>' % gu.escape(txt)) self.g_lesson_heading.set_use_markup(True) self.g_lesson_heading.show() else: self.g_lesson_heading.hide()
def __init__(self, show_gtk_warnings): gtk.Dialog.__init__(self) self.m_show_gtk_warnings = show_gtk_warnings self.set_default_size(630, 400) self.vbox.set_border_width(8) label = gtk.Label(_("GNU Solfege message window")) label.set_name('Heading2') self.vbox.pack_start(label, False) label = gtk.Label(_("Please report this to the bug database or send an email to [email protected] if the content of the message make you believe you have found a bug.")) label.set_line_wrap(True) self.vbox.pack_start(label, False) scrollwin = gtk.ScrolledWindow() scrollwin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.vbox.pack_start(scrollwin) self.g_text = gtk.TextView() scrollwin.add(self.g_text) self.g_report = gtk.Button() self.g_report.connect('clicked', self.do_report) box = gtk.HBox() self.g_report.add(box) im = gtk.image_new_from_stock('gtk-execute', gtk.ICON_SIZE_BUTTON) box.pack_start(im) label = gtk.Label() label.set_text_with_mnemonic(gu.escape(_('_Make automatic bug report'))) label.set_use_markup(True) box.pack_start(label) self.action_area.pack_start(self.g_report) self.g_close = gtk.Button(stock='gtk-close') self.action_area.pack_start(self.g_close) self.g_close.connect('clicked', lambda w: self.hide())
def on_export(self, widget): iter = self.g_liststore.get_iter_first() all_files_ok = True while iter: if self.g_liststore.get(iter, self.STORE_FILENAME) == (None,): all_files_ok = False iter = self.g_liststore.iter_next(iter) if not all_files_ok: gu.dialog_ok("Can not run because some exercises are not found.") return export_to = \ self.select_empty_directory(_("Select where to export the files")) if not export_to: return progress_dialog = gtk.Dialog(_("Exporting training set"), self, 0, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) progress_dialog.show() label = gtk.Label() label.set_markup('<span weight="bold">%s</span>' % gu.escape(_("Export training set"))) label.show() progress_dialog.vbox.pack_start(label, False) def _cancel(widget, response): solfege.app.m_abort_export = True progress_dialog.connect('response', _cancel) progress_bar = gtk.ProgressBar() progress_bar.show() progress_dialog.vbox.pack_start(progress_bar) # We have to make a version of the data without gtk widgets v = [] iter = self.g_liststore.get_iter_first() while iter: v.append({ 'filename': \ unicode(self.g_liststore.get_value(iter, self.STORE_FILENAME)), 'count': self.g_liststore.get_value(iter, self.STORE_COUNT), 'repeat': self.g_liststore.get_value(iter, self.STORE_REPEAT), 'delay': self.g_liststore.get_value(iter, self.STORE_DELAY), }) iter = self.g_liststore.iter_next(iter) output_format = [k for k in self.g_output if self.g_output[k].get_active()][0] progress_dialog.queue_draw() while gtk.events_pending(): gtk.main_iteration(0) time.sleep(0.1) while gtk.events_pending(): gtk.main_iteration(0) try: for prog in solfege.app.export_training_set(v, export_to, output_format, self.g_named_tracks.get_active()): progress_bar.set_fraction(prog) while gtk.events_pending(): gtk.main_iteration(0) progress_dialog.destroy() except osutils.BinaryBaseException, e: progress_dialog.destroy() solfege.win.display_error_message2(e.msg1, e.msg2)
def mark_wrong(self): if self.m_marked_wrong: return self.m_marked_wrong = True vbox = Gtk.VBox() assert len(self.get_children()) == 1 self.get_children()[0].reparent(vbox) self.add(vbox) label = Gtk.Label() label.set_markup("<span size='small'>%s</span>" % gu.escape(_("Wrong"))) label.show() vbox.pack_start(label, True, True, 0) vbox.show()
def display_error_message(self, msg, title=None, secondary_text=None): if solfege.splash_win and solfege.splash_win.props.visible: solfege.splash_win.hide() reshow_splash = True else: reshow_splash = False if not isinstance(msg, str): msg = msg.decode(locale.getpreferredencoding(), 'replace') m = Gtk.MessageDialog(self, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, None) m.set_markup(gu.escape(msg)) if title: m.set_title(title) if secondary_text: m.format_secondary_text(secondary_text) m.run() m.destroy() if reshow_splash: solfege.splash_win.show() while Gtk.events_pending(): Gtk.main_iteration()
def on_export(self, widget): iter = self.g_liststore.get_iter_first() all_files_ok = True while iter: if self.g_liststore.get(iter, self.STORE_FILENAME) == (None, ): all_files_ok = False iter = self.g_liststore.iter_next(iter) if not all_files_ok: gu.dialog_ok("Can not run because some exercises are not found.") return export_to = \ self.select_empty_directory(_("Select where to export the files")) if not export_to: return progress_dialog = gtk.Dialog(_("Exporting training set"), self, 0, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) progress_dialog.show() label = gtk.Label() label.set_markup('<span weight="bold">%s</span>' % gu.escape(_("Export training set"))) label.show() progress_dialog.vbox.pack_start(label, False) def _cancel(widget, response): solfege.app.m_abort_export = True progress_dialog.connect('response', _cancel) progress_bar = gtk.ProgressBar() progress_bar.show() progress_dialog.vbox.pack_start(progress_bar) # We have to make a version of the data without gtk widgets v = [] iter = self.g_liststore.get_iter_first() while iter: v.append({ 'filename': \ unicode(self.g_liststore.get_value(iter, self.STORE_FILENAME)), 'count': self.g_liststore.get_value(iter, self.STORE_COUNT), 'repeat': self.g_liststore.get_value(iter, self.STORE_REPEAT), 'delay': self.g_liststore.get_value(iter, self.STORE_DELAY), }) iter = self.g_liststore.iter_next(iter) output_format = [ k for k in self.g_output if self.g_output[k].get_active() ][0] progress_dialog.queue_draw() while gtk.events_pending(): gtk.main_iteration(0) time.sleep(0.1) while gtk.events_pending(): gtk.main_iteration(0) try: for prog in solfege.app.export_training_set( v, export_to, output_format, self.g_named_tracks.get_active()): progress_bar.set_fraction(prog) while gtk.events_pending(): gtk.main_iteration(0) progress_dialog.destroy() except osutils.BinaryBaseException, e: progress_dialog.destroy() solfege.win.display_error_message2(e.msg1, e.msg2)