diff options
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/activity.py b/activity.py index 9994dea..6539119 100644 --- a/activity.py +++ b/activity.py @@ -22,6 +22,8 @@ import os import gtk from gettext import gettext as _ import logging +import json +import tempfile import pygame import sugargame @@ -36,6 +38,7 @@ from sugar.graphics.alert import ConfirmationAlert from sugar.graphics.toolbarbox import ToolbarBox from sugar.graphics.toolbarbox import ToolbarButton from sugar.graphics.style import GRID_CELL_SIZE +from sugar.datastore import datastore import tools import physics @@ -120,6 +123,12 @@ class PhysicsActivity(activity.Activity): self._insert_stop_play_button(toolbar_box.toolbar) + export_json = ToolButton("document-save") + export_json.set_tooltip(_("Export tracked objects to journal")) + export_json.connect('clicked', self._export_json_cb) + toolbar_box.toolbar.insert(export_json, -1) + export_json.show() + separator = gtk.SeparatorToolItem() toolbar_box.toolbar.insert(separator, -1) separator.show() @@ -216,6 +225,16 @@ class PhysicsActivity(activity.Activity): else: pass + def _export_json_cb(self, button): + jobject = datastore.create() + jobject.metadata['title'] = _("Physics export") + jobject.metadata['mime_type'] = "application/json" + tmp = tempfile.TemporaryFile() + data = self.game.full_pos_list + json.dump(data, tmp) + jobject.file_path = os.path.abspath(tmp.name) + datastore.write(jobject) + def radioClicked(self, button): pygame.event.post(pygame.event.Event(pygame.USEREVENT, action=self.radioList[button])) |