Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/typingturtle.py
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2009-09-14 00:32:43 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2009-09-14 00:32:43 (GMT)
commit7ff623023031dae3aa2daf921fad4f71da1c4e8b (patch)
tree7f2584a6e71e98abd0857a5ad47274c511351a28 /typingturtle.py
parent05cb5364230d2d9ab65ac3a77a4a7dec29b8748b (diff)
Lesson editor UI improvements.
Diffstat (limited to 'typingturtle.py')
-rwxr-xr-xtypingturtle.py59
1 files changed, 47 insertions, 12 deletions
diff --git a/typingturtle.py b/typingturtle.py
index a570eb0..dfe4ccb 100755
--- a/typingturtle.py
+++ b/typingturtle.py
@@ -34,6 +34,7 @@ import gobject, pygtk, gtk, pango
# Import Sugar UI modules.
import sugar.activity.activity
from sugar.graphics import *
+from sugar.graphics import toolbutton
from sugar.presence import presenceservice
@@ -47,7 +48,7 @@ bundle_path = sugar.activity.activity.get_bundle_path()
os.chdir(bundle_path)
# Import activity modules.
-import mainscreen, lessonscreen, medalscreen
+import mainscreen, editlessonlistscreen
# This is the main Typing Turtle activity class.
#
@@ -85,55 +86,89 @@ class TypingTurtle(sugar.activity.activity.Activity):
activity_toolbar = self.tbox.get_activity_toolbar()
activity_toolbar.share.props.visible = False
+ self.editorbtn = sugar.graphics.toolbutton.ToolButton('format-justify-left')
+ self.editorbtn.set_tooltip(_("Edit Lessons"))
+ self.editorbtn.connect('clicked', self.editor_clicked_cb)
+
+ share_idx = activity_toolbar.get_item_index(activity_toolbar.share)
+ activity_toolbar.insert(self.editorbtn, share_idx)
+ self.editorbtn.show_all()
+
def build_toolbox(self):
self.tbox = sugar.activity.activity.ActivityToolbox(self)
self.tbox.show_all()
self.set_toolbox(self.tbox)
+ def editor_clicked_cb(self, btn):
+ self.push_screen(editlessonlistscreen.EditLessonListScreen(self, self.mainscreen.lessons))
+
def push_screen(self, screen):
if len(self.screens):
- self.screenbox.remove(self.screens[-1])
+ oldscreen = self.screens[-1]
+
+ try:
+ oldscreen.leave()
+ except:
+ pass
+
+ self.screenbox.remove(oldscreen)
self.screenbox.pack_start(screen, True, True)
self.screens.append(screen)
+
+ try:
+ screen.enter()
+ except:
+ pass
def pop_screen(self):
- self.screenbox.remove(self.screens[-1])
- self.screens.pop()
+ oldscreen = self.screens.pop()
+
+ try:
+ oldscreen.leave()
+ except:
+ pass
+
+ self.screenbox.remove(oldscreen)
+
if len(self.screens):
- self.screenbox.pack_start(self.screens[-1])
-
+ screen = self.screens[-1]
+
+ try:
+ screen.enter()
+ except:
+ pass
+
+ self.screenbox.pack_start(screen)
+
def add_history(self, entry):
self.data['history'].append(entry)
def read_file(self, file_path):
- print 'read_file'
-
if self.metadata['mime_type'] != 'text/plain':
return
fd = open(file_path, 'r')
try:
text = fd.read()
- print "read %s" % text
self.data = json.loads(text)
+ if self.data.has_key('lessons'):
+ self.mainscreen.lessons = self.data['lessons']
finally:
fd.close()
self.mainscreen.show_next_lesson()
def write_file(self, file_path):
- print 'write_file'
-
if not self.metadata['mime_type']:
self.metadata['mime_type'] = 'text/plain'
fd = open(file_path, 'w')
try:
+ self.data['lessons'] = self.mainscreen.lessons
text = json.dumps(self.data)
fd.write(text)
- print "wrote %s" % text
finally:
fd.close()