[Avida-SVN] r1657 - branches/developers/avida-edward/source/python/AvidaGui2
kaben at myxo.css.msu.edu
kaben at myxo.css.msu.edu
Fri Jun 8 06:33:44 PDT 2007
Author: kaben
Date: 2007-06-08 09:33:44 -0400 (Fri, 08 Jun 2007)
New Revision: 1657
Modified:
branches/developers/avida-edward/source/python/AvidaGui2/
branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_startup.py
branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_startup_utils.py
branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismScopeCtrl.py
Log:
r1601 at clearly: kaben | 2007-05-25 23:42:24 -0400
Fix bug where Avida-ED becomes nonresponsive if population dies and you
try to use organism viewer.
Property changes on: branches/developers/avida-edward/source/python/AvidaGui2
___________________________________________________________________
Name: svk:merge
+ ef7795d3-e11b-4b79-8bcc-31c36a5bb0b4:/local/branches/developers/avida-edward/source/python/AvidaGui2:1601
Modified: branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_startup.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_startup.py 2007-06-07 20:56:32 UTC (rev 1656)
+++ branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_startup.py 2007-06-08 13:33:44 UTC (rev 1657)
@@ -12,6 +12,10 @@
def Interactive():
import IPython
import __builtin__
- ipython_shell = IPython.Shell.IPShell(argv=["-c", "import iqt; import AvidaGui2; from AvidaGui2.Avida_ED_startup_utils import *; AvidaCore.cConfig.InitGroupList(); avida_ed = AvidaEd();"])
+
+ startup_sequence = "import iqt; import AvidaGui2; from AvidaGui2.Avida_ED_startup_utils import *; AvidaCore.cConfig.InitGroupList(); avida_ed = AvidaEd();"
+ #startup_sequence = "import iqt; import AvidaGui2; from AvidaGui2.Avida_ED_startup_utils import *; AvidaCore.cConfig.InitGroupList();"
+
+ ipython_shell = IPython.Shell.IPShell(argv=["-c", startup_sequence])
ipython_shell.mainloop()
Modified: branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_startup_utils.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_startup_utils.py 2007-06-07 20:56:32 UTC (rev 1656)
+++ branches/developers/avida-edward/source/python/AvidaGui2/Avida_ED_startup_utils.py 2007-06-08 13:33:44 UTC (rev 1657)
@@ -100,3 +100,25 @@
"""
return edu_main_controller
+
+
+# Instantiate (or reinstantiate) the Avida-ED gui. Return controller for
+# new gui instance.
+#
+def AvidaEdDriverRefactor():
+ sys.exc_clear()
+ sys.exc_traceback = sys.last_traceback = None
+ s_splash.message("Loading Avida-ED user-interface ...")
+ s_splash.show()
+
+ try:
+ Reload()
+ from AvidaGui2.pyEduMainCtrl import pyEduMainCtrl
+ s_splash.message("Driver- Refactor Test...")
+
+ finally:
+ s_splash.clear()
+ s_splash.hide()
+
+ return
+
Modified: branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismScopeCtrl.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismScopeCtrl.py 2007-06-07 20:56:32 UTC (rev 1656)
+++ branches/developers/avida-edward/source/python/AvidaGui2/pyOrganismScopeCtrl.py 2007-06-08 13:33:44 UTC (rev 1657)
@@ -180,15 +180,21 @@
# If and Avida population is running, pause it.
is_avida_updating = self.m_avida.shouldUpdate()
- if is_avida_updating:
+ is_avida_alive = False
+ if self.m_avida.m_population:
+ if 0 < self.m_avida.m_population.GetNumOrganisms():
+ is_avida_alive = True
+ if is_avida_updating and is_avida_alive:
+ self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("doPauseAvidaSig"), ())
self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("statusBarMessageSig"), ("Pausing Avida...",))
- self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("doPauseAvidaSig"), ())
+
progress_callback = ProgressCallback(self.m_session_mdl.m_session_mdtr)
# Give the user something to watch while we wait for Avida population
# to pause. Calling the progress callback also causes the gui to
# process pending events, so the gui doesn't completely lock-up.
while self.m_avida.isUpdating():
progress_callback(0)
+
progress_callback.clear()
# Save random number generator state.
@@ -241,7 +247,7 @@
cTools.globalRandom().Clone(random_number_generator_state)
# If we paused a running population, restart it.
- if is_avida_updating:
+ if is_avida_updating and is_avida_alive:
self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("doStartAvidaSig"), ())
self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("statusBarMessageSig"), ("Unpaused Avida after organism analysis.",))
More information about the Avida-cvs
mailing list