[Avida-cvs] [Avida2-svn] r223 - trunk/source/python/AvidaGui2
baerb@myxo.css.msu.edu
baerb at myxo.css.msu.edu
Fri Jul 1 12:16:44 PDT 2005
Author: baerb
Date: 2005-07-01 15:16:44 -0400 (Fri, 01 Jul 2005)
New Revision: 223
Modified:
trunk/source/python/AvidaGui2/pyFreezerCtrl.py
trunk/source/python/AvidaGui2/pyGradientScaleCtrl.py
trunk/source/python/AvidaGui2/pyLiveControlsCtrl.py
trunk/source/python/AvidaGui2/pyOnePop_GraphCtrl.py
trunk/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py
trunk/source/python/AvidaGui2/pyOnePop_StatsCtrl.py
trunk/source/python/AvidaGui2/pyOnePopulationCtrl.py
trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py
trunk/source/python/AvidaGui2/pyPetriDishCtrl.py
Log:
Fixed problem with canceling organism freeze
Start of code to do reset a run.
Modified: trunk/source/python/AvidaGui2/pyFreezerCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyFreezerCtrl.py 2005-07-01 19:01:00 UTC (rev 222)
+++ trunk/source/python/AvidaGui2/pyFreezerCtrl.py 2005-07-01 19:16:44 UTC (rev 223)
@@ -147,31 +147,10 @@
# tmp_dict["SETTINGS"] = self.Form2Dictio`nary()
m_pop_up_organism_file_name = pyFreezeOrganismCtrl()
file_name = m_pop_up_organism_file_name.showDialog(self.m_session_mdl.m_current_freezer)
- print "printing file name"
- print file_name
- # If the user is saving a full population expand the name and insert
- # the population dictionary into the temporary dictionary
-# if (m_pop_up_freezer_file_name.isEmpty() == False):
-# os.mkdir(file_name)
-
- # Copy the average and count files from the teporary output directory
- # to the Freezer directory
-
-# shutil.copyfile(os.path.join(self.m_session_mdl.m_tempdir_out, "average.dat"), os.path.join(file_name, "average.dat"))
-# shutil.copyfile(os.path.join(self.m_session_mdl.m_tempdir_out, "count.dat"), os.path.join(file_name, "count.dat"))
-# file_name = os.path.join(file_name, "petri_dish")
-# tmp_dict["POPULATION"] = population_dict
-
- freezer_file = pyWriteToFreezer(tmp_dict, file_name)
+ file_name_len = len(file_name.rstrip())
+ if (file_name_len > 0):
+ freezer_file = pyWriteToFreezer(tmp_dict, file_name)
self.m_session_mdl.m_session_mdtr.emit(
PYSIGNAL("doRefreshFreezerInventorySig"), ())
-# if send_reset_signal:
-# print "sending reset signal from pyPetriConfigureCtrl:FreezePetriSlot"
-# if send_quit_signal:
-# print "sending quit signal from pyPetriConfigureCtrl:FreezePetriSlot"
-# self.m_session_mdl.m_session_mdtr.emit(
-# PYSIGNAL("quitAvidaPhaseIISig"), ())
-
-
Modified: trunk/source/python/AvidaGui2/pyGradientScaleCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyGradientScaleCtrl.py 2005-07-01 19:01:00 UTC (rev 222)
+++ trunk/source/python/AvidaGui2/pyGradientScaleCtrl.py 2005-07-01 19:16:44 UTC (rev 223)
@@ -34,3 +34,13 @@
def avidaUpdatedSlot(self):
pass
+
+ def destruct(self):
+ print "*** called pyGradientScaleCtrl.py:destruct ***"
+ self.m_avida = None
+ self.disconnect(
+ self.m_session_mdl.m_session_mdtr, PYSIGNAL("setAvidaSig"),
+ self.setAvidaSlot)
+ self.m_session_mdl = None
+
+
Modified: trunk/source/python/AvidaGui2/pyLiveControlsCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyLiveControlsCtrl.py 2005-07-01 19:01:00 UTC (rev 222)
+++ trunk/source/python/AvidaGui2/pyLiveControlsCtrl.py 2005-07-01 19:16:44 UTC (rev 223)
@@ -60,3 +60,24 @@
def clickedStartAvidaSlot(self):
self.m_session_mdl.m_session_mdtr.emit(
PYSIGNAL("fromLiveCtrlStartAvidaSig"), ())
+
+ def destruct(self):
+ print "*** called pyLiveControlsCtrl.py:destruct ***"
+ self.m_avida = None
+ self.disconnect(
+ self.m_session_mdl.m_session_mdtr, PYSIGNAL("setAvidaSig"),
+ self.setAvidaSlot)
+ self.disconnect(
+ self.m_session_mdl.m_session_mdtr, PYSIGNAL("doPauseAvidaSig"),
+ self.doPauseAvidaSlot)
+ self.disconnect(
+ self.m_session_mdl.m_session_mdtr, PYSIGNAL("doStartAvidaSig"),
+ self.doStartAvidaSlot)
+ self.disconnect(
+ self.m_play_button, SIGNAL("clicked()"),
+ self.clickedStartAvidaSlot)
+ self.disconnect(
+ self.m_pause_button, SIGNAL("clicked()"),
+ self.clickedPauseAvidaSlot)
+ self.m_session_mdl = None
+
Modified: trunk/source/python/AvidaGui2/pyOnePop_GraphCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOnePop_GraphCtrl.py 2005-07-01 19:01:00 UTC (rev 222)
+++ trunk/source/python/AvidaGui2/pyOnePop_GraphCtrl.py 2005-07-01 19:16:44 UTC (rev 223)
@@ -153,3 +153,22 @@
filter.setOptions(QwtPlotPrintFilter.PrintAll & ~QwtPlotPrintFilter.PrintCanvasBackground)
self.m_graph_ctrl.printPlot(printer, filter)
+ def restart(self):
+ self.m_avida = None
+ self.m_combo_box.clear()
+ self.m_combo_box.setInsertionPolicy(QComboBox.AtBottom)
+ for entry in self.m_avida_stats_interface.m_entries:
+ self.m_combo_box.insertItem(entry[0])
+ self.connect(
+ self.m_combo_box, SIGNAL("activated(int)"), self.modeActivatedSlot)
+
+ self.m_x_array = zeros(2, Float)
+ self.m_y_array = zeros(2, Float)
+
+ self.m_graph_ctrl.setAxisTitle(QwtPlot.xBottom, "Time (updates)")
+ self.m_graph_ctrl.setAxisAutoScale(QwtPlot.xBottom)
+
+ # Start with second graph mode -- "Average Fitness".
+ self.m_combo_box.setCurrentItem(2)
+ self.modeActivatedSlot(self.m_combo_box.currentItem())
+
Modified: trunk/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py 2005-07-01 19:01:00 UTC (rev 222)
+++ trunk/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py 2005-07-01 19:16:44 UTC (rev 223)
@@ -15,27 +15,45 @@
self.m_session_mdl = session_mdl
self.m_avida = None
self.dishDisabled = False
+ print "*** pyOnePop_PetriDishCtrl.py:consruct about to call m_petri_dish_ctrl.construct ***"
self.m_petri_dish_ctrl.construct(self.m_session_mdl)
+ print "*** pyOnePop_PetriDishCtrl.py:consruct about to call m_gradient_scale_ctrl.construct ***"
self.m_gradient_scale_ctrl.construct(self.m_session_mdl)
+ print "*** pyOnePop_PetriDishCtrl.py:consruct about to call m_live_controls_ctrl.construct ***"
self.m_live_controls_ctrl.construct(self.m_session_mdl)
+ print "*** pyOnePop_PetriDishCtrl.py:consruct about to call m_petri_configure_ctrl.construct ***"
self.m_petri_configure_ctrl.construct(self.m_session_mdl)
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezeDishPhaseISig"), self.m_petri_dish_ctrl.extractPopulationSlot)
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezeDishPhaseISig"), self.freezeDishPhaseISlot)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("freezeDishPhaseISig"),
+ self.m_petri_dish_ctrl.extractPopulationSlot)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("freezeDishPhaseISig"), self.freezeDishPhaseISlot)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("setAvidaSig"), self.setAvidaSlot)
+ self.connect(self.m_petri_dish_toggle, SIGNAL("clicked()"),
+ self.ToggleDishSlot)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doDefrostDishSig"), self.shouldIDefrost)
+# self.connect(self.m_session_mdl.m_session_mdtr,
+# PYSIGNAL("doDefrostDishSig"), self.RenameDishSlot)
+# self.connect(self.m_session_mdl.m_session_mdtr,
+# PYSIGNAL("doDefrostDishSig"), self.MakeConfigVisiableSlot)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doDisablePetriDishSig"), self.SetDishDisabledSlot)
+ self.connect(self.m_zoom_spinbox, SIGNAL("valueChanged(int)"),
+ self.m_petri_dish_ctrl.zoomSlot)
+ self.connect(self.m_petri_dish_ctrl, PYSIGNAL("zoomSig"),
+ self.m_zoom_spinbox.setValue)
+ self.connect(self.m_mode_combobox, SIGNAL("activated(int)"),
+ self.modeActivatedSlot)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("petriDishDroppedInPopViewSig"), self.petriDropped)
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("setAvidaSig"), self.setAvidaSlot)
- self.connect(self.m_petri_dish_toggle, SIGNAL("clicked()"), self.ToggleDishSlot)
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doDefrostDishSig"), self.shouldIDefrost)
-# self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doDefrostDishSig"), self.RenameDishSlot)
-# self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doDefrostDishSig"), self.MakeConfigVisiableSlot)
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doDisablePetriDishSig"), self.SetDishDisabledSlot)
- self.connect(self.m_zoom_spinbox, SIGNAL("valueChanged(int)"), self.m_petri_dish_ctrl.zoomSlot)
- self.connect(self.m_petri_dish_ctrl, PYSIGNAL("zoomSig"), self.m_zoom_spinbox.setValue)
- self.connect(self.m_mode_combobox, SIGNAL("activated(int)"), self.modeActivatedSlot)
- self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedInPopViewSig"),
- self.petriDropped)
-
+ print "*** pyOnePop_PetriDishCtrl.py:consruct about to call m_mode_combobox.clear ***"
self.m_mode_combobox.clear()
+ print "*** pyOnePop_PetriDishCtrl.py:consruct about to call m_mode_combobox.setInsertionPolicy ***"
self.m_mode_combobox.setInsertionPolicy(QComboBox.AtBottom)
+ print "*** pyOnePop_PetriDishCtrl.py:consruct about to call pyMapProfile ***"
self.m_map_profile = pyMapProfile(self.m_session_mdl)
for i in range(self.m_map_profile.getSize()):
self.m_mode_combobox.insertItem(self.m_map_profile.getModeName(i))
@@ -44,7 +62,8 @@
self.m_mode_combobox.setCurrentItem(2)
self.m_mode_index = self.m_mode_combobox.currentItem()
self.modeActivatedSlot(self.m_mode_index)
- #self.m_petri_dish_ctrl.emit(PYSIGNAL("zoomSig"), (self.m_petri_dish_ctrl.m_initial_target_zoom,))
+ # self.m_petri_dish_ctrl.emit(PYSIGNAL("zoomSig"),
+ # (self.m_petri_dish_ctrl.m_initial_target_zoom,))
def setAvidaSlot(self, avida):
print "pyOnePop_PetriDishCtrl.setAvidaSlot() ..."
@@ -158,3 +177,39 @@
if self.isVisible():
self.RenameDishSlot(dishName)
self.MakeConfigVisiableSlot()
+
+ def restart(self, session_mdl):
+ print "pyOnePop_PetriDishCtrl.py:restart called"
+ self.dishDisabled = False
+
+ self.m_avida.destruct()
+ self.m_petri_dish_ctrl.destruct()
+ self.m_gradient_scale_ctrl.destruct()
+ self.m_live_controls_ctrl.destruct()
+ self.m_petri_configure_ctrl.destruct()
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("freezeDishPhaseISig"),
+ self.m_petri_dish_ctrl.extractPopulationSlot)
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("freezeDishPhaseISig"), self.freezeDishPhaseISlot)
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("setAvidaSig"), self.setAvidaSlot)
+ self.disconnect(self.m_petri_dish_toggle, SIGNAL("clicked()"),
+ self.ToggleDishSlot)
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doDefrostDishSig"), self.shouldIDefrost)
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doDisablePetriDishSig"), self.SetDishDisabledSlot)
+ self.disconnect(self.m_zoom_spinbox, SIGNAL("valueChanged(int)"),
+ self.m_petri_dish_ctrl.zoomSlot)
+ self.disconnect(self.m_petri_dish_ctrl, PYSIGNAL("zoomSig"),
+ self.m_zoom_spinbox.setValue)
+ self.disconnect(self.m_mode_combobox, SIGNAL("activated(int)"),
+ self.modeActivatedSlot)
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("petriDishDroppedInPopViewSig"), self.petriDropped)
+ self.m_mode_index = None
+ self.m_session_mdl = None
+ self.m_avida = None
+ print "*** pyOnePop_PetriDishCtrl.py:restartPopulationSlot about to call se.f.construct ***"
+ self.construct(session_mdl)
Modified: trunk/source/python/AvidaGui2/pyOnePop_StatsCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOnePop_StatsCtrl.py 2005-07-01 19:01:00 UTC (rev 222)
+++ trunk/source/python/AvidaGui2/pyOnePop_StatsCtrl.py 2005-07-01 19:16:44 UTC (rev 223)
@@ -11,7 +11,7 @@
def __init__(self,parent = None,name = None,fl = 0):
pyOnePop_StatsView.__init__(self,parent,name,fl)
-
+
def construct(self, session_mdl):
self.m_session_mdl = session_mdl
self.m_avida = None
@@ -22,9 +22,11 @@
self.connect(
self.m_session_mdl.m_session_mdtr, PYSIGNAL("orgClickedOnSig"),
self.updateOrgReportSlot)
- self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedInPopViewSig"),
+ self.connect( self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("petriDishDroppedInPopViewSig"),
self.petriDropped)
- self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezerItemDoubleClickedOnInOnePopSig"),
+ self.connect( self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("freezerItemDoubleClickedOnInOnePopSig"),
self.freezerItemDoubleClickedOn)
self.m_clicked_cell_number = -99
@@ -162,15 +164,16 @@
- def updateOrgReportSlot(self, clicked_cell_item):
+ def updateOrgReportSlot(self, clicked_cell_item = None):
self.m_clicked_cell_item = clicked_cell_item
if clicked_cell_item:
clicked_cell_num = clicked_cell_item.m_population_cell.GetID()
- if clicked_cell_item:
self.m_clicked_cell_number = clicked_cell_num
if clicked_cell_item is None or not self.m_avida.m_population.GetCell(int(clicked_cell_num)).IsOccupied():
- #PAINT the stats fields empty
+
+ # PAINT the stats fields empty
+
self.m_org_name.setText('empty cell')
self.m_org_fitness.setText('-')
self.m_org_merit.setText('-')
@@ -349,6 +352,22 @@
else:
return
-
-
-
+ def restart(self):
+ self.m_avida = None
+ self.m_clicked_cell_number = -99
+ self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("orgClickedOnSig"),())
+ self.m_avg_fitness.setText("-")
+ self.m_num_orgs.setText("-")
+ self.m_avg_gest.setText("-")
+ self.m_avg_merit.setText("-")
+ self.m_avg_age.setText("-")
+ self.m_avg_genome_length.setText("-")
+ self.m_num_not.setText("-")
+ self.m_num_nand.setText("-")
+ self.m_num_and.setText("-")
+ self.m_num_ornot.setText("-")
+ self.m_num_or.setText("-")
+ self.m_num_andnot.setText("-")
+ self.m_num_nor.setText("-")
+ self.m_num_xor.setText("-")
+ self.m_num_equals.setText("-")
Modified: trunk/source/python/AvidaGui2/pyOnePopulationCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOnePopulationCtrl.py 2005-07-01 19:01:00 UTC (rev 222)
+++ trunk/source/python/AvidaGui2/pyOnePopulationCtrl.py 2005-07-01 19:16:44 UTC (rev 223)
@@ -17,12 +17,17 @@
self.m_one_pop_stats_ctrl.construct(self.m_session_mdl)
self.m_one_pop_timeline_ctrl.hide()
self.connect( self, PYSIGNAL("petriDishDroppedInPopViewSig"),
- self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedInPopViewSig"))
+ self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("petriDishDroppedInPopViewSig"))
self.connect( self, PYSIGNAL("freezerItemDoubleClickedOnInOnePopSig"),
- self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezerItemDoubleClickedOnInOnePopSig"))
- self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezerItemDoubleClicked"),
- self.freezerItemDoubleClicked)
+ self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("freezerItemDoubleClickedOnInOnePopSig"))
+ self.connect( self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("freezerItemDoubleClicked"), self.freezerItemDoubleClicked)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("restartPopulationSig"), self.restartPopulationSlot)
+
def dropEvent( self, e ):
freezer_item_name = QString()
print "dropEvent in one population"
@@ -33,7 +38,16 @@
self.emit(PYSIGNAL("petriDishDroppedInPopViewSig"), (e,))
def freezerItemDoubleClicked(self, freezer_item_name):
- if self.isVisible():
- self.emit(PYSIGNAL("freezerItemDoubleClickedOnInOnePopSig"), (freezer_item_name,))
+ if self.isVisible():
+ self.emit(PYSIGNAL("freezerItemDoubleClickedOnInOnePopSig"),
+ (freezer_item_name,))
-
\ No newline at end of file
+ def restartPopulationSlot(self, session_mdl):
+ print "pyOnePopulationCtrl.py:restartPopulationSlot called"
+ self.m_one_pop_petri_dish_ctrl.restart(self.m_session_mdl)
+ self.m_one_pop_graph_ctrl.restart()
+ self.m_one_pop_stats_ctrl.restart()
+ session_mdl.m_session_mdtr.emit(PYSIGNAL("doStartAvidaSig"), ())
+
+
+
Modified: trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py 2005-07-01 19:01:00 UTC (rev 222)
+++ trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py 2005-07-01 19:16:44 UTC (rev 223)
@@ -52,22 +52,69 @@
self.ChangeStopSpinBoxSlot)
self.connect(self.SavePetriPushButton, SIGNAL("clicked()"),
self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezeDishPhaseISig"))
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezeDishPhaseIISig"),
- self.FreezePetriSlot)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("freezeDishPhaseIISig"), self.FreezePetriSlot)
self.connect(self.m_session_mdl.m_session_mdtr,
PYSIGNAL("doDefrostDishSig"), self.FillDishSlot)
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doInitializeAvidaPhaseISig"),
- self.DisablePetriConfigureSlot)
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doInitializeAvidaPhaseISig"),
- self.CreateFilesFromPetriSlot)
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("setAvidaSig"), self.setAvidaSlot)
- self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doInitializeAvidaPhaseIISig"),
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doInitializeAvidaPhaseISig"), self.DisablePetriConfigureSlot)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doInitializeAvidaPhaseISig"), self.CreateFilesFromPetriSlot)
+ self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("setAvidaSig"),
+ self.setAvidaSlot)
+ self.connect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doInitializeAvidaPhaseIISig"),
self.doLoadPetriDishConfigFileSlot)
- self.connect( self, PYSIGNAL("petriDishDroppedInPopViewSig"), self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedInPopViewSig"))
+ self.connect( self, PYSIGNAL("petriDishDroppedInPopViewSig"),
+ self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("petriDishDroppedInPopViewSig"))
self.ChangeMutationTextSlot()
self.ChangeWorldSizeTextSlot()
self.populated = False
+
+ def destruct(self):
+ self.m_session_petri_view = None
+ self.m_avida = None
+ self.full_petri_dict = {}
+ self.DishDisabled = False
+ self.disconnect(self.MutationSlider, SIGNAL("valueChanged(int)"),
+ self.ChangeMutationTextSlot)
+ self.disconnect(self.WorldSizeSlider, SIGNAL("valueChanged(int)"),
+ self.ChangeWorldSizeTextSlot)
+ self.disconnect(self.DieYesButton, SIGNAL("clicked()"),
+ self.ChangeDeathTextSlot)
+ self.disconnect(self.DieNoButton, SIGNAL("clicked()"),
+ self.ChangeDeathTextSlot)
+ self.disconnect(self.RadomGeneratedRadioButton, SIGNAL("clicked()"),
+ self.ChangeRandomSpinBoxSlot)
+ self.disconnect(self.RandomFixedRadioButton, SIGNAL("clicked()"),
+ self.ChangeRandomSpinBoxSlot)
+ self.disconnect(self.StopManuallyRadioButton, SIGNAL("clicked()"),
+ self.ChangeStopSpinBoxSlot)
+ self.disconnect(self.StopAtRadioButton, SIGNAL("clicked()"),
+ self.ChangeStopSpinBoxSlot)
+ self.disconnect(self.SavePetriPushButton, SIGNAL("clicked()"),
+ self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezeDishPhaseISig"))
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("freezeDishPhaseIISig"), self.FreezePetriSlot)
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doDefrostDishSig"), self.FillDishSlot)
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doInitializeAvidaPhaseISig"), self.DisablePetriConfigureSlot)
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doInitializeAvidaPhaseISig"), self.CreateFilesFromPetriSlot)
+ self.disconnect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("setAvidaSig"),
+ self.setAvidaSlot)
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("doInitializeAvidaPhaseIISig"),
+ self.doLoadPetriDishConfigFileSlot)
+ self.disconnect( self, PYSIGNAL("petriDishDroppedInPopViewSig"),
+ self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("petriDishDroppedInPopViewSig"))
+ self.populated = False
+ self.m_session_mdl = None
+
def ChangeMutationTextSlot(self):
slide_value = float(self.MutationSlider.value())/100.0
slide_value = pow(10,slide_value)
@@ -116,7 +163,8 @@
# the existing dish
if self.DishDisabled:
- self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("freezeDishPhaseISig"),())
+ self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("freezeDishPhaseISig"),
+ (True, False, ))
return
self.full_petri_dict = petri_dict.dictionary
settings_dict = petri_dict.dictionary["SETTINGS"]
@@ -304,7 +352,7 @@
shutil.copyfile(tmp_count_file, os.path.join(file_name, "count.dat"))
file_name = os.path.join(file_name, "petri_dish")
tmp_dict["POPULATION"] = population_dict
- freezer_file = pyWriteToFreezer(tmp_dict, is_empty_dish, file_name)
+ freezer_file = pyWriteToFreezer(tmp_dict, file_name)
if (is_empty_dish):
self.m_session_mdl.saved_empty_dish = True
else:
@@ -314,6 +362,8 @@
PYSIGNAL("doRefreshFreezerInventorySig"), ())
if send_reset_signal:
print "sending reset signal from pyPetriConfigureCtrl:FreezePetriSlot"
+ self.m_session_mdl.m_session_mdtr.emit(
+ PYSIGNAL("restartPopulationSig"), (self.m_session_mdl, ))
# If the send_quit_signal flag was sent to this routine kill the application
# (Instead of killing the application directly a signal should be sent
Modified: trunk/source/python/AvidaGui2/pyPetriDishCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyPetriDishCtrl.py 2005-07-01 19:01:00 UTC (rev 222)
+++ trunk/source/python/AvidaGui2/pyPetriDishCtrl.py 2005-07-01 19:16:44 UTC (rev 223)
@@ -63,6 +63,26 @@
self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("orgClickedOnSig"),
self.setDragSlot)
+ def destruct(self):
+ self.m_avida = None
+ self.m_canvas = None
+ self.m_cell_info = None
+ self.m_changed_cell_items = []
+ self.m_indexer = None
+ self.m_color_lookup_functor = None
+ self.m_background_rect = None
+ self.m_change_list = None
+ self.m_org_clicked_on_item = None
+ self.m_occupied_cells_ids = []
+ self.m_petri_dish_layout = None
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("setAvidaSig"), self.setAvidaSlot)
+ self.disconnect(self.m_canvas_view, PYSIGNAL("orgClickedOnSig"),
+ self.m_session_mdl.m_session_mdtr, PYSIGNAL("orgClickedOnSig"))
+ self.disconnect(self.m_session_mdl.m_session_mdtr,
+ PYSIGNAL("orgClickedOnSig"), self.updateOrgClickedOutlineCellNumberSlot)
+ self.m_canvas_view = None
+ self.m_session_mdl = None
def setColorLookupFunctor(self, color_lookup_functor):
self.m_color_lookup_functor = color_lookup_functor
@@ -143,7 +163,7 @@
def setIndexer(self, indexer):
self.m_indexer = indexer
- def updateOrgClickedOutlineCellNumberSlot(self, org_clicked_on_item):
+ def updateOrgClickedOutlineCellNumberSlot(self, org_clicked_on_item = None):
if self.m_org_clicked_on_item:
self.m_org_clicked_on_item.setPen(QPen(Qt.NoPen))
self.m_org_clicked_on_item = org_clicked_on_item
More information about the Avida-cvs
mailing list