Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/page.py
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2012-12-28 16:37:02 (GMT)
committer Walter Bender <walter.bender@gmail.com>2012-12-28 16:37:02 (GMT)
commit443a61957281ef524714545eb0084a9af49c7e23 (patch)
treeaebf9315443f87ad21480ef33f4ed27e4a03f1ba /page.py
parentfb1742f33a73a3f956f69d4bdd43c81ab064c919 (diff)
remove timeouts when changing modes
Diffstat (limited to 'page.py')
-rw-r--r--page.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/page.py b/page.py
index fda415a..c9aa8b3 100644
--- a/page.py
+++ b/page.py
@@ -88,12 +88,15 @@ class Page():
self._pictures = []
self._press = None
self._release = None
+ self.timeout = None
self.load_level(os.path.join(self._lessons_path, 'alphabet' + '.csv'))
self.new_page()
def new_page(self, cardtype='alpha'):
''' Load a page of cards '''
+ if self.timeout is not None:
+ gobject.source_remove(self._page.timeout)
self._hide_cards()
if cardtype == 'alpha':
self._alpha_cards()
@@ -183,7 +186,9 @@ class Page():
self._activity.status.set_text(
_('Click on the card that corresponds to the sound.'))
self.target = int(uniform(0, len(self._cards)))
- gobject.timeout_add(1000, self._play_target_sound)
+ if self.timeout is not None:
+ gobject.source_remove(self.timeout)
+ self.timeout = gobject.timeout_add(1000, self._play_target_sound)
def _play_target_sound(self):
if self._activity.mode == 'find by letter':
@@ -194,6 +199,7 @@ class Page():
play_audio_from_file(self, os.path.join(
self._sounds_path,
self._media_data[self.target][0]))
+ self.timeout = None
def _button_press_cb(self, win, event):
''' Either a card or list entry was pressed. '''
@@ -222,7 +228,9 @@ class Page():
elif self._activity.mode in ['find by letter', 'find by word']:
if self.current_card == self.target:
self._activity.status.set_text(_('Very good!'))
- gobject.timeout_add(1000, self.new_target)
+ if self.timeout is not None:
+ gobject.source_remove(self.timeout)
+ self.timeout = gobject.timeout_add(1000, self.new_target)
else:
self._activity.status.set_text(_('Please try again.'))
self._play_target_sound()