Ticket #3772: 0001-Edit-lessons-section.patch

File 0001-Edit-lessons-section.patch, 11.3 KB (added by humitos, 12 years ago)

Edit Section patch

  • editlessonlistscreen.py

    From d48ffffb3b7d205163a73e72b0aa8bc40fe40cd5 Mon Sep 17 00:00:00 2001
    From: Manuel Kaufmann <humitos@gmail.com>
    Date: Thu, 9 Aug 2012 17:22:47 -0300
    Subject: [PATCH Typing Turtle] Edit lessons section
    
    After the port to Gtk3 the Edit Lessons section didn't work
    anymore. This commits solves this and make this section available
    again.
    
    Signed-off-by: Manuel Kaufmann <humitos@gmail.com>
    ---
     editlessonlistscreen.py | 55 ++++++++++++++++++++++++++-----------------------
     editlessonscreen.py     | 43 +++++++++++++++++++++++++-------------
     2 files changed, 58 insertions(+), 40 deletions(-)
    
    diff --git a/editlessonlistscreen.py b/editlessonlistscreen.py
    index 6ac2c34..9bbeeb1 100644
    a b class EditLessonListScreen(Gtk.VBox): 
    6161        self.treeview.set_rules_hint(True)
    6262        self.treeview.set_enable_search(False)
    6363
    64         self.treeview.connect('cursor-changed', self.lesson_selected_cb)
    65         self.treeview.connect('row-activated', self.lesson_activated_cb)
    66 
    6764        # Note that the only thing we store in our liststore is the lesson id.
    6865        # All the actual data is in the lessons list.
    6966        self.liststore = Gtk.ListStore(GObject.TYPE_INT)
    class EditLessonListScreen(Gtk.VBox): 
    136133        self.pack_start(scroll, True, True, 10)
    137134        self.pack_start(btnbox, False, False, 10)
    138135
     136        # README: I had to move these two lines here because the
     137        # signal was emitted before all the widget are created
     138        self.treeview.connect('cursor-changed', self.lesson_selected_cb)
     139        self.treeview.connect('row-activated', self.lesson_activated_cb)
     140
    139141        self.build()
    140142
    141143        self.show_all()
    class EditLessonListScreen(Gtk.VBox): 
    146148        for t in range(0, len(self.lessons)):
    147149            self.liststore.append((0,))
    148150   
    149     def name_render_cb(self, column, cell_renderer, model, iter):
    150         id = model.get_path(iter)[0]
     151    def name_render_cb(self, column, cell_renderer, model, iter, data):
     152        id = model.get_path(iter).get_indices()[0]
    151153        t = self.lessons[id]
    152154        cell_renderer.set_property('text', t['name'])
    153155   
    154     def description_render_cb(self, column, cell_renderer, model, iter):
    155         id = model.get_path(iter)[0]
     156    def description_render_cb(self, column, cell_renderer, model, iter, data):
     157        id = model.get_path(iter).get_indices()[0]
    156158        t = self.lessons[id]
    157159        cell_renderer.set_property('text', t['description'])
    158160
    159     def type_render_cb(self, column, cell_renderer, model, iter):
    160         id = model.get_path(iter)[0]
     161    def type_render_cb(self, column, cell_renderer, model, iter, data):
     162        id = model.get_path(iter).get_indices()[0]
    161163        t = self.lessons[id]
    162164        if t['type'] == 'normal':
    163165            cell_renderer.set_property('text', _('Text'))
    class EditLessonListScreen(Gtk.VBox): 
    244246        self.update_sensitivity()
    245247
    246248    def lesson_activated_cb(self, treeview, path, column):
    247         id = path[0]
     249        sel = self.treeview.get_selection()
     250        model, iter = sel.get_selected()
     251        id = model.get_path(iter).get_indices()[0]
    248252        lesson = self.lessons[id]
    249253        self.activity.push_screen(editlessonscreen.EditLessonScreen(self.activity, lesson))
    250254
    class EditLessonListScreen(Gtk.VBox): 
    252256        self.update_sensitivity()
    253257
    254258    def update_sensitivity(self):
    255         path = self.treeview.get_cursor()[0]
    256        
    257         if path:
    258             self.delbtn.set_sensitive(True)
    259            
    260             if path[0] > 0:
    261                 self.moveupbtn.set_sensitive(True)
     259        sel = self.treeview.get_selection()
     260        if sel:
     261            model, iter = sel.get_selected()
     262
     263            if iter:
     264                self.delbtn.set_sensitive(True)
     265                if model.get_value(iter, 0) > 0:
     266                    self.moveupbtn.set_sensitive(True)
     267                else:
     268                    self.moveupbtn.set_sensitive(False)
     269                if model.get_value(iter, 0) < len(self.lessons) - 1:
     270                    self.movedownbtn.set_sensitive(True)
     271                else:
     272                    self.movedownbtn.set_sensitive(False)
    262273            else:
     274                self.delbtn.set_sensitive(False)
    263275                self.moveupbtn.set_sensitive(False)
    264                
    265             if path[0] < len(self.lessons) - 1:
    266                 self.movedownbtn.set_sensitive(True)
    267             else:
    268276                self.movedownbtn.set_sensitive(False)
    269                
    270         else:
    271             self.delbtn.set_sensitive(False)
    272             self.moveupbtn.set_sensitive(False)
    273             self.movedownbtn.set_sensitive(False)
    274277           
    275278       
    276279    def import_clicked_cb(self, btn):
  • editlessonscreen.py

    diff --git a/editlessonscreen.py b/editlessonscreen.py
    index e5ce0b4..d81d250 100644
    a b class EditLessonScreen(Gtk.VBox): 
    157157
    158158        btnbox = Gtk.HBox()
    159159        btnbox.pack_start(steplabel, False, False, 0)
    160         btnbox.pack_start(stepbox.typecombo, expand=False, padding=10)
     160        btnbox.pack_start(stepbox.typecombo, expand=False,
     161                          fill=False, padding=10)
    161162        btnbox.pack_end(addstepbtn, False, False, 0)
    162163        btnbox.pack_end(delstepbtn, False, False, 0)
    163164        btnbox.pack_end(moveupbtn, False, False, 0)
    class EditLessonScreen(Gtk.VBox): 
    171172
    172173        self.labelsizegroup.add_widget(instlabel)
    173174
    174         stepbox.insttext = Gtk.TextView(Gtk.TextBuffer())
     175        stepbox.insttext = Gtk.TextView()
     176        stepbox.insttext.set_buffer(Gtk.TextBuffer())
    175177        stepbox.insttext.props.wrap_mode = Gtk.WrapMode.WORD
    176178        stepbox.insttext.modify_font(Pango.FontDescription('Monospace'))
    177179        instscroll = Gtk.ScrolledWindow()
    class EditLessonScreen(Gtk.VBox): 
    192194
    193195        self.labelsizegroup.add_widget(textlabel)
    194196
    195         stepbox.texttext = Gtk.TextView(Gtk.TextBuffer())
     197        stepbox.texttext = Gtk.TextView()
     198        stepbox.texttext.set_buffer(Gtk.TextBuffer())
    196199        stepbox.texttext.props.wrap_mode = Gtk.WrapMode.WORD
    197200        stepbox.texttext.modify_font(Pango.FontDescription('monospace'))
    198201        textscroll = Gtk.ScrolledWindow()
    class EditLessonScreen(Gtk.VBox): 
    304307        desclabel.set_alignment(0.0, 0.5)
    305308        desclabel.set_padding(20, 0)
    306309
    307         self.desctext = Gtk.TextView(Gtk.TextBuffer())
     310        self.desctext = Gtk.TextView()
     311        self.desctext.set_buffer(Gtk.TextBuffer())
    308312        self.desctext.props.wrap_mode = Gtk.WrapMode.WORD
    309313        descscroll = Gtk.ScrolledWindow()
    310314        descscroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
    class EditLessonScreen(Gtk.VBox): 
    350354        generatelabel.set_padding(10, 0)
    351355
    352356        generatebox = self.build_generate()
    353         self.vbox.pack_start(generatelabel, expand=False, padding=10)     
     357        self.vbox.pack_start(generatelabel, expand=False,
     358                             fill=False, padding=10)
    354359        self.vbox.pack_start(generatebox, False, True, 0)
    355360       
    356361        self.has_normal_widgets = False
    class EditLessonScreen(Gtk.VBox): 
    385390
    386391            self.labelsizegroup.add_widget(textlabel)
    387392
    388             self.wordstext = Gtk.TextView(Gtk.TextBuffer())
     393            self.wordstext = Gtk.TextView()
     394            self.wordstext.set_buffer(Gtk.TextBuffer())
    389395            self.wordstext.props.wrap_mode = Gtk.WrapMode.WORD
    390396            self.wordstext.modify_font(Pango.FontDescription('Monospace'))
    391397            textscroll = Gtk.ScrolledWindow()
    class EditLessonScreen(Gtk.VBox): 
    406412        medalslabel.set_alignment(0.0, 0.5)
    407413        medalslabel.set_padding(10, 0)
    408414
    409         self.vbox.pack_start(medalslabel, expand=False, padding=10)
     415        self.vbox.pack_start(medalslabel, expand=False,
     416                             fill=False, padding=10)
    410417       
    411418        self.medalboxes = []
    412419        self.medalboxes.append(self.build_medal(self.lesson['medals'][0], _('Bronze')))
    class EditLessonScreen(Gtk.VBox): 
    436443        self.lesson['name'] = self.nameent.get_text()
    437444       
    438445        buf = self.desctext.get_buffer()
    439         self.lesson['description'] = buf.get_text(buf.get_start_iter(), buf.get_end_iter())
     446        self.lesson['description'] = buf.get_text(buf.get_start_iter(),
     447                                                  buf.get_end_iter(), False)
    440448       
    441449        if not self.lesson.has_key('options'):
    442450            self.lesson['options'] = {}
    class EditLessonScreen(Gtk.VBox): 
    453461                    step = {}
    454462                   
    455463                    buf = sb.insttext.get_buffer()
    456                     step['instructions'] = buf.get_text(buf.get_start_iter(), buf.get_end_iter())
     464                    step['instructions'] = buf.get_text(buf.get_start_iter(),
     465                                                        buf.get_end_iter(),
     466                                                        False)
    457467                   
    458468                    buf = sb.texttext.get_buffer()
    459                     step['text'] = buf.get_text(buf.get_start_iter(), buf.get_end_iter())
     469                    step['text'] = buf.get_text(buf.get_start_iter(),
     470                                                buf.get_end_iter(), False)
    460471                   
    461472                    if sb.typecombo.get_active() == 0:
    462473                        step['mode'] = 'key'
    class EditLessonScreen(Gtk.VBox): 
    476487
    477488            if self.has_balloon_widgets:
    478489                buf = self.wordstext.get_buffer()
    479                 text = buf.get_text(buf.get_start_iter(), buf.get_end_iter())
     490                text = buf.get_text(buf.get_start_iter(),
     491                                    buf.get_end_iter(), False)
    480492                self.lesson['words'] = text.split(' ')
    481493               
    482494                for i in range(0, 3):
    class WordListScreen(Gtk.VBox): 
    581593        subtitle.set_markup("<span size='10000'>" + _("Type or paste words here, for the Automatic Lesson Generator.  If empty, the dictionary will be used.") + "</span>")
    582594        subtitle.set_alignment(1.0, 0.0)
    583595
    584         self.wordlisttext = Gtk.TextView(Gtk.TextBuffer())
     596        self.wordlisttext = Gtk.TextView()
     597        self.wordlisttext.set_buffer(Gtk.TextBuffer())
    585598        self.wordlisttext.props.wrap_mode = Gtk.WrapMode.WORD
    586599        wordlistscroll = Gtk.ScrolledWindow()
    587600        wordlistscroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
    class WordListScreen(Gtk.VBox): 
    591604
    592605        self.pack_start(titlebox, False, True, 0)
    593606        self.pack_start(subtitle, False, True, 0)
    594         self.pack_start(Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL), expand=False, padding=0)
     607        separator = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)
     608        self.pack_start(separator, expand=False, fill=False, padding=0)
    595609        self.pack_start(wordlistscroll, True, True, 0)
    596610       
    597611        self.show_all()
    598612
    599613    def stop_clicked_cb(self, btn):
    600614        buf = self.wordlisttext.get_buffer()
    601         wordstext = buf.get_text(buf.get_start_iter(), buf.get_end_iter())
     615        wordstext = buf.get_text(buf.get_start_iter(),
     616                                 buf.get_end_iter(), False)
    602617        self.activity.wordlist = wordstext.split()
    603618       
    604619        self.activity.pop_screen()