[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