コード例 #1
0
ファイル: abstract.py プロジェクト: yuanyelele/solfege
 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()
コード例 #2
0
 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())
コード例 #3
0
 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()
コード例 #4
0
 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()
コード例 #5
0
 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()
コード例 #6
0
 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())
コード例 #7
0
 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)
コード例 #8
0
ファイル: elembuilder.py プロジェクト: gitGNU/gnu_solfege
 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()
コード例 #9
0
ファイル: mainwin.py プロジェクト: tcamundsen/solfege
 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()
コード例 #10
0
ファイル: mainwin.py プロジェクト: gitGNU/gnu_solfege
 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()
コード例 #11
0
    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)