Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGary Martin <gary@garycmartin.com>2008-03-16 16:30:00 (GMT)
committer Gary Martin <gary@garycmartin.com>2008-03-16 16:30:00 (GMT)
commit611c8916102d285b1f539a67dde7f862e48b3db7 (patch)
tree5f1998470f48006ea746b9e9f2b4efaf042b9884
parent9dedbff8a29b7757782379b98891eb7600e33c9a (diff)
Switched from cPickle to json storage for preferences.
-rw-r--r--MANIFEST72
-rw-r--r--Moon.xobin95669 -> 0 bytes
-rwxr-xr-xmoon.py37
3 files changed, 92 insertions, 17 deletions
diff --git a/MANIFEST b/MANIFEST
index 2370fd4..c668665 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -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
deleted file mode 100644
index 26ac115..0000000
--- a/Moon.xo
+++ /dev/null
Binary files differ
diff --git a/moon.py b/moon.py
index 54798fa..fa8b166 100755
--- a/moon.py
+++ b/moon.py
@@ -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."""