[Avida-cvs] [avida-svn] r456 - branches/developers/avida-edward/source/python/AvidaGui2
baerb@myxo.css.msu.edu
baerb at myxo.css.msu.edu
Wed Feb 1 06:51:19 PST 2006
Author: baerb
Date: 2006-02-01 09:51:19 -0500 (Wed, 01 Feb 2006)
New Revision: 456
Modified:
branches/developers/avida-edward/source/python/AvidaGui2/pyPetriConfigureCtrl.py
branches/developers/avida-edward/source/python/AvidaGui2/pyPetriConfigureView.ui
Log:
Changed interface to allow users to chose which tasks are to be rewarded
(no changes actuall occur in the runs)
Changed interface so users no longer can chose the death method. Now death
always occur when the Avidians reach 20 * genolength.
Changed interface so that when the run is going on the title to the petri dish
configuration indicates that the user can't change settings.
Modified: branches/developers/avida-edward/source/python/AvidaGui2/pyPetriConfigureCtrl.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/pyPetriConfigureCtrl.py 2006-02-01 14:45:48 UTC (rev 455)
+++ branches/developers/avida-edward/source/python/AvidaGui2/pyPetriConfigureCtrl.py 2006-02-01 14:51:19 UTC (rev 456)
@@ -40,10 +40,10 @@
self.ChangeMutationTextSlot)
self.connect(self.WorldSizeSlider, SIGNAL("valueChanged(int)"),
self.ChangeWorldSizeTextSlot)
- self.connect(self.DieYesButton, SIGNAL("clicked()"),
- self.ChangeDeathTextSlot)
- self.connect(self.DieNoButton, SIGNAL("clicked()"),
- self.ChangeDeathTextSlot)
+ self.connect(self.RewardNonePushButton, SIGNAL("clicked()"),
+ self.RewardNoneSlot)
+ self.connect(self.RewardAllPushButton, SIGNAL("clicked()"),
+ self.RewardAllSlot)
self.connect(self.RadomGeneratedRadioButton, SIGNAL("clicked()"),
self.ChangeRandomSpinBoxSlot)
self.connect(self.RandomFixedRadioButton, SIGNAL("clicked()"),
@@ -90,10 +90,10 @@
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.RewardAllPushButton, SIGNAL("clicked()"),
+ self.RewardAllSlot)
+ self.disconnect(self.RewordNonePushButton, SIGNAL("clicked()"),
+ self.RewardNoneSlot)
self.disconnect(self.RadomGeneratedRadioButton, SIGNAL("clicked()"),
self.ChangeRandomSpinBoxSlot)
self.disconnect(self.RandomFixedRadioButton, SIGNAL("clicked()"),
@@ -146,16 +146,28 @@
slide_value_txt = slide_value + " x " + slide_value + " cells"
self.WorldSizeTextLabel.setText(slide_value_txt)
- def ChangeDeathTextSlot(self):
- if self.DieYesButton.isChecked() == False:
- self.DeathTextLabel2.setEnabled(False)
- self.DeathTextLabel3.setEnabled(False)
- self.LifeSpanSpinBox.setEnabled(False)
- else:
- self.DeathTextLabel2.setEnabled(True)
- self.DeathTextLabel3.setEnabled(True)
- self.LifeSpanSpinBox.setEnabled(True)
+ def RewardAllSlot(self):
+ self.NotCheckBox.setChecked(True)
+ self.NandCheckBox.setChecked(True)
+ self.AndCheckBox.setChecked(True)
+ self.OrnCheckBox.setChecked(True)
+ self.OrCheckBox.setChecked(True)
+ self.AndnCheckBox.setChecked(True)
+ self.NorCheckBox.setChecked(True)
+ self.XorCheckBox.setChecked(True)
+ self.EquCheckBox.setChecked(True)
+ def RewardNoneSlot(self):
+ self.NotCheckBox.setChecked(False)
+ self.NandCheckBox.setChecked(False)
+ self.AndCheckBox.setChecked(False)
+ self.OrnCheckBox.setChecked(False)
+ self.OrCheckBox.setChecked(False)
+ self.AndnCheckBox.setChecked(False)
+ self.NorCheckBox.setChecked(False)
+ self.XorCheckBox.setChecked(False)
+ self.EquCheckBox.setChecked(False)
+
def ChangeRandomSpinBoxSlot(self):
if self.RadomGeneratedRadioButton.isChecked() == True:
self.RandomSpinBox.setEnabled(False)
@@ -214,26 +226,52 @@
else:
self.LocalBirthRadioButton.setChecked(False)
self.MassActionRadioButton.setChecked(True)
- self.LifeSpanSpinBox.setValue(int(settings_dict["AGE_LIMIT"]))
- if int(settings_dict["DEATH_METHOD"]) == 0:
- self.DieNoButton.setChecked(True)
- self.DieYesButton.setChecked(False)
- self.DeathTextLabel2.setEnabled(False)
- self.DeathTextLabel3.setEnabled(False)
- self.LifeSpanSpinBox.setEnabled(False)
+
+ print "BDB REWARD_NOT = |" + settings_dict["REWARD_NOT"] + "|"
+ if settings_dict["REWARD_NOT"] == "YES":
+ self.NotCheckBox.setChecked(True)
else:
- self.DieNoButton.setChecked(False)
- self.DieYesButton.setChecked(True)
- self.DeathTextLabel2.setEnabled(True)
- self.DeathTextLabel3.setEnabled(True)
- self.LifeSpanSpinBox.setEnabled(True)
+ self.NotCheckBox.setChecked(False)
+ if settings_dict["REWARD_NAND"] == "YES":
+ self.NandCheckBox.setChecked(True)
+ else:
+ self.NandCheckBox.setChecked(False)
+ if settings_dict["REWARD_AND"] == "YES":
+ self.AndCheckBox.setChecked(True)
+ else:
+ self.AndCheckBox.setChecked(False)
+ if settings_dict["REWARD_ORN"] == "YES":
+ self.OrnCheckBox.setChecked(True)
+ else:
+ self.OrnCheckBox.setChecked(False)
+ if settings_dict["REWARD_OR"] == "YES":
+ self.OrCheckBox.setChecked(True)
+ else:
+ self.OrCheckBox.setChecked(False)
+ if settings_dict["REWARD_ANDN"] == "YES":
+ self.AndnCheckBox.setChecked(True)
+ else:
+ self.AndnCheckBox.setChecked(False)
+ if settings_dict["REWARD_NOR"] == "YES":
+ self.NorCheckBox.setChecked(True)
+ else:
+ self.NorCheckBox.setChecked(False)
+ if settings_dict["REWARD_XOR"] == "YES":
+ self.XorCheckBox.setChecked(True)
+ else:
+ self.XorCheckBox.setChecked(False)
+ if settings_dict["REWARD_EQU"] == "YES":
+ self.EquCheckBox.setChecked(True)
+ else:
+ self.EquCheckBox.setChecked(False)
+
self.m_session_mdl.new_empty_dish = True
self.m_session_mdl.m_session_mdtr.emit(
PYSIGNAL("finishedPetriDishSig"), ())
-
def DisablePetriConfigureSlot(self):
descr()
+ self.ConfigTitleTextLabel.setText("Environmental Settings Disabled During Run")
# Turn off the controls
@@ -248,26 +286,33 @@
self.MutationSlider.setEnabled(False)
self.LocalBirthRadioButton.setEnabled(False)
self.MassActionRadioButton.setEnabled(False)
- self.LifeSpanSpinBox.setEnabled(False)
- self.DieNoButton.setEnabled(False)
- self.DieYesButton.setEnabled(False)
+ self.RewardAllPushButton.setEnabled(False)
+ self.RewardNonePushButton.setEnabled(False)
+ self.NotCheckBox.setEnabled(False)
+ self.NandCheckBox.setEnabled(False)
+ self.AndCheckBox.setEnabled(False)
+ self.OrnCheckBox.setEnabled(False)
+ self.OrCheckBox.setEnabled(False)
+ self.AndnCheckBox.setEnabled(False)
+ self.NorCheckBox.setEnabled(False)
+ self.XorCheckBox.setEnabled(False)
+ self.EquCheckBox.setEnabled(False)
self.MutationPercentTextLabel.setEnabled(False)
self.WorldSizeTextLabel.setEnabled(False)
self.MutationRateHeadTextLabel.setEnabled(False)
self.WorldSizeHeadTextLable.setEnabled(False)
- self.DeathLabel.setEnabled(False)
+ self.RewardTextLabel.setEnabled(False)
self.RandomHeadTextLabel.setEnabled(False)
self.AncestorHeadTextLabel.setEnabled(False)
self.BirthHeadTextLabel.setEnabled(False)
self.StopHeadTextLabel.setEnabled(False)
- self.DeathTextLabel2.setEnabled(False)
- self.DeathTextLabel3.setEnabled(False)
self.DishDisabled = True
self.m_session_mdl.m_session_mdtr.emit(
PYSIGNAL("doDisablePetriDishSig"), ())
def EnablePetriConfigureSlot(self):
descr()
+ self.ConfigTitleTextLabel.setText("Environmental Settings")
# Turn on the controls
@@ -282,20 +327,26 @@
self.MutationSlider.setEnabled(True)
self.LocalBirthRadioButton.setEnabled(True)
self.MassActionRadioButton.setEnabled(True)
- self.LifeSpanSpinBox.setEnabled(True)
- self.DieNoButton.setEnabled(True)
- self.DieYesButton.setEnabled(True)
+ self.RewardAllPushButton.setEnabled(True)
+ self.RewardNonePushButton.setEnabled(True)
+ self.NotCheckBox.setEnabled(True)
+ self.NandCheckBox.setEnabled(True)
+ self.AndCheckBox.setEnabled(True)
+ self.OrnCheckBox.setEnabled(True)
+ self.OrCheckBox.setEnabled(True)
+ self.AndnCheckBox.setEnabled(True)
+ self.NorCheckBox.setEnabled(True)
+ self.XorCheckBox.setEnabled(True)
+ self.EquCheckBox.setEnabled(True)
self.MutationPercentTextLabel.setEnabled(True)
self.WorldSizeTextLabel.setEnabled(True)
self.MutationRateHeadTextLabel.setEnabled(True)
self.WorldSizeHeadTextLable.setEnabled(True)
- self.DeathLabel.setEnabled(True)
+ self.RewardTextLabel.setEnabled(True)
self.RandomHeadTextLabel.setEnabled(True)
self.AncestorHeadTextLabel.setEnabled(True)
self.BirthHeadTextLabel.setEnabled(True)
self.StopHeadTextLabel.setEnabled(True)
- self.DeathTextLabel2.setEnabled(True)
- self.DeathTextLabel3.setEnabled(True)
self.DishDisabled = False
@@ -341,11 +392,44 @@
settings_dict["BIRTH_METHOD"] = 0
else:
settings_dict["BIRTH_METHOD"] = 4
- settings_dict["AGE_LIMIT"] = self.LifeSpanSpinBox.value()
- if self.DieNoButton.isChecked() == True:
- settings_dict["DEATH_METHOD"] = 0
+
+ if self.NotCheckBox.isChecked() == True:
+ settings_dict["REWARD_NOT"] = "YES"
else:
- settings_dict["DEATH_METHOD"] = 2
+ settings_dict["REWARD_NOT"] = "NO"
+ if self.NandCheckBox.isChecked() == True:
+ settings_dict["REWARD_NAND"] = "YES"
+ else:
+ settings_dict["REWARD_NAND"] = "NO"
+ if self.AndCheckBox.isChecked() == True:
+ settings_dict["REWARD_AND"] = "YES"
+ else:
+ settings_dict["REWARD_AND"] = "NO"
+ if self.OrnCheckBox.isChecked() == True:
+ settings_dict["REWARD_ORN"] = "YES"
+ else:
+ settings_dict["REWARD_ORN"] = "NO"
+ if self.OrCheckBox.isChecked() == True:
+ settings_dict["REWARD_OR"] = "YES"
+ else:
+ settings_dict["REWARD_OR"] = "NO"
+ if self.AndnCheckBox.isChecked() == True:
+ settings_dict["REWARD_ANDN"] = "YES"
+ else:
+ settings_dict["REWARD_ANDN"] = "NO"
+ if self.NorCheckBox.isChecked() == True:
+ settings_dict["REWARD_NOR"] = "YES"
+ else:
+ settings_dict["REWARD_NOR"] = "NO"
+ if self.XorCheckBox.isChecked() == True:
+ settings_dict["REWARD_XOR"] = "YES"
+ else:
+ settings_dict["REWARD_XOR"] = "NO"
+ if self.EquCheckBox.isChecked() == True:
+ settings_dict["REWARD_EQU"] = "YES"
+ else:
+ settings_dict["REWARD_EQU"] = "NO"
+
return settings_dict
def FreezePetriSlot(self, population_dict = None, send_reset_signal = False, send_quit_signal = False):
Modified: branches/developers/avida-edward/source/python/AvidaGui2/pyPetriConfigureView.ui
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/pyPetriConfigureView.ui 2006-02-01 14:45:48 UTC (rev 455)
+++ branches/developers/avida-edward/source/python/AvidaGui2/pyPetriConfigureView.ui 2006-02-01 14:51:19 UTC (rev 456)
@@ -35,7 +35,7 @@
</property>
<widget class="QLabel">
<property name="name">
- <cstring>textLabel1</cstring>
+ <cstring>ConfigTitleTextLabel</cstring>
</property>
<property name="font">
<font>
@@ -116,7 +116,7 @@
<number>1</number>
</property>
<property name="value">
- <number>50</number>
+ <number>-200</number>
</property>
<property name="orientation">
<enum>Horizontal</enum>
@@ -345,7 +345,7 @@
</spacer>
<widget class="QFrame">
<property name="name">
- <cstring>DeathFrame</cstring>
+ <cstring>RewardFrame</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
@@ -361,13 +361,13 @@
<property name="frameShadow">
<enum>Sunken</enum>
</property>
- <vbox>
+ <grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QLabel">
+ <widget class="QLabel" row="0" column="0" rowspan="1" colspan="4">
<property name="name">
- <cstring>DeathLabel</cstring>
+ <cstring>RewardTextLabel</cstring>
</property>
<property name="font">
<font>
@@ -375,210 +375,222 @@
</font>
</property>
<property name="text">
- <string>Do organisms die of old age?</string>
+ <string>Which Tasks Should Be Rewarded?</string>
</property>
<property name="alignment">
<set>AlignCenter</set>
</property>
</widget>
- <widget class="QButtonGroup">
+ <spacer row="1" column="0">
<property name="name">
- <cstring>DeathButtonGroup</cstring>
+ <cstring>spacer15_2</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>3</hsizetype>
- <vsizetype>3</vsizetype>
- <horstretch>1</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="orientation">
+ <enum>Horizontal</enum>
</property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>21</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <spacer row="1" column="3">
+ <property name="name">
+ <cstring>spacer16_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>21</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QButtonGroup" row="1" column="2">
+ <property name="name">
+ <cstring>TasksToRewardGroup</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
<property name="frameShadow">
<enum>Plain</enum>
</property>
- <property name="lineWidth">
- <number>0</number>
- </property>
<property name="title">
<string></string>
</property>
- <property name="flat">
- <bool>true</bool>
+ <property name="radioButtonExclusive">
+ <bool>false</bool>
</property>
- <hbox>
+ <grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <spacer>
+ <widget class="QCheckBox" row="0" column="0">
<property name="name">
- <cstring>spacer11</cstring>
+ <cstring>NotCheckBox</cstring>
</property>
- <property name="orientation">
- <enum>Horizontal</enum>
+ <property name="text">
+ <string>Not</string>
</property>
- <property name="sizeType">
- <enum>Expanding</enum>
+ <property name="checked">
+ <bool>true</bool>
</property>
- <property name="sizeHint">
- <size>
- <width>21</width>
- <height>20</height>
- </size>
+ </widget>
+ <widget class="QCheckBox" row="1" column="0">
+ <property name="name">
+ <cstring>NandCheckBox</cstring>
</property>
- </spacer>
- <widget class="QRadioButton">
+ <property name="text">
+ <string>Nand</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="0">
<property name="name">
- <cstring>DieNoButton</cstring>
+ <cstring>AndCheckBox</cstring>
</property>
- <property name="font">
- <font>
- </font>
+ <property name="text">
+ <string>And</string>
</property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="0" column="1">
+ <property name="name">
+ <cstring>OrnCheckBox</cstring>
+ </property>
<property name="text">
- <string>No</string>
+ <string>Orn</string>
</property>
<property name="checked">
- <bool>false</bool>
+ <bool>true</bool>
</property>
- <property name="toolTip" stdset="0">
- <string>Organisms only die when replaced by new oranisims</string>
+ </widget>
+ <widget class="QCheckBox" row="2" column="1">
+ <property name="name">
+ <cstring>AndnCheckBox</cstring>
</property>
+ <property name="text">
+ <string>Andn</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
</widget>
- <widget class="QRadioButton">
+ <widget class="QCheckBox" row="0" column="2">
<property name="name">
- <cstring>DieYesButton</cstring>
+ <cstring>NorCheckBox</cstring>
</property>
- <property name="font">
- <font>
- </font>
+ <property name="text">
+ <string>Nor</string>
</property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="1">
+ <property name="name">
+ <cstring>OrCheckBox</cstring>
+ </property>
<property name="text">
- <string>Yes</string>
+ <string>Or</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
- <property name="toolTip" stdset="0">
- <string>Organism can die without being replaced</string>
+ </widget>
+ <widget class="QCheckBox" row="1" column="2">
+ <property name="name">
+ <cstring>XorCheckBox</cstring>
</property>
+ <property name="text">
+ <string>Xor</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
</widget>
- <widget class="QLayoutWidget">
+ <widget class="QCheckBox" row="2" column="2">
<property name="name">
- <cstring>layout26</cstring>
+ <cstring>EquCheckBox</cstring>
</property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>DeathTextLabel2</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>when # executed instructions exceeds</string>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>DeathGenomeLengthLayout</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>LifeSpanSpinBox</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maxValue">
- <number>99999</number>
- </property>
- <property name="minValue">
- <number>1</number>
- </property>
- <property name="lineStep">
- <number>10</number>
- </property>
- <property name="value">
- <number>100</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>How long to let organism live</string>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>DeathTextLabel3</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>times the genome length</string>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
+ <property name="text">
+ <string>Equ</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
</widget>
- <spacer>
+ </grid>
+ </widget>
+ <widget class="QButtonGroup" row="1" column="1">
+ <property name="name">
+ <cstring>RewardAllNoneButtonGroup</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <property name="lineWidth">
+ <number>0</number>
+ </property>
+ <property name="title">
+ <string></string>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QPushButton">
<property name="name">
- <cstring>spacer12</cstring>
+ <cstring>RewardNonePushButton</cstring>
</property>
- <property name="orientation">
- <enum>Horizontal</enum>
+ <property name="font">
+ <font>
+ </font>
</property>
- <property name="sizeType">
- <enum>Expanding</enum>
+ <property name="text">
+ <string>None</string>
</property>
- <property name="sizeHint">
- <size>
- <width>31</width>
- <height>20</height>
- </size>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>RewardAllPushButton</cstring>
</property>
- </spacer>
- </hbox>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="text">
+ <string>All</string>
+ </property>
+ </widget>
+ </vbox>
</widget>
- </vbox>
+ </grid>
</widget>
<spacer>
<property name="name">
More information about the Avida-cvs
mailing list