Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-10-11 13:45:14 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-10-11 13:45:14 (GMT)
commit0e5fe6ef272e8ec78400e8473967d9e67a9935ef (patch)
tree43b314da653a4dc98e1f11cb9754e9998e2305e5
parent5d9c9237195a036152988bca52dc3e4743b74d68 (diff)
restrict conditions for calling dec2frac as it is too slow for small numbersv25
-rw-r--r--abacus_window.py45
1 files changed, 31 insertions, 14 deletions
diff --git a/abacus_window.py b/abacus_window.py
index 4529c15..02fd27b 100644
--- a/abacus_window.py
+++ b/abacus_window.py
@@ -548,14 +548,13 @@ class Rod():
# _logger.debug('bead not found')
return False
- b = i % (self.top_beads + self.bot_beads)
- if b < self.top_beads:
+ if i < self.top_beads:
if dy > 0 and bead.get_state() == 0:
if self.fade and bead.max_fade_level > 0:
bead.set_color(self.white_beads[3])
bead.move_down()
# Make sure beads below this bead are also moved.
- for ii in range(self.top_beads - b):
+ for ii in range(self.top_beads - i):
if self.beads[i + ii].state == 0:
if self.fade and bead.max_fade_level > 0:
self.beads[i + ii].set_color(self.white_beads[3])
@@ -565,7 +564,7 @@ class Rod():
bead.set_color(self.white_beads[3])
bead.move_up()
# Make sure beads above this bead are also moved.
- for ii in range(b + 1):
+ for ii in range(i + 1):
if self.beads[i - ii].state == 1:
if self.fade and bead.max_fade_level > 0:
self.beads[i - ii].set_color(self.white_beads[3])
@@ -576,7 +575,7 @@ class Rod():
bead.set_color(self.white_beads[3])
bead.move_up()
# Make sure beads above this bead are also moved.
- for ii in range(b - self.top_beads + 1):
+ for ii in range(i - self.top_beads + 1):
if self.beads[i - ii].state == 0:
if self.fade and bead.max_fade_level > 0:
self.beads[i - ii].set_color(self.white_beads[3])
@@ -585,7 +584,7 @@ class Rod():
if self.fade and bead.max_fade_level > 0:
bead.set_color(self.white_beads[3])
bead.move_up()
- for ii in range(b - self.top_beads + 1):
+ for ii in range(i - self.top_beads + 1):
if self.beads[i - ii].state == -1:
if self.fade and bead.max_fade_level > 0:
self.beads[i - ii].set_color(self.white_beads[3])
@@ -595,7 +594,7 @@ class Rod():
bead.set_color(self.white_beads[3])
bead.move_down()
# Make sure beads below this bead are also moved.
- for ii in range(self.top_beads + self.bot_beads - b):
+ for ii in range(self.top_beads + self.bot_beads - i):
if self.beads[i + ii].state == 1:
if self.fade and bead.max_fade_level > 0:
self.beads[i + ii].set_color(self.white_beads[3])
@@ -605,7 +604,7 @@ class Rod():
bead.set_color(self.white_beads[3])
bead.move_down()
# Make sure beads below this bead are also moved.
- for ii in range(self.top_beads + self.bot_beads - b):
+ for ii in range(self.top_beads + self.bot_beads - i):
if self.beads[i + ii].state == 0:
if self.fade and bead.max_fade_level > 0:
self.beads[i + ii].set_color(self.white_beads[3])
@@ -859,14 +858,20 @@ class Abacus():
multiple_rods = False
for x in self.mode.get_rod_values():
if x > 0:
- rod_value = dec2frac(x)
+ if x > 0.005:
+ rod_value = dec2frac(x)
+ else:
+ rod_value = str(x)
if rod_sums == '':
rod_sums = rod_value
else:
multiple_rods = True
rod_sums += ' + %s' % (rod_value)
elif x < 0:
- rod_value = dec2frac(-x)
+ if x < 0.005:
+ rod_value = dec2frac(-x)
+ else:
+ rod_value = str(-x)
if rod_sums == '':
rod_sums = '–%s' % (rod_value)
else:
@@ -882,16 +887,28 @@ class Abacus():
whole = int(floor(abacus_value))
fraction = abacus_value - whole
if whole == 0:
- value = dec2frac(fraction)
+ if fraction > 0.005:
+ value = dec2frac(fraction)
+ else:
+ value = str(fraction)
else:
- value = '%d %s' % (whole, dec2frac(fraction))
+ if fraction > 0.005:
+ value = '%d %s' % (whole, dec2frac(fraction))
+ else:
+ value = '%d %s' % (whole, str(fraction))
else:
whole = int(ceil(abacus_value))
fraction = abacus_value - whole
if whole == 0:
- value = '–%s' % (dec2frac(-fraction))
+ if fraction < 0.005:
+ value = '–%s' % (dec2frac(-fraction))
+ else:
+ value = '–%s' % (str(-fraction))
else:
- value = '–%d %s' % (-whole, dec2frac(-fraction))
+ if fraction < 0.005:
+ value = '–%d %s' % (-whole, dec2frac(-fraction))
+ else:
+ value = '–%d %s' % (-whole, str(-fraction))
if value == '' or value == '–':
value = '0'
if multiple_rods and not sum_only: