Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/FractionBounceActivity.py
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-10-07 17:03:33 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-10-07 17:03:33 (GMT)
commit3416a1e2a5491de5ccf4d74b5e81b6765a4fc1fd (patch)
tree366a8b2df9700597ae1d06f95e3e86b0ce3a6944 /FractionBounceActivity.py
parentfc60fada38152a8e20bb436ca6cd835e0f34dbb5 (diff)
add support for custom fractions
Diffstat (limited to 'FractionBounceActivity.py')
-rw-r--r--FractionBounceActivity.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/FractionBounceActivity.py b/FractionBounceActivity.py
index 193af44..eb91385 100644
--- a/FractionBounceActivity.py
+++ b/FractionBounceActivity.py
@@ -170,9 +170,22 @@ class FractionBounceActivity(activity.Activity):
canvas.show()
self.show_all()
+ # Read any custom fractions from the project metadata
+ if 'custom' in self.metadata:
+ custom = self.metadata['custom']
+ else:
+ custom = None
+
# Initialize the canvas
self.bounce_window = Bounce(canvas, activity.get_bundle_path(), self)
+ # Restore any custom fractions
+ if custom is not None:
+ _logger.debug('Restoring custom data: %s', custom)
+ fractions = custom.split(',')
+ for f in fractions:
+ self.bounce_window.add_fraction(f)
+
def _load_standard_buttons(self, toolbar):
''' Load buttons onto whichever toolbar we are using '''
self.fraction_button = _radio_factory('fraction', toolbar,
@@ -211,7 +224,6 @@ class FractionBounceActivity(activity.Activity):
def _add_fraction_cb(self, arg=None):
''' Read entries and add a fraction to the list '''
- # To do: save to Journal
try:
numerator = int(self.numerator.get_text().strip())
except ValueError:
@@ -228,6 +240,11 @@ class FractionBounceActivity(activity.Activity):
numerator = 0
if numerator > 0 and denominator > 1:
self.bounce_window.add_fraction('%d/%d' % (numerator, denominator))
+ if 'custom' in self.metadata: # Save to Journal
+ self.metadata['custom'] = '%s,%d/%d' % (
+ self.metadata['custom'], numerator, denominator)
+ else:
+ self.metadata['custom'] = '%d/%d' % (numerator, denominator)
def reset_label(self, fraction):
''' update the challenge label '''