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

jclune at myxo.css.msu.edu jclune at myxo.css.msu.edu
Sun Jun 5 12:57:08 PDT 2005


Author: jclune
Date: 2005-06-05 15:57:08 -0400 (Sun, 05 Jun 2005)
New Revision: 178

Modified:
   trunk/source/python/AvidaGui2/pyFreezerCtrl.py
   trunk/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py
   trunk/source/python/AvidaGui2/pyOnePopulationCtrl.py
   trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py
Log:
Drag and drop now works (for full petri dishes) for the petri dish view.


Modified: trunk/source/python/AvidaGui2/pyFreezerCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyFreezerCtrl.py	2005-06-04 19:16:19 UTC (rev 177)
+++ trunk/source/python/AvidaGui2/pyFreezerCtrl.py	2005-06-05 19:57:08 UTC (rev 178)
@@ -64,8 +64,6 @@
   def pressed_itemSlot(self, item):
 
     if item != None and item.depth() > 0:
-      print "mouse pressed"
-      print item.text(0)
 
       dragHolder = self.itemDrag( item.text(0), self )
 #     maybe play with iconView

Modified: trunk/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py	2005-06-04 19:16:19 UTC (rev 177)
+++ trunk/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py	2005-06-05 19:57:08 UTC (rev 178)
@@ -3,8 +3,8 @@
 from qt import *
 from pyMapProfile import pyMapProfile
 from pyOnePop_PetriDishView import pyOnePop_PetriDishView
+import os
 
-
 class pyOnePop_PetriDishCtrl(pyOnePop_PetriDishView):
 
   def __init__(self,parent = None,name = None,fl = 0):
@@ -26,11 +26,13 @@
     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.RenameDishSlot)
-    self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doDefrostDishSig"), self.MakeConfigVisiableSlot)
+    self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doefrostDishSig"), 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.m_mode_combobox.clear()
     self.m_mode_combobox.setInsertionPolicy(QComboBox.AtBottom)
@@ -130,3 +132,14 @@
     print "send_reset_signal = " + str(send_reset_signal)
     print "send_quit_signal = " + str(send_quit_signal)
 
+  def petriDropped(self, e):
+    print "caught it"
+    # Try to decode to the data you understand...
+    string = QString()
+    if ( QTextDrag.decode( e, string ) ) :
+      dishName = string
+      self.PopulationTextLabel.setText(dishName)
+      current_page = self.m_petri_dish_widget_stack.visibleWidget()
+      current_page_int = self.m_petri_dish_widget_stack.id(current_page)
+      if (current_page_int == 0):
+         self.ToggleDishSlot()
\ No newline at end of file

Modified: trunk/source/python/AvidaGui2/pyOnePopulationCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOnePopulationCtrl.py	2005-06-04 19:16:19 UTC (rev 177)
+++ trunk/source/python/AvidaGui2/pyOnePopulationCtrl.py	2005-06-05 19:57:08 UTC (rev 178)
@@ -2,12 +2,13 @@
 
 from qt import *
 from pyOnePopulationView import pyOnePopulationView
+import os
 
-
 class pyOnePopulationCtrl(pyOnePopulationView):
 
   def __init__(self,parent = None,name = None,fl = 0):
     pyOnePopulationView.__init__(self,parent,name,fl)
+    self.setAcceptDrops(1)
 
   def construct(self, session_mdl):
     self.m_session_mdl = session_mdl
@@ -15,3 +16,14 @@
     self.m_one_pop_graph_ctrl.construct(self.m_session_mdl)
     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"))
+
+  def dropEvent( self, e ):
+    string = QString()
+    print "dropEvent"
+    if ( QTextDrag.decode( e, string ) ) :
+      if os.path.exists(str('default.workspace/freezer/' + str(string) + '.full/')) == False:
+        print "that was not a valid path" 
+      else: 
+        self.emit(PYSIGNAL("petriDishDroppedInPopViewSig"), (e,))
+        print "emitted"
\ No newline at end of file

Modified: trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py	2005-06-04 19:16:19 UTC (rev 177)
+++ trunk/source/python/AvidaGui2/pyPetriConfigureCtrl.py	2005-06-05 19:57:08 UTC (rev 178)
@@ -17,6 +17,7 @@
 
   def __init__(self,parent = None,name = None,fl = 0):
     pyPetriConfigureView.__init__(self,parent,name,fl)
+    self.setAcceptDrops(1)
 
 
   def setAvidaSlot(self, avida):
@@ -62,6 +63,7 @@
     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.ChangeMutationTextSlot()
     self.ChangeWorldSizeTextSlot()
     self.populated = False
@@ -275,3 +277,12 @@
       self.m_session_mdl.m_session_mdtr, PYSIGNAL("setAvidaSig"),
       self.setAvidaSlot)
       
+  def dropEvent( self, e ):
+    string = QString()
+    print "dropEvent"
+    if ( QTextDrag.decode( e, string ) ) :
+      if os.path.exists(str('default.workspace/freezer/' + str(string) + '.full/')) == False:
+        print "that was not a valid path" 
+      else: 
+        self.emit(PYSIGNAL("petriDishDroppedInPopViewSig"), (e,))
+        print "emitted"
\ No newline at end of file




More information about the Avida-cvs mailing list