Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2009-09-14 17:40:12 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2009-09-14 17:40:12 (GMT)
commit2c9da6eaf151925502250f6390d625bec2a09529 (patch)
treeed44f28ab574dbd1c653b8cae774246bbf7f00d3
parent7ff623023031dae3aa2daf921fad4f71da1c4e8b (diff)
Bug fixes
-rw-r--r--editlessonlistscreen.py58
-rw-r--r--editlessonscreen.py10
-rw-r--r--mainscreen.py4
3 files changed, 42 insertions, 30 deletions
diff --git a/editlessonlistscreen.py b/editlessonlistscreen.py
index 5a63d1c..569b506 100644
--- a/editlessonlistscreen.py
+++ b/editlessonlistscreen.py
@@ -120,21 +120,21 @@ class EditLessonListScreen(gtk.VBox):
def build(self):
# Fill the lesson list.
self.liststore.clear()
- for t in range(0, len(self.lessons)-1):
- self.liststore.append((t,))
+ for t in range(0, len(self.lessons)):
+ self.liststore.append((0,))
def name_render_cb(self, column, cell_renderer, model, iter):
- id = model.get_value(iter, 0)
+ id = model.get_path(iter)[0]
t = self.lessons[id]
cell_renderer.set_property('text', t['name'])
def description_render_cb(self, column, cell_renderer, model, iter):
- id = model.get_value(iter, 0)
+ id = model.get_path(iter)[0]
t = self.lessons[id]
cell_renderer.set_property('text', t['description'])
def type_render_cb(self, column, cell_renderer, model, iter):
- id = model.get_value(iter, 0)
+ id = model.get_path(iter)[0]
t = self.lessons[id]
if t['type'] == 'normal':
cell_renderer.set_property('text', _('Text'))
@@ -142,7 +142,15 @@ class EditLessonListScreen(gtk.VBox):
cell_renderer.set_property('text', _('Balloon Game'))
def stop_clicked_cb(self, btn):
+ # Assign lesson order.
+ num = 0
+ for l in self.lessons:
+ l['order'] = num
+ num = num + 1
+
# Refresh the main screen given the new lesson data.
+ if self.activity.mainscreen.lesson_index >= len(self.lessons):
+ self.activity.mainscreen.lesson_index = len(self.lessons) - 1
self.activity.mainscreen.show_lesson(self.activity.mainscreen.lesson_index)
self.activity.pop_screen()
@@ -151,38 +159,39 @@ class EditLessonListScreen(gtk.VBox):
lesson = { 'name':'', 'description':'', 'type':'normal', 'steps':[ { 'instructions':'', 'text':'' } ] }
self.lessons.append(lesson)
self.activity.push_screen(editlessonscreen.EditLessonScreen(self.activity, lesson))
- self.build()
+ self.liststore.append()
def del_lesson_clicked_cb(self, btn):
- path = self.treeview.get_cursor()[0]
- if path:
- model = self.liststore
- iter = model.get_iter(path)
- id = model.get_value(iter, 0)
- self.lessons.pop(id)
- self.build()
+ if len(self.lessons) > 1:
+ path = self.treeview.get_cursor()[0]
+ if path:
+ id = path[0]
+ self.lessons.pop(id)
+ del self.liststore[id]
+ self.treeview.get_selection().select_path(id)
+ self.treeview.grab_focus()
def move_lesson_up_clicked_cb(self, btn):
path = self.treeview.get_cursor()[0]
if path:
- model = self.liststore
- iter = model.get_iter(path)
- id = model.get_value(iter, 0)
+ id = path[0]
if id > 0:
lesson = self.lessons.pop(id)
self.lessons.insert(id - 1, lesson)
- self.build()
+ self.liststore.swap(self.liststore.get_iter(id), self.liststore.get_iter(id - 1))
+ self.treeview.get_selection().select_path(id - 1)
+ self.treeview.grab_focus()
def move_lesson_down_clicked_cb(self, btn):
path = self.treeview.get_cursor()[0]
if path:
- model = self.liststore
- iter = model.get_iter(path)
- id = model.get_value(iter, 0)
+ id = path[0]
if id < len(self.lessons) - 1:
lesson = self.lessons.pop(id)
self.lessons.insert(id + 1, lesson)
- self.build()
+ self.liststore.swap(self.liststore.get_iter(id), self.liststore.get_iter(id + 1))
+ self.treeview.get_selection().select_path(id + 1)
+ self.treeview.grab_focus()
def lesson_selected_cb(self, treeview):
path = treeview.get_cursor()[0]
@@ -193,9 +202,12 @@ class EditLessonListScreen(gtk.VBox):
self.movedownbtn.set_sensitive(True)
def lesson_activated_cb(self, treeview, path, column):
- model = treeview.get_model()
- id = model.get_value(model.get_iter(path), 0)
+ id = path[0]
lesson = self.lessons[id]
self.activity.push_screen(editlessonscreen.EditLessonScreen(self.activity, lesson))
+ def enter(self):
+ self.delbtn.set_sensitive(False)
+ self.moveupbtn.set_sensitive(False)
+ self.movedownbtn.set_sensitive(False)
diff --git a/editlessonscreen.py b/editlessonscreen.py
index 3ddd8cf..46bfd4c 100644
--- a/editlessonscreen.py
+++ b/editlessonscreen.py
@@ -74,10 +74,10 @@ class EditLessonScreen(gtk.VBox):
steplabel.set_alignment(0.0, 0.5)
steplabel.set_padding(10, 0)
- generatelabel = gtk.Label()
- generatelabel.set_markup(_('Generate'))
- generatebtn = gtk.Button()
- generatebtn.add(generatelabel)
+ #generatelabel = gtk.Label()
+ #generatelabel.set_markup(_('Generate'))
+ #generatebtn = gtk.Button()
+ #generatebtn.add(generatelabel)
delstepbtn = gtk.Button()
delstepbtn.add(sugar.graphics.icon.Icon(icon_name='list-remove'))
delstepbtn.connect('clicked', self.del_step_clicked_cb, idx)
@@ -97,7 +97,7 @@ class EditLessonScreen(gtk.VBox):
btnbox.pack_end(delstepbtn, False, False)
btnbox.pack_end(moveupbtn, False, False)
btnbox.pack_end(movedownbtn, False, False)
- btnbox.pack_end(generatebtn, False, False)
+ #btnbox.pack_end(generatebtn, False, False)
instlabel = gtk.Label()
instlabel.set_markup("<span size='large' weight='bold'>" + _('Instructions') + "</span>")
diff --git a/mainscreen.py b/mainscreen.py
index aaff165..0f2700b 100644
--- a/mainscreen.py
+++ b/mainscreen.py
@@ -217,11 +217,11 @@ class MainScreen(gtk.VBox):
# Hilite the button in the direction of the first unmedaled lesson.
next_index = self.get_next_lesson()
- if next_index > self.lesson_index:
+ if next_index > self.lesson_index and index < len(self.lessons)-1:
self.nextlessonbtn.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#ff8080'))
else:
self.nextlessonbtn.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#40a040'))
- if next_index < self.lesson_index:
+ if next_index < self.lesson_index and index > 0:
self.prevlessonbtn.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#ff8080'))
else:
self.prevlessonbtn.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#40a040'))