[Avida-cvs] [Avida2-svn] r60 - trunk/source/python/AvidaGui2

baerb at myxo.css.msu.edu baerb at myxo.css.msu.edu
Wed Mar 16 12:46:36 PST 2005


Author: baerb
Date: 2005-03-16 15:46:36 -0500 (Wed, 16 Mar 2005)
New Revision: 60

Added:
   trunk/source/python/AvidaGui2/pyFreezeDialogCtrl.py
   trunk/source/python/AvidaGui2/pyFreezeDialogView.ui
Modified:
   trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py
   trunk/source/python/AvidaGui2/pyTemporaryReloads.py
Log:
More code to allow saving of items to the freezer.  Interface is finished
actual writing still needs work.



Added: trunk/source/python/AvidaGui2/pyFreezeDialogCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyFreezeDialogCtrl.py	2005-03-16 20:41:16 UTC (rev 59)
+++ trunk/source/python/AvidaGui2/pyFreezeDialogCtrl.py	2005-03-16 20:46:36 UTC (rev 60)
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+
+from qt import *
+from pyFreezeDialogView import pyFreezeDialogView
+import shutil, os, os.path
+
+# class to pop up a dialog box to ask for what to freeze and to
+# return the name of a file to save information to be frozen
+
+class pyFreezeDialogCtrl (pyFreezeDialogView):
+  def __init__(self):
+    pyFreezeDialogView.__init__(self)
+    
+  def showDialog(self, freezer_dir = None):
+    found_valid_name = False
+    dialog_result = 1
+    while (found_valid_name == False and dialog_result > 0):
+      while (self.exec_loop() and self.result() == 0):
+        pass
+      dialog_result = self.result()
+      tmp_name = str(self.FileNameLineEdit.text())
+      if dialog_result == 0:
+        return ''
+      elif (tmp_name == ''):
+        found_valid_name = False
+        self.MainMessageTextLabel.setText("Enter a Non-Blank Name of Item to Freeze")
+      else:
+        if self.EmptyRadioButton.isChecked():
+          if (tmp_name.endswith(".empty") == False):
+            tmp_name = tmp_name + ".empty"
+          tmp_name = freezer_dir + tmp_name
+          if os.path.exists(tmp_name):
+            found_valid_name = False
+            self.MainMessageTextLabel.setText("Petri Dish Exists, Please Enter a Different Name")
+          else:
+            found_valid_name = True
+            return tmp_name
+        else:
+          if (tmp_name.endswith(".full") == False):
+            tmp_name = tmp_name + ".full"
+          tmp_name = freezer_dir + tmp_name
+          if os.path.exists(tmp_name):
+            found_valid_name = False
+            self.MainMessageTextLabel.setText("Petri Dish Exists, Please Enter a Different Name")
+          else:
+            found_valid_name = True
+            return tmp_name
+      
+  def isEmpty(self):
+    if self.EmptyRadioButton.isChecked():
+      return True
+    else:
+      return False
+

Added: trunk/source/python/AvidaGui2/pyFreezeDialogView.ui
===================================================================
--- trunk/source/python/AvidaGui2/pyFreezeDialogView.ui	2005-03-16 20:41:16 UTC (rev 59)
+++ trunk/source/python/AvidaGui2/pyFreezeDialogView.ui	2005-03-16 20:46:36 UTC (rev 60)
@@ -0,0 +1,127 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>pyFreezeDialogView</class>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>pyFreezeDialogView</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>392</width>
+            <height>152</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Freeze</string>
+    </property>
+    <vbox>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel">
+            <property name="name">
+                <cstring>MainMessageTextLabel</cstring>
+            </property>
+            <property name="text">
+                <string>Enter Name of Item to Freeze</string>
+            </property>
+            <property name="alignment">
+                <set>AlignCenter</set>
+            </property>
+        </widget>
+        <widget class="QLineEdit">
+            <property name="name">
+                <cstring>FileNameLineEdit</cstring>
+            </property>
+        </widget>
+        <widget class="QButtonGroup">
+            <property name="name">
+                <cstring>FullEmptyButtonGroup</cstring>
+            </property>
+            <property name="frameShape">
+                <enum>NoFrame</enum>
+            </property>
+            <property name="title">
+                <string></string>
+            </property>
+            <widget class="QRadioButton">
+                <property name="name">
+                    <cstring>FullRadioButton</cstring>
+                </property>
+                <property name="geometry">
+                    <rect>
+                        <x>170</x>
+                        <y>10</y>
+                        <width>117</width>
+                        <height>22</height>
+                    </rect>
+                </property>
+                <property name="text">
+                    <string>Full Petri Dish</string>
+                </property>
+            </widget>
+            <widget class="QRadioButton">
+                <property name="name">
+                    <cstring>EmptyRadioButton</cstring>
+                </property>
+                <property name="geometry">
+                    <rect>
+                        <x>10</x>
+                        <y>10</y>
+                        <width>140</width>
+                        <height>22</height>
+                    </rect>
+                </property>
+                <property name="text">
+                    <string>Empty Petri Dish</string>
+                </property>
+                <property name="checked">
+                    <bool>true</bool>
+                </property>
+            </widget>
+        </widget>
+        <widget class="QLayoutWidget">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>SaveToFreezerPushButton</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Freeze</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>CancelPushButton</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Cancel</string>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+    </vbox>
+</widget>
+<connections>
+    <connection>
+        <sender>SaveToFreezerPushButton</sender>
+        <signal>clicked()</signal>
+        <receiver>pyFreezeDialogView</receiver>
+        <slot>accept()</slot>
+    </connection>
+    <connection>
+        <sender>CancelPushButton</sender>
+        <signal>clicked()</signal>
+        <receiver>pyFreezeDialogView</receiver>
+        <slot>reject()</slot>
+    </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Modified: trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py	2005-03-16 20:41:16 UTC (rev 59)
+++ trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py	2005-03-16 20:46:36 UTC (rev 60)
@@ -1,9 +1,9 @@
 # -*- coding: utf-8 -*-
 
-from AvidaCore import cConfig
 from qt import *
 from pyPetriConfigureView import pyPetriConfigureView
 from pyWriteGenesis import pyWriteGenesis
+from pyFreezeDialogCtrl import pyFreezeDialogCtrl
 
 
 class pyPetriConfigureCtrl(pyPetriConfigureView):
@@ -165,7 +165,7 @@
       settings_info["MAX_UPDATES"] = -1
     settings_info["WORLD-X"] = self.WorldSizeSlider.value()
     settings_info["WORLD-Y"] = self.WorldSizeSlider.value()
-    if self.RandomFixedRadioButton.isChecked == True:
+    if self.RandomFixedRadioButton.isChecked() == True:
       settings_info["RANDOM_SEED"] = self.RandomSpinBox.value()
     else:
       settings_info["RANDOM_SEED"] = 0
@@ -183,7 +183,13 @@
     return tmp_dict
     
   def FreezePetriSlot(self, freeze_dir = None, population_dict = None):
-    print "called FreezePetriSlot"
+    m_pop_up_freezer_file_name = pyFreezeDialogCtrl()
+    file_name = m_pop_up_freezer_file_name.showDialog("freezer/")
+    isEmpty = m_pop_up_freezer_file_name.isEmpty()
+    print str(m_pop_up_freezer_file_name.FileNameLineEdit.text())
+#    print "Name = " + str(m_pop_up_freezer_file_name.FileNameLineEdit.text())
+#    print "Empty? = " + str (m_pop_up_freezer_file_name.EmptyRadioButton.isChecked())
+#    print "Result = " + str(m_pop_up_freezer_file_name.result())
     tmp_dict = self.Form2Dictionary()
     tmp_dict["POPULATION"] = population_dict
     print tmp_dict

Modified: trunk/source/python/AvidaGui2/pyTemporaryReloads.py
===================================================================
--- trunk/source/python/AvidaGui2/pyTemporaryReloads.py	2005-03-16 20:41:16 UTC (rev 59)
+++ trunk/source/python/AvidaGui2/pyTemporaryReloads.py	2005-03-16 20:46:36 UTC (rev 60)
@@ -45,6 +45,8 @@
 nontest_module_names = [
   "AvidaGui2.pyAnalyzeControlsView",
   "AvidaGui2.pyAnalyzeControlsCtrl",
+  "AvidaGui2.pyFreezeDialogView",
+  "AvidaGui2.pyFreezeDialogCtrl",
   "AvidaGui2.pyFreezerView",
   "AvidaGui2.pyFreezerCtrl",
   "AvidaGui2.pyGradientScaleView",




More information about the Avida-cvs mailing list