[Avida-SVN] r1650 - branches/developers/avida-edward/source/python/AvidaGui2

baerb at myxo.css.msu.edu baerb at myxo.css.msu.edu
Wed Jun 6 10:14:50 PDT 2007


Author: baerb
Date: 2007-06-06 13:14:50 -0400 (Wed, 06 Jun 2007)
New Revision: 1650

Modified:
   branches/developers/avida-edward/source/python/AvidaGui2/pyEduWorkspaceCtrl.py
   branches/developers/avida-edward/source/python/AvidaGui2/pyNavBarCtrl.py
   branches/developers/avida-edward/source/python/AvidaGui2/pyOneOrg_ScopeCtrl.py
   branches/developers/avida-edward/source/python/AvidaGui2/to-do_list
Log:

Fixed fatal error in pyNavBarCtrl.

When user clicks non-working menu item an info box pops up (previously a
message was sent to the console).

Be sure that imported files get unique names.

Changed some print statements to descr statements.



Modified: branches/developers/avida-edward/source/python/AvidaGui2/pyEduWorkspaceCtrl.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/pyEduWorkspaceCtrl.py	2007-06-06 02:17:27 UTC (rev 1649)
+++ branches/developers/avida-edward/source/python/AvidaGui2/pyEduWorkspaceCtrl.py	2007-06-06 17:14:50 UTC (rev 1650)
@@ -29,7 +29,7 @@
     self.m_avida = None
     self.startStatus = True
     self.m_nav_bar_ctrl.construct(session_mdl)
-    self.m_nav_bar_list_view.construct(session_mdl)
+    # self.m_nav_bar_list_view.construct(session_mdl)
     self.m_freezer_ctrl.construct(session_mdl)
     self.m_cli_to_ctrl_dict = {}
     self.m_ctrl_to_cli_dict = {}
@@ -447,23 +447,36 @@
 
           # If we find a *File line open a new file
 
-          if (line.startswith("*File:")):
+          foundFile = False
+          suffix = ""
+          while ((line.startswith("*File:")) and (foundFile == False)):
             if (line.find(".empty") > -1):
               new_file_name = os.path.join(self.m_session_mdl.m_current_freezer,
-                                       "imp_" + input_name_no_ext + ".empty")
+                         "imp_" + input_name_no_ext + suffix + ".empty")
             elif (line.find(".organism") > -1):
               new_file_name = os.path.join(self.m_session_mdl.m_current_freezer,
-                                       "imp_" + input_name_no_ext + ".organism")
+                         "imp_" + input_name_no_ext + suffix + ".organism")
             elif (line.find(".full") > -1):
               new_dir_name = os.path.join(self.m_session_mdl.m_current_freezer,
-                                          "imp_" + input_name_no_ext + ".full")
+                         "imp_" + input_name_no_ext + suffix + ".full")
               if (not os.path.exists(new_dir_name)):
                 os.mkdir(new_dir_name)
               sub_file_name = line[line.rfind(":")+2:]
+              sub_file_name = sub_file_name.strip()
               new_file_name = os.path.join(new_dir_name, sub_file_name)
               
-            new_file = open(new_file_name.strip(),'w')
-          else:
+            # Do not allow duplicate files
+
+            if (os.path.exists(new_file_name) == True):
+              foundFile = False
+              if (suffix == ""):
+                suffix = "_1"
+              else:
+                suffix = "_" + str(int(suffix[1:]) + 1)
+            else:
+              foundFile = True
+              new_file = open(new_file_name.strip(),'w')
+          if (not line.startswith("*File:")):
             new_file.write(line)
       finally:
         input_file.close()
@@ -474,52 +487,52 @@
   # public slot
 
   def fileExit(self):
-    descr("pyEduWorkspaceCtrl.fileExit(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.fileExit(): Not implemented yet")
 
   # public slot
 
   def editUndo(self):
-    descr("pyEduWorkspaceCtrl.editUndo(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.editUndo(): Not implemented yet")
 
   # public slot
 
   def editRedo(self):
-    descr("pyEduWorkspaceCtrl.editRedo(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.editRedo(): Not implemented yet")
 
   # public slot
 
   def editCut(self):
