diff options
author | Nostalghia <b.vehikel@googlemail.com> | 2010-05-19 16:28:29 (GMT) |
---|---|---|
committer | Nostalghia <b.vehikel@googlemail.com> | 2010-05-19 16:28:29 (GMT) |
commit | 8394595622cbeb9894da9e83fd3dadacd6266cf6 (patch) | |
tree | d77a62a9916a3e5349a824d30ea7d49bc5d64f74 | |
parent | 536028c401e4a4fa8aa8815edb661d3faf5f6dcc (diff) |
Temporarily deactivating the "breed" and "random" button to avoid system overload.
-rw-r--r-- | ka_controller.py | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/ka_controller.py b/ka_controller.py index 93ebab6..21ad7bc 100644 --- a/ka_controller.py +++ b/ka_controller.py @@ -48,6 +48,7 @@ class KandidController(object): self.surface_cache = {} self._status = ka_status.Status.instance() self._gencount = 0 + self._task_lock = -1 # create data model self.model = model_population.KandidModel(POPULATION_CAPACITY) @@ -114,7 +115,7 @@ class KandidController(object): events[key] = self.on_incoming_popup self._widget_tree.signal_autoconnect(events) self.incoming.autoconnect_events() - gobject.timeout_add(100, self.on_timer) + gobject.timeout_add(1000, self.on_timer) def _update_model(self, in_model): if in_model: @@ -133,12 +134,15 @@ class KandidController(object): # update flurry self._widget_tree.get_widget('flurrySpinButton'). \ set_value(self.model.flurry_rate) + self._update_generate_buttons() + + def _update_generate_buttons(self): # update buttons - dummy, moderate, poor = self.model.classify() -#TODO 'breed' und 'random' deaktivieren solange Tasks laufen -# is_sensitive = ka_task.GeneratorTask.is_completed() \ -# and len(poor) > 0 and len(moderate) > 0 - is_sensitive = len(poor) > 0 and len(moderate) > 0 + is_sensitive = ka_task.GeneratorTask.is_completed() + if is_sensitive: + dummy, moderate, poor = self.model.classify() + is_sensitive = len(poor) > 0 and len(moderate) > 0 + ka_debug.info('_update_generate_buttons %s' % is_sensitive) self._widget_tree.get_widget('breedGenerationButton'). \ set_sensitive(is_sensitive) self._widget_tree.get_widget('randomGenerationButton'). \ @@ -218,6 +222,20 @@ class KandidController(object): def on_timer(self, *args): if self._start_from_scratch: self._start_from_scratch = False + compl = ka_task.GeneratorTask.is_completed() + if self._task_lock == -1: + ka_debug.info('on_timer %s %u' % (compl, self._task_lock)) + self._update_generate_buttons() + self._task_lock = 0 if compl else 1 + elif self._task_lock == 1: + ka_debug.info('on_timer %s %u' % (compl, self._task_lock)) + self._update_generate_buttons() + self._task_lock = 0 if compl else 1 + elif self._task_lock == 0 and not compl: + ka_debug.info('on_timer %s %u' % (compl, self._task_lock)) + self._update_generate_buttons() + self._task_lock = 1 + return True def start_all_calculations(self): self._start_from_scratch = False |