diff options
author | Gary Martin <gary@garycmartin.com> | 2008-03-16 16:30:00 (GMT) |
---|---|---|
committer | Gary Martin <gary@garycmartin.com> | 2008-03-16 16:30:00 (GMT) |
commit | 611c8916102d285b1f539a67dde7f862e48b3db7 (patch) | |
tree | 5f1998470f48006ea746b9e9f2b4efaf042b9884 | |
parent | 9dedbff8a29b7757782379b98891eb7600e33c9a (diff) |
Switched from cPickle to json storage for preferences.
-rw-r--r-- | MANIFEST | 72 | ||||
-rw-r--r-- | Moon.xo | bin | 95669 -> 0 bytes | |||
-rwxr-xr-x | moon.py | 37 |
3 files changed, 92 insertions, 17 deletions
@@ -1,4 +1,75 @@ Moon.activity/ +Moon.activity//.git +Moon.activity//.git/branches +Moon.activity//.git/COMMIT_EDITMSG +Moon.activity//.git/config +Moon.activity//.git/description +Moon.activity//.git/HEAD +Moon.activity//.git/hooks +Moon.activity//.git/hooks/applypatch-msg +Moon.activity//.git/hooks/commit-msg +Moon.activity//.git/hooks/post-commit +Moon.activity//.git/hooks/post-receive +Moon.activity//.git/hooks/post-update +Moon.activity//.git/hooks/pre-applypatch +Moon.activity//.git/hooks/pre-commit +Moon.activity//.git/hooks/pre-rebase +Moon.activity//.git/hooks/update +Moon.activity//.git/index +Moon.activity//.git/info +Moon.activity//.git/info/exclude +Moon.activity//.git/logs +Moon.activity//.git/logs/HEAD +Moon.activity//.git/logs/refs +Moon.activity//.git/logs/refs/heads +Moon.activity//.git/logs/refs/heads/master +Moon.activity//.git/logs/refs/remotes +Moon.activity//.git/logs/refs/remotes/origin +Moon.activity//.git/logs/refs/remotes/origin/master +Moon.activity//.git/objects +Moon.activity//.git/objects/05 +Moon.activity//.git/objects/05/2f5a87b6a294c83ac3bddf023ee08f551e261a +Moon.activity//.git/objects/0f +Moon.activity//.git/objects/0f/77dc17cef018dae166234807bf3f28293cd16a +Moon.activity//.git/objects/23 +Moon.activity//.git/objects/23/70fd44de46d5eb9b0ba430586efb312bbf8cbc +Moon.activity//.git/objects/26 +Moon.activity//.git/objects/26/ac11542f1f667be3a641a7bd4a9e4e9d6ef6da +Moon.activity//.git/objects/3b +Moon.activity//.git/objects/3b/a174d6c237d4c87575ef058d7be4fff149f811 +Moon.activity//.git/objects/44 +Moon.activity//.git/objects/44/9453d7a7f9315b6d0dcf6457132bb5f7043641 +Moon.activity//.git/objects/47 +Moon.activity//.git/objects/47/8bae4d78264288f549124a00bcf6a29d2d17ad +Moon.activity//.git/objects/54 +Moon.activity//.git/objects/54/798faab3eeb713ad4b2436d9cb337cb66ad272 +Moon.activity//.git/objects/75 +Moon.activity//.git/objects/75/c269fd2e080d9612d4411492e5d91d7358c08e +Moon.activity//.git/objects/77 +Moon.activity//.git/objects/77/06465bf12039d3fb0c27dc43792d5b959d50d9 +Moon.activity//.git/objects/81 +Moon.activity//.git/objects/81/19ac1fe0fa381c64ffdef52b191a03e66cf2ec +Moon.activity//.git/objects/91 +Moon.activity//.git/objects/91/711477b92ab79ccfc545f0854d7e06d4c2824b +Moon.activity//.git/objects/9d +Moon.activity//.git/objects/9d/edbff8a29b7757782379b98891eb7600e33c9a +Moon.activity//.git/objects/a7 +Moon.activity//.git/objects/a7/347ef8b4a9899d942a1fc72a2b40e9544f7cc7 +Moon.activity//.git/objects/b9 +Moon.activity//.git/objects/b9/94a223831874e2fd35165eb283eea4c1b7a745 +Moon.activity//.git/objects/d2 +Moon.activity//.git/objects/d2/d10c8c63bf685445a49c51598bb5cb230dca5f +Moon.activity//.git/objects/e2 +Moon.activity//.git/objects/e2/ee075b7a763e3969cbea8274488356fd9038c4 +Moon.activity//.git/objects/info +Moon.activity//.git/objects/pack +Moon.activity//.git/refs +Moon.activity//.git/refs/heads +Moon.activity//.git/refs/heads/master +Moon.activity//.git/refs/remotes +Moon.activity//.git/refs/remotes/origin +Moon.activity//.git/refs/remotes/origin/master +Moon.activity//.git/refs/tags Moon.activity//activity Moon.activity//activity/activity.info Moon.activity//activity/moon-icon.svg @@ -9,7 +80,6 @@ Moon.activity//MANIFEST Moon.activity//moon.jpg Moon.activity//moon.py Moon.activity//moon.pyc -Moon.activity//Moon.xo Moon.activity//po Moon.activity//po/moon.pot Moon.activity//po/POTFILES.in diff --git a/Moon.xo b/Moon.xo Binary files differdeleted file mode 100644 index 26ac115..0000000 --- a/Moon.xo +++ /dev/null @@ -58,7 +58,7 @@ from sugar.graphics.toolbutton import ToolButton from gettext import gettext as _ import math import time -import cPickle +import json import os IMAGE_SIZE = 726 @@ -77,7 +77,7 @@ class MoonActivity(activity.Activity): self.activityState = {} self.activityState['hemisphereView'] = self.hemisphereView self.activityState['showGrid'] = self.showGrid - self.parse_preferences(os.environ['SUGAR_ACTIVITY_ROOT'] + '/data/defaults') + self.read_and_parse_preferences(os.environ['SUGAR_ACTIVITY_ROOT'] + '/data/defaults') # Toolbox toolbox = activity.ActivityToolbox(self) @@ -144,35 +144,40 @@ class MoonActivity(activity.Activity): self.set_canvas(self.mainView) self.show_all() - def parse_preferences(self, file_path): + def read_and_parse_preferences(self, file_path): """Parse and set preference data from a given file.""" + readFile = open(file_path, 'r') try: - f = file(file_path, 'r') - self.activityState = cPickle.load(f) - f.close() - if 'hemisphereView' in self.activityState.keys(): + self.activityState = json.read(readFile.read()) + if self.activityState.has_key('hemisphereView'): self.hemisphereView = self.activityState['hemisphereView'] - if 'showGrid' in self.activityState.keys(): + if self.activityState.has_key('showGrid'): self.showGrid = self.activityState['showGrid'] - except: - print "preference data %s not available" % (file_path) + finally: + readFile.close() def read_file(self, file_path): """Read state from datastore.""" - self.parse_preferences(file_path) - print "Reading previous state from datastore." + self.read_and_parse_preferences(file_path) self.blockViewButtonsDuringUpdate() def write_file(self, file_path): """Write state to journal datastore and to persistent file system.""" self.activityState['hemisphereView'] = self.hemisphereView self.activityState['showGrid'] = self.showGrid + serialisedData = json.write(self.activityState) + toJournal = file(file_path, 'w') - cPickle.dump(self.activityState, toJournal) - toJournal.close() + try: + toJournal.write(serialisedData) + finally: + toJournal.close() + toPersistentFs = file(os.environ['SUGAR_ACTIVITY_ROOT'] + '/data/defaults', 'w') - cPickle.dump(self.activityState, toPersistentFs) - toPersistentFs.close() + try: + toPersistentFs.write(serialisedData) + finally: + toPersistentFs.close() def toggleGridClicked(self, widget): """Respond to toolbar button to hide/show grid lines.""" |