-    descr("pyEduWorkspaceCtrl.editCut(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.editCut(): Not implemented yet")
 
   # public slot
 
   def editCopy(self):
-    descr("pyEduWorkspaceCtrl.editCopy(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.editCopy(): Not implemented yet")
 
   # public slot
 
   def editPaste(self):
-    descr("pyEduWorkspaceCtrl.editPaste(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.editPaste(): Not implemented yet")
 
   # public slot
 
   def editFind(self):
-    descr("pyEduWorkspaceCtrl.editFind(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.editFind(): Not implemented yet")
 
   # public slot
 
   def helpIndex(self):
-    descr("pyEduWorkspaceCtrl.helpIndex(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.helpIndex(): Not implemented yet")
 
   # public slot
 
   def helpContents(self):
-    descr("pyEduWorkspaceCtrl.helpContents(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.helpContents(): Not implemented yet")
 
   # public slot
 
   def helpAbout(self):
-    descr("pyEduWorkspaceCtrl.helpAbout(): Not implemented yet")
+    info("pyEduWorkspaceCtrl.helpAbout(): Not implemented yet")
 
   def next_UpdateActionSlot(self):
     self.m_session_mdl.m_session_mdtr.emit(

Modified: branches/developers/avida-edward/source/python/AvidaGui2/pyNavBarCtrl.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/pyNavBarCtrl.py	2007-06-06 02:17:27 UTC (rev 1649)
+++ branches/developers/avida-edward/source/python/AvidaGui2/pyNavBarCtrl.py	2007-06-06 17:14:50 UTC (rev 1650)
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 
 from qt import *
-from pyNavBarView import *
+from pyNavBarView import image0_data, image1_data, image2_data
 from descr import *
 
 class pyNavBarListView(QListView):
@@ -27,15 +27,15 @@
     descr("no way this works in list view++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
 
   def contentsDropEvent(self, e):
-    freezer_item_name = QString()
+    dropped_item_name = QString()
     if e.source() is self:
       return
 
-    # freezer_item_name is a string...the file name 
+    # dropped_item_name is a string...the file name 
  
     print type(e)
     descr("in contentsDrop event")
-    descr("freezer_item_name is: ", freezer_item_name)
+    descr("dropped_item_name is: ", str(dropped_item_name))
     test_item_name = 'jeff'
     descr("self is: ", self)
     #self.emit(PYSIGNAL("jmcTestSig"), (test_item_name,))
@@ -43,12 +43,12 @@
 
     if ( QIconDrag.canDecode(e)):
       format = QDropEvent.format(e, 0)
-    if ( QTextDrag.decode( e, freezer_item_name ) ) :
-      descr("in decode, freezer_item_name is: ", freezer_item_name[:])
-      if freezer_item_name[:9] == 'organism.':
+    if ( QTextDrag.decode( e, dropped_item_name ) ) :
+      descr("in decode, dropped_item_name is: ", dropped_item_name[:])
+      if dropped_item_name[:9] == 'organism.':
         descr("that was an organism")
-        freezer_item_name = freezer_item_name[9:]
-#        self.FreezeOrganism(freezer_item_name)
+        dropped_item_name = dropped_item_name[9:]
+#        self.FreezeOrganism(dropped_item_name)
       else:
         pass
 
@@ -58,8 +58,8 @@
     #  info("You can not drag an ancestor back into the freezer")
 
     
-  #def FreezeOrganism(self, freezer_item_name):
-  #  tmp_dict = {1:freezer_item_name}
+  #def FreezeOrganism(self, dropped_item_name):
+  #  tmp_dict = {1:dropped_item_name}
   #  pop_up_organism_file_name = pyFreezeOrganismCtrl()
   #  file_name = pop_up_organism_file_name.showDialog(self.m_session_mdl)
 
@@ -136,6 +136,7 @@
     def construct(self, session_mdl):
         self.m_session_mdl = session_mdl
        
+        self.m_list_view.construct(session_mdl)
         self.m_list_view.setSelectionMode(QListView.Single)
         self.m_list_view.setSortColumn(-1)
         self.m_list_view.clear()

Modified: branches/developers/avida-edward/source/python/AvidaGui2/pyOneOrg_ScopeCtrl.py
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/pyOneOrg_ScopeCtrl.py	2007-06-06 02:17:27 UTC (rev 1649)
+++ branches/developers/avida-edward/source/python/AvidaGui2/pyOneOrg_ScopeCtrl.py	2007-06-06 17:14:50 UTC (rev 1650)
@@ -2,6 +2,7 @@
 
 from pyOneOrg_ScopeView import pyOneOrg_ScopeView
 from pyTimeline import pyTimeline
+from descr import *
 import qt
 import os
 
@@ -73,41 +74,41 @@
 
 
   def gestationTimeChangedSlot(self, gestation_time):
-    print "pyOneOrg_ScopeCtrl.gestationTimeChangedSlot called, gestation_time ", gestation_time
+    descr("pyOneOrg_ScopeCtrl.gestationTimeChangedSlot called, gestation_time " + str(gestation_time))
     self.m_execution_step_slider.setMaxValue(gestation_time - 1)
     self.m_timeline.setMaxValue(gestation_time - 1)
     self.rewindSlot()
 
   def executionStepResetSlot(self, execution_step):
-    print "pyOneOrg_ScopeCtrl.executionStepResetSlot called, execution_step ", execution_step
+    descr("pyOneOrg_ScopeCtrl.executionStepResetSlot called, execution_step " + str(execution_step))
     self.m_execution_step_slider.setValue(execution_step)
     self.m_timeline.setValue(execution_step)
     # This may be redundant (I'm not sure). @kgn
     self.m_execution_step_slider.emit(qt.SIGNAL("valueChanged(int)"),(execution_step,))
 
   def sliderMovedSlot(self, frame_number):
-    print "pyOneOrg_ScopeCtrl.sliderMovedSlot()."
+    descr("pyOneOrg_ScopeCtrl.sliderMovedSlot().")
     self.pauseSlot()
 
   def rewindSlot(self):
-    print "pyOneOrg_ScopeCtrl.rewindSlot()."
+    descr("pyOneOrg_ScopeCtrl.rewindSlot().")
     self.m_execution_step_slider.setValue(0)
     self.m_timeline.setValue(0)
     self.pauseSlot()
 
   def cueSlot(self):
-    print "pyOneOrg_ScopeCtrl.cueSlot()."
+    descr("pyOneOrg_ScopeCtrl.cueSlot().")
     self.m_execution_step_slider.setValue(self.m_execution_step_slider.maxValue())
     self.m_timeline.setValue(self.m_timeline.maxValue())
     self.pauseSlot()
 
   def pauseSlot(self):
-    print "pyOneOrg_ScopeCtrl.pauseSlot()."
+    descr("pyOneOrg_ScopeCtrl.pauseSlot().")
     self.m_analyze_controls_ctrl.m_widget_stack.raiseWidget(self.m_analyze_controls_ctrl.m_play_page)
     self.m_timer.stop()
 
   def playSlot(self):
-    print "pyOneOrg_ScopeCtrl.playSlot()."
+    descr("pyOneOrg_ScopeCtrl.playSlot().")
     self.m_analyze_controls_ctrl.m_widget_stack.raiseWidget(self.m_analyze_controls_ctrl.m_pause_page)
     self.m_timer.start(self.m_timer_interval, False)
 

Modified: branches/developers/avida-edward/source/python/AvidaGui2/to-do_list
===================================================================
--- branches/developers/avida-edward/source/python/AvidaGui2/to-do_list	2007-06-06 02:17:27 UTC (rev 1649)
+++ branches/developers/avida-edward/source/python/AvidaGui2/to-do_list	2007-06-06 17:14:50 UTC (rev 1650)
@@ -22,6 +22,8 @@
 
 29-Jun-06 Same control on front and back of petri dish.
 
+Figure out why double clicking an org in the freezer throws an error
+
 Long term projects:
 
 Priority High
@@ -267,6 +269,13 @@
   - Got Basic import and export to work
   - updated FAQ on web page
 
+June - 07
+
+  - Fixed fatal error in drop on view code
+  - When importing a file with an exisiting name give it a new suffux
+  - When user clicks on non-working menu item program throws up an info
+    message box (instead of sending the error to the console)
+
 ************Kaben******************
 
 - added testing branch "extras" to subversion, moved testing code to testing




More information about the Avida-cvs mailing list