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

jclune at myxo.css.msu.edu jclune at myxo.css.msu.edu
Thu Jun 2 13:15:09 PDT 2005


Author: jclune
Date: 2005-06-02 16:15:09 -0400 (Thu, 02 Jun 2005)
New Revision: 171

Added:
   trunk/source/python/AvidaGui2/pyOrgSquareCtrl.py
   trunk/source/python/AvidaGui2/pyOrgSquareView.ui
Modified:
   trunk/source/python/AvidaGui2/pyEduWorkspaceCtrl.py
   trunk/source/python/AvidaGui2/pyEduWorkspaceView.ui
   trunk/source/python/AvidaGui2/pyFreezerCtrl.py
   trunk/source/python/AvidaGui2/pyOneAna_GraphCtrl.py
   trunk/source/python/AvidaGui2/pyOneAna_PetriDishCtrl.py
   trunk/source/python/AvidaGui2/pyOneAnalyzeCtrl.py
   trunk/source/python/AvidaGui2/pyOneAnalyzeView.ui
   trunk/source/python/AvidaGui2/pyTemporaryReloads.py
Log:
Drag and drop into analyze now works from elements in the freezer. 


Modified: trunk/source/python/AvidaGui2/pyEduWorkspaceCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyEduWorkspaceCtrl.py	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyEduWorkspaceCtrl.py	2005-06-02 20:15:09 UTC (rev 171)
@@ -10,6 +10,9 @@
 from pyTwoPopulationCtrl import pyTwoPopulationCtrl
 from pyPetriConfigureCtrl import pyPetriConfigureCtrl
 from pyQuitDialogCtrl import pyQuitDialogCtrl
+#JMC
+from pyDragSpaceCtrl import pyDragSpaceCtrl
+#JMC
 
 from qt import *
 
@@ -23,7 +26,9 @@
     self.m_freezer_ctrl.construct(session_mdl)
     self.m_cli_to_ctrl_dict = {}
     self.m_ctrl_to_cli_dict = {}
-
+#    self.m_drag_space_ctrl.construct(self.m_session_mdl)
+    self.m_drag_space_ctrl = pyDragSpaceCtrl(self, 'dropsite')
+   
     while self.m_widget_stack.visibleWidget():
       self.m_widget_stack.removeWidget(self.m_widget_stack.visibleWidget())
 
@@ -142,6 +147,7 @@
                     "Choose a directory",
                     True);
     workspace_dir = str(workspace_dir)              
+
     if workspace_dir.strip() != "":
       self.m_session_mdl.m_current_workspce = str(workspace_dir) + "/"
       self.m_session_mdl.m_current_freezer = self.m_session_mdl.m_current_workspce + "freezer/"
@@ -157,7 +163,7 @@
                     "get existing directory",
                     "Choose a directory",
                     True);
-    freezer_dir = str(freezer_dir)              
+    freezer_dir = str(freezer_dir)
     if freezer_dir.strip() != "":
       self.m_session_mdl.m_current_freezer = str(freezer_dir) + "/"
       self.m_session_mdl.m_session_mdtr.emit(

Modified: trunk/source/python/AvidaGui2/pyEduWorkspaceView.ui
===================================================================
--- trunk/source/python/AvidaGui2/pyEduWorkspaceView.ui	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyEduWorkspaceView.ui	2005-06-02 20:15:09 UTC (rev 171)
@@ -8,6 +8,8 @@
 Python:from pyTwoAnalyzeCtrl import pyTwoAnalyzeCtrl
 Python:from pyTwoOrganismCtrl import pyTwoOrganismCtrl
 Python:from pyTwoPopulationCtrl import pyTwoPopulationCtrl
+Python:from pyDragSpaceCtrl import pyDragSpaceCtrl
+
 </comment>
 <widget class="QMainWindow">
     <property name="name">
@@ -32,7 +34,7 @@
     <property name="minimumSize">
         <size>
             <width>195</width>
-            <height>575</height>
+            <height>582</height>
         </size>
     </property>
     <property name="maximumSize">
@@ -100,6 +102,11 @@
                         </size>
                     </property>
                 </widget>
+                <widget class="pyDragSpaceCtrl">
+                    <property name="name">
+                        <cstring>m_drag_space_ctrl</cstring>
+                    </property>
+                </widget>
             </widget>
             <widget class="QWidgetStack">
                 <property name="name">
@@ -200,6 +207,8 @@
         <property type="0">-1</property>
         <property type="1">pyFreezerView</property>
         <property type="0">-1</property>
+        <property type="1">pyFreezerView</property>
+        <property type="0">-1</property>
         <property type="pyFreezerView"></property>
         <property type="-1">1</property>
     </customwidget>
@@ -233,9 +242,27 @@
         <property type="0">-1</property>
         <property type="1">pyNavBarView</property>
         <property type="0">-1</property>
+        <property type="1">pyNavBarView</property>
+        <property type="0">-1</property>
         <property type="pyNavBarView"></property>
         <property type="-1">1</property>
     </customwidget>
+    <customwidget>
+        <class>pyDragSpaceCtrl</class>
+        <header location="global">1</header>
+        <sizehint>
+            <width>-1</width>
+            <height>0</height>
+        </sizehint>
+        <container>0</container>
+        <sizepolicy>
+            <hordata>5</hordata>
+            <verdata>5</verdata>
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+        </sizepolicy>
+        <pixmap>image1</pixmap>
+    </customwidget>
 </customwidgets>
 <actions>
     <action>
@@ -243,7 +270,7 @@
             <cstring>fileNewAction</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image1</iconset>
+            <iconset>image2</iconset>
         </property>
         <property name="text">
             <string>New Workspace</string>
@@ -260,7 +287,7 @@
             <cstring>fileOpenAction</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image2</iconset>
+            <iconset>image3</iconset>
         </property>
         <property name="text">
             <string>Open Workspace...</string>
@@ -277,7 +304,7 @@
             <cstring>fileSaveAction</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image3</iconset>
+            <iconset>image4</iconset>
         </property>
         <property name="text">
             <string>&amp;Save Workspace</string>
@@ -308,7 +335,7 @@
             <cstring>m_graph_print_action</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image4</iconset>
+            <iconset>image5</iconset>
         </property>
         <property name="text">
             <string>&amp;Print Graph...</string>
@@ -339,7 +366,7 @@
             <cstring>editUndoAction</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image5</iconset>
+            <iconset>image6</iconset>
         </property>
         <property name="text">
             <string>Undo</string>
@@ -356,7 +383,7 @@
             <cstring>editRedoAction</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image6</iconset>
+            <iconset>image7</iconset>
         </property>
         <property name="text">
             <string>Redo</string>
@@ -373,7 +400,7 @@
             <cstring>editCutAction</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image7</iconset>
+            <iconset>image8</iconset>
         </property>
         <property name="text">
             <string>Cut</string>
@@ -390,7 +417,7 @@
             <cstring>editCopyAction</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image8</iconset>
+            <iconset>image9</iconset>
         </property>
         <property name="text">
             <string>Copy</string>
@@ -407,7 +434,7 @@
             <cstring>editPasteAction</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image9</iconset>
+            <iconset>image10</iconset>
         </property>
         <property name="text">
             <string>Paste</string>
@@ -424,7 +451,7 @@
             <cstring>editFindAction</cstring>
         </property>
         <property name="iconSet">
-            <iconset>image10</iconset>
+            <iconset>image11</iconset>
         </property>
         <property name="text">
             <string>Find</string>
@@ -600,33 +627,36 @@
         <data format="PNG" length="1002">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b149444154789cad945f4c5b551cc73fe7dc4b7b4bcba0762d45c43114323599ee6192609c51d883892ce083f1718b3ebb185f8dc91e972cf39d2d2a2f1af664b6f1e0fe3863a0718969700eb0c52142da0242a1bd6d696f7bcff101585203ceb8fd9ece39f99dcff9fe7edf939f88c562ec465f5f9fe609442c161362173c3e3eae7b7a7ac8e7f36432196cdbfe4f907c3e4f2291201e8fe338cec3737357e9e8e828aded1e229d650e1f2d51754b082110124c13a4dc5ea341eb9dc284c0558a853f3ce8cb0677ef500fde7d39d2596679e326597b8e9abb85d7a770ab16ab6983ec5a05b487a70e36f0f4e10afe408d6a558310980108478dba4a1e8233990c5d474b64ed39aa3a8fe5f3317fbf81dbd70bccfeb205947632fd74f6589c1c6ea2f70d03a58ba0c1f2c9bdc1b66de3b8256a6e11cbe7e3ee1d181b590124fe2693aeee08d223c82c3a2c24b7b874bec8f26288774f7bd054504aef0dde6e99c0eb83f9fb266323cb80a27fb0958141836044605a2ee5523393371cc646fee2da37195aa35d0c0c5b4859ac03d7e91712dcaac5adab3650a3ff9d08ef7dd8404bb48869e5d958b5b87dadc4c9a1464e9f0d0326df7!
 ebd86bd2e310cb1bf62d384d59441f2d70a070e1c60e09489929b988681bdd9cc97170bcc4c65595f71f8e0e3301337fc24a7732467831875a47f289652b0be5e4151e6d07316c1b0c0340d8ab92023e76d66a6b2840e36d2fb7a13fee632475e6edc367ea98a90fb98b7dd6310ca0328a44761582e1bab41befabcc0ec940d28bc5e93b68e064cab84e1d9beaeb48934eac1f53b01c1b000fca496aa54b61a99fcde61662a4b4b4b23d1680be9d426173e4df3602a48ea411989a4fd590f52a8fd156b05ed9d350e3defe3cfdf4b4c7ce770ea7d3fb9f520afbe1620daeee5c26735d20b9b9cfb6811a754a439e4e5c5639a4caa1e5caf586bfc0197b78702005cb9b4cae4cd3267ce8638fe964bd72b393e39d74928d242617303a756a37f284447770dcdbffc6384a05a85de1306e9a52057c7527c7131c3c42d3f475eb2303c82d4fc3276d6811db37efeb148723082d9b08f79f97c1e5729109a9a28307cc622d2d6cdf52b2b24efe548dedb00142009862cfa879ee1a71f6cec928353511472fbf4389148b0b0e0c108081412458dfe21c9f11351e67e7358595468246d1d1e5e38a6e9e851bc39d84ab502a669331dafec0d8ec7e3e8cb06e1a881d727d1ae40180a434a8c9db129a54126ad48a7358c2b4c5352c8c374bcccdab2bb37d8719cba79fab8211f9df218e05!
 82c261e95f8bfc04f1a1e8bc5c4dfe0a19017a725d8c60000000049454e44a!
 e426082<
/data>
     </image>
     <image name="image1">
+        <data format="PNG" length="1125">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000042c49444154789cb5954f6c14551cc73fefcd7476b65bdaae4bb78bb5502a14d404e4801c88182d1c4c2c693da847400f9c24c68b878684238660e2b1e01f12c19493012ef2478c814412d354a46017a8a564bb6da5bbedccee767776e63d0ffb073751d483bfe49799974c3eeffb7ebf37df9fd05a530b2184040cc0042420aaf9a4d0d554800f045a6b256ae0e1e1e1d6bebebe838ee31c48a7d39b5cd7fd075e251cc7617272f2ded8d8d819cff33e0316819259537aead4a9839d5dd6d1784f91f55b0a94830242088404d304292bef68a89f520802a598fecddaa04f1a876f5c250c7c0a64cdeac686e33807e23d45e6b297c8b877f1831542614550b6599835c83c2a81b6786a75134faf2f1169f12997350881d9021d0903e06de0745d3160a6d3e94dbd5b0a64dcbb94b5831d0e3375ab892b1772dcf9790528543f8dd0d367b36768153b5e31503a0f1aecb004580b44ffac58baae8b1714f0833c7638cc8dab303a320f4822ab4c7a37c69196203de3319d5ce1c4d13c733331dedc67a129a154fd128401ab0616d55a130ac3d42d93d1913940d13fd0c9ee0183685c60da01c5421bd72f7a8c8efccef9afd374267ad93!
 d642365be0636a0d28ec7600941d9e6f23917f0e97f23ce5bef35d19ec863da0ed9059b2be70bec196c66dfa10ec0e49b338f7017258651bf95021035c595429bb0903248fe52a2b5b595dd7b4d945cc2340cdca536be389ee3f67886c5798f773fe8e0dac508c989659277a2180da4ca4ff07821058b8b251445d63d6b13ed1098a6417e39cac85197dbe31962ab9bd9f1f22a226d45366f6d0620fdb08c900d281af6110284b20085b414861d905d88f2e52739ee8cbb8022143259d3dd84691730aa2d52da441a8de0c6958068870022a41e9629ad3473fd3b8fdbe319dadb9b4924da994d2d716c7896fbe35152f78b48245d6b2da4507faf582be8eaf159b721cc837b05ae7debb1f79d08cb8b515edad942a22bc4b1c33eb3d34b1c797f06af90a72d16e2f96d9a74aa11dca8586b222d01af0fb60070f6c402d72f15d97f28c6f6d7027a5f5ce6c3233dc4e2ede496b278be4fff608cee8d3e1add806aeca51094cbb06397c1ecc328e746537c7e3ccdb5cb1136bf60635882d4d41c6ec6836ab37efa214f72208ed9f4d7cdd38ee310280542e38b1c43fb6de26b3672e1ec3cc99bcb246f66a938a3241ab3e91f7c861fbf77710b1e5e49915bae974203ba0e9e9c9cbc373d6d6d305a040a89c2a77f50b27d5782bbbf7acccf28349235dd16cf6dd374f7295e1de8a45!
 c02d37499182b01cc0201a085d61a2144d8b2ac8fb6ed340e77240c4261890!
 e04c2501
85262546d534a032154b59e0ad394e41c98182bf268ce6721ed9f064e0253356f6da2e24c1f030f783c15fe6da680af8021602bd051532ca9b8521488559f61aa86c29343578fbf0264a94c906c7d3409214c20043457a116ff6de6795578012889ff6b98fe016ea0ce1c203e47720000000049454e44ae426082</data>
+    </image>
+    <image name="image2">
         <data format="PNG" length="173">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000007449444154789cedd5c109c0200c05d06fe936812c10b2ffdd85d25385b6a991480f053f081af0291210f828c5a9d9c4de96cd2b9ad9eb0000660e2fe0c2519839c4f70c4c446d5e6b3538cf928245e4b2f6f014acaa8fda1d4fc1a5741b22079f9d111d96ea8a912c78c10bee64e60719f57e9203ad452a040318f5f70000000049454e44ae426082</data>
     </image>
-    <image name="image2">
+    <image name="image3">
         <data format="PNG" length="210">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000009949444154789ced94410e85200c445f89c7367f61bc775d2848a42860ffced9548bbe8e13043e1d928177f481a123dc2b34f6f47a3de2b865a8843f4001982a0b3d5f62c58300aa1ad70550449ab9d507a773a8a4ba4f92a2df333c64c63bebbd82e5b8addecbcc7820eb4266c639745dfa80f36faf66c66fa19c3f882fb470ec05cdc0bed07893f68e171492635f686c3eeff6ba3c8fdd366dc4c0452cf153a9590000000049454e44ae426082</data>
     </image>
-    <image name="image3">
+    <image name="image4">
         <data format="PNG" length="217">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000a049444154789cd5954d0a802010859fd14668e18de662d222bc98376a21b4ac451992c66469e0b7f187f1f11c47052a218e762daddbfb9e99f6568f80b5364b8588ce35440400e80a398ce8f99034d2292cc37c8ebd530feb583a05e954341f8a027b2a7d3a1f09bf854dc5d5d953aa396e4f38cab199e2d2e108abe156f82e30977fcb4d8ff942d75dbebed2e143953a93f6caad3d6111f44b7d4f820ff9c0069bb51ecd122066740000000049454e44ae426082</data>
     </image>
-    <image name="image4">
+    <image name="image5">
         <data format="PNG" length="725">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000029c49444154789c8d95ad76db4010853ff718cc3289d950d06136344c98c362964087256f503f426161021be6b2842550612e8be14299496c866dc14ab2fc77da2192665777eedc3b5af53813afafaf414448d3742f6f6600a82a005555912409575757bdeebefe396011613299b440876b4d946589f7fe68cf596080cd6673047658485571cefd3ff02900333b2a70aa23806fa792799e07336b9938e770ceede9dde82f2247fa9e65acaa244942599688486b54374eb5ff4fc6105b3c9c882e6853ec9c142719376c4e31ede655756f42ba71a40dc06ab50a5996311c0ecf8237467e7e7e022092309f5fb7787b8cdfdfdf83f79efc2347668288b40087d786695994e479ceb6daf2f0f01066b319d7d7d7bd5e1774b3f154c5163580d34c019ca408020e7ce159afffb0dd16a81a1717198bc5224ad130bd9c5ee2d2145503538e6c3103849c4f3e78656a53d2af94e79767fc57fcfad4946c7411419f9e7e85b228c3ffc457f80aa3300a12248cc228acd7ebf0e3fbcf301e8fc360908524494236c842bfda56dcdddd9c75f73052522e999223cc98311e8f4964486905cfbf5ea8aa8a7490d237c0fb22cea31988106b48ed3638!
 5c54dc14c4f160dfb9c133b4217fd88019e97018d76b77fa6551e045a29e66b4be39882ed69d38031520e604f0b6c5886788df6c5a4f1cf5b835096b00b17628148b35746f673b39d278da0945e9236065e705adc976371a200a76b8e2302ba9fb6c7a633299f20debb06cc96a7cb4faba07ea9a6d35680d58cb39180c582cee2263ef7d631588412540159d338b30d2b0b21d183bcd31430496cb25f3f9bcd7cfb28c8fb70f7ebfbda16ac4f347d81b3ee93ccb0eb2edb39ea6e572c9e3e3630f3a87d06ab50aabd51bdbfaffa5686dcace99dd5f0354cb785f1993e984dbdb5beeefef5bbcbfd1f69e0c0f8448030000000049454e44ae426082</data>
     </image>
-    <image name="image5">
+    <image name="image6">
         <data format="PNG" length="172">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000007349444154789ced92c10e80200840b1ef661d1cff4d876aa888a17669f9360f283ed80060f159425f3a71f53602e08e992b098801d02854176ae47f21ce1fb5b05d38eddc9060d0f11379635b3bc92bd518e239a943ec1d5ab7785cee107be4b215af4091f894de47181ecea59ede9ec59f380062ac28b10fe74fef0000000049454e44ae426082</data>
     </image>
-    <image name="image6">
+    <image name="image7">
         <data format="PNG" length="173">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000007449444154789ced92c10ac02008406ddf2d3b84ffed0ea3586a26d165e0830ea53e8504487e4b910f5489f19ea5a3ca0f8a896365b306c42dd613c649bdc2598316136219f0f936c0a2ef00d75a62614d3ab22996f2a362ffa337c5ebede962aad1a2e84aaaa2f750dd12748c0fd0ab9324677800596e28b1bb69e3510000000049454e44ae426082</data>
     </image>
-    <image name="image7">
+    <image name="image8">
         <data format="PNG" length="187">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000008249444154789ccdd341128020080550e8e02ebc38ad3273503e48537fe3e48c4f2425fa28e29c6f39920bf9276cb60185358877611388c2576418cda015f520b4e6b55be109dc0622b8e22acf31056e18dfdff80606aa551cc63564c4dcf80cd0201d577a5c85a8845fdc025ea5307afccd07e23a1df283ec2b37d9ad5fb4dfefd49cfbf72facb651b89d0000000049454e44ae426082</data>
     </image>
-    <image name="image8">
+    <image name="image9">
         <data format="PNG" length="248">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000bf49444154789cd593410a83301045df488ee51dbc8c3ba98bf46a9eabd385350d266362444a3f0c4266fcf3f824f06f12402b66da8c55f3de2212cf9d92cb98c0ba2d7c4544cf9a07638bbad53c4491235ecf7cc1623697a92540c11ff4fda75275015d24a9389e7d6f53df4fe4ccab323eea0f03c0c4b2a0712ce6add89b59b7661c3be095985f261679ee4ebcc22c9788551fe6a2cbc4969a894bcb6f23ee361aab62e252c57294dfbfb610bbf2c897b8a46cc6677eaa519571fa087ea83762da9aba45b637520000000049454e44ae426082</data>
     </image>
-    <image name="image9">
+    <image name="image10">
         <data format="PNG" length="270">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000d549444154789cc5955d0a84300c8427e2a90a9e6c8b0f4b3dd982d7ca3e58d7fe4cd0ba5d7640024df265da0a057e2439c9eb8d9eaa8841a0c9aad8c82ab32f9c425be1e30e0dcf00c00308f0b3a7a07410a9d7142e00b42c5a5fab696b979b1c837fc0c316b6e4165b64f78d716359919bdc4570de47c04732dd5e5bcc35f0c97762ae787936dccf7513577e79f48c4b27aa0f1327b240f5117fcbe348aa33b6e0224b054d0746b8025e2e3b3e73cde0dd1c97f02e8ed9d0af1db381224bdf33eee698a934a0f617b45540d00bcf4ca08fc0dff406e325c198b16b67fb0000000049454e44ae426082</data>
     </image>
-    <image name="image10">
+    <image name="image11">
         <data format="PNG" length="662">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000025d49444154789cd593a172db4010863f670a56ecc42278d0653693a0c21c68d6c2e60df21a818111349499c254a8329b55f0e089ddb15ba602b79d6692d699b6d399fee86e67e7db7f77efe07fd3e2c74bd775b3730eef3d5115002382b5166b2d5757578b1729bf02b76d3b0f8703b92d58aed7600400ef1ce3c70306a8aa8aebebeb57c117dfa06ddb525dd754efb600a82a49138a123532ec3ac42b9bcde655ce2ffabe9f87c340fde13dcb4d8daaa24e48ee12c6823808c107969b1a8a9ce3f1f8aa515c38e7c8ada5aa6b00c45f129c67d223938c88e6c860d118b1d592d139baae9bcf83a78965b5465134801b1d2e1f4945c0e350096408ea154490c2e0bd3fef5853c2e486a0019f4d84f58418418362b0408e8b23c924501093314dd359f01b809814112025144015f1964c0bbc1b484b07e4688880c029ebd78e4141f5b434fd76864c053f1e084b0f8580265440634044ce838bbcc03987a61350a3a2285e1d5a4414d0708aa598082162ad3d0fb6d6e287cfa498508d274050447370428c91af8d10fd4481608c390b5e00dcddddcd8e80a9de420248e804840856f03e02907d729465c9ba5ae3468731e6a79fe50260!
 b55a6102c4ee40a6894c33f2cb0cb106512814f8f899b22cb9b9b959b8d1f1f8f848d334b46dfbe29bfe5eadeffbf9783c323a871881ecb4200d1151a8eb9aed76bb00188661eeba8efd7e8f3186ed76cb6ab57ae2fe591b5dd7cdde7b628c8808799e63ada5aaaa67b9bbdd6e6e9a06ef3d755d3f29fec7eafb7ebebdbd9dadb5735996f3fdfdfdfca2e3dfd5c3c3c3dc340dd334b1d96cfe1e184e63dceff7a494fe26f61fe90bbc4c5e59b8ac895e0000000049454e44ae426082</data>
     </image>
 </images>
@@ -743,5 +773,6 @@
 <includehints>
     <includehint>pynavbarctrl.h</includehint>
     <includehint>pyfreezerctrl.h</includehint>
+    <includehint>pydragspacectrl.h</includehint>
 </includehints>
 </UI>

Modified: trunk/source/python/AvidaGui2/pyFreezerCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyFreezerCtrl.py	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyFreezerCtrl.py	2005-06-02 20:15:09 UTC (rev 171)
@@ -4,8 +4,8 @@
 from qt import *
 from pyFreezerView import pyFreezerView
 from pyReadFreezer import pyReadFreezer
+from pyDragListItem import pyDragListItem
 
-
 class pyFreezerCtrl(pyFreezerView):
 
   def __init__(self,parent = None,name = None,fl = 0):
@@ -17,6 +17,9 @@
     self.connect(self.m_list_view, 
       SIGNAL("clicked(QListViewItem*, const QPoint &, int )"),
       self.clicked_itemSlot)
+    self.connect(self.m_list_view, 
+      SIGNAL("pressed(QListViewItem*, const QPoint &, int )"),
+      self.pressed_itemSlot)
 
   def construct(self, session_mdl):
     self.m_session_mdl = session_mdl
@@ -24,7 +27,7 @@
       PYSIGNAL("doRefreshFreezerInventorySig"),
       self.createFreezerIndexSlot)
     self.createFreezerIndexSlot()
-    
+
   def createFreezerIndexSlot(self):
     empty_item = self.m_list_view.firstChild()
     while empty_item.firstChild():
@@ -58,12 +61,26 @@
         tmp_item = QListViewItem(organism_item)
         tmp_item.setText(0,organism_name)
 
+# if mouse is pressed on list item prepare its info to be dragged        
+  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
+#      dragHolder.dragEnabled()
+      dragHolder.dragCopy()
+
+
+
   # if freezer item is clicked read file/directory assocatied with item
 
   def clicked_itemSlot(self, item):
    
     # check that the item is not at the top level 
-
+    
     if item != None and item.depth() > 0:
       top_level = item
       while top_level.parent():
@@ -81,3 +98,14 @@
       thawed_item = pyReadFreezer(file_name)
       self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("doDefrostDishSig"),
         (item.text(0), thawed_item,))
+
+
+  class itemDrag(QTextDrag):
+    def __init__(self, item_name, parent=None, name=None):
+        QStoredDrag.__init__(self, 'item name (QString)', parent, name)
+        self.setText(item_name)
+
+
+
+
+

Modified: trunk/source/python/AvidaGui2/pyOneAna_GraphCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOneAna_GraphCtrl.py	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyOneAna_GraphCtrl.py	2005-06-02 20:15:09 UTC (rev 171)
@@ -6,8 +6,8 @@
 from pyOneAna_GraphView import pyOneAna_GraphView
 from qt import *
 from qwt import *
+import os
 
-
 class PrintFilter(QwtPlotPrintFilter):
   def __init__(self):
     QwtPlotPrintFilter.__init__(self)
@@ -45,6 +45,9 @@
     self.m_combo_box_2.clear()
     self.m_combo_box_1.setInsertionPolicy(QComboBox.AtBottom)
     self.m_combo_box_2.setInsertionPolicy(QComboBox.AtBottom)
+#jmc this should be made so it starts with no graph
+    self.m_petri_dish_dir_path = ' '
+    self.m_petri_dish_dir_exists_flag = False
 
     # set up the combo boxes with plot options
     for entry in self.m_avida_stats_interface.m_entries:
@@ -74,11 +77,8 @@
       self.m_combo_box_1_color, SIGNAL("activated(int)"), self.modeActivatedSlot)
     self.connect(
       self.m_combo_box_2_color, SIGNAL("activated(int)"), self.modeActivatedSlot)
-  
-
-    self.m_x_array = zeros(2, Float)
-    self.m_y_array = zeros(2, Float)
-
+    self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedSig"),
+      self.petriDropped)  
     self.m_graph_ctrl.setAxisTitle(QwtPlot.xBottom, "Time (updates)")
     self.m_graph_ctrl.setAxisAutoScale(QwtPlot.xBottom)
 
@@ -92,19 +92,28 @@
     self.m_combo_box_1_color.setCurrentItem(0)
     self.m_combo_box_2_color.setCurrentItem(2)
 
-    self.modeActivatedSlot(self.m_combo_box_1.currentItem()) 
+    self.modeActivatedSlot() 
 
     self.connect(
       self.m_session_mdl.m_session_mdtr, PYSIGNAL("printGraphSig"),
       self.printGraphSlot)
 
   def load(self, filename, colx, coly):
-    init_file = cInitFile(cString('default.workspace/freezer/2k.full/' + filename))
+    init_file = cInitFile(cString('default.workspace/freezer/' + str(self.m_petri_dish_dir_path) + '.full/' + filename))
+
+    print "loading"
+    if not init_file.IsOpen():
+      print "the file you are looking for does not exist"
+      return
+
     init_file.Load()
     init_file.Compress()
 
+
     x_array = zeros(init_file.GetNumLines(), Float)
     y_array = zeros(init_file.GetNumLines(), Float)
+    print "init_file.GetNumLines() is "
+    print init_file.GetNumLines()
 
     for line_id in range(init_file.GetNumLines()):
       line = init_file.GetLine(line_id)
@@ -112,9 +121,13 @@
       y_array[line_id] = line.GetWord(coly - 1).AsDouble()
     return x_array, y_array
   
-  def modeActivatedSlot(self, index):
+  def modeActivatedSlot(self, index = None): #note: index is not used
     self.m_graph_ctrl.clear()
 
+    #check to see if we have a valid directory path to analyze
+    if self.m_petri_dish_dir_exists_flag == False:
+      return
+
     if self.m_combo_box_1.currentItem() or self.m_combo_box_2.currentItem():
 
       if self.m_combo_box_1.currentItem():
@@ -151,7 +164,6 @@
         self.m_graph_ctrl.m_curve_2 = self.m_graph_ctrl.insertCurve(self.m_avida_stats_interface.m_entries[index_2][0])
         self.m_graph_ctrl.setCurveData(self.m_graph_ctrl.m_curve_2, self.m_curve_2_arrays[0], self.m_curve_2_arrays[1])
         if self.m_Colors[self.m_combo_box_2_color.currentItem()][0] is 'thick':
-          print "+++++++++++++++++++++++++++++++++++++++++++++++++++"
           self.m_graph_ctrl.setCurvePen(self.m_graph_ctrl.m_curve_2, QPen(self.m_Colors[self.m_combo_box_2_color.currentItem()][1],3))
         else:
           self.m_graph_ctrl.setCurvePen(self.m_graph_ctrl.m_curve_2, QPen(self.m_Colors[self.m_combo_box_2_color.currentItem()][1]))
@@ -190,4 +202,52 @@
       self.m_graph_ctrl.printPlot(printer, filter)
 
 
+  def gotIt( self, e):
+    print "got it"
 
+  def petriDropped(self, e): 
+      # a check in pyOneAnalyzeCtrl.py makes sure this is a valid path
+      self.m_petri_dish_dir_exists_flag = True
+      # Try to decode to the data you understand...
+      str = QString()
+      if ( QTextDrag.decode( e, str ) ) :
+        self.m_petri_dish_dir_path = str
+        self.modeActivatedSlot()
+        return
+
+      pm = QPixmap()
+      if ( QImageDrag.decode( e, pm ) ) :
+        print "it was a pixmap"
+        return
+
+      # QStrList strings
+      #strings = QStrList()
+      strings = []
+      if ( QUriDrag.decode( e, strings ) ) :
+        print "it was a uri"
+        m = QString("Full URLs:\n")
+        for u in strings:
+            m = m + "   " + u + '\n'
+        # QStringList files
+        files = []
+        if ( QUriDrag.decodeLocalFiles( e, files ) ) :
+            print "it was a file"
+            m += "Files:\n"
+            # for (QStringList.Iterator i=files.begin() i!=files.end() ++i)
+            for i in files:
+                m = m + "   " + i + '\n'
+#jmc delete
+#        self.setText( m )
+#        self.setMinimumSize(self.minimumSize().expandedTo(self.sizeHint()))
+        return
+
+      str = decode( e ) 
+      if str:
+        print " in if str"
+#jmc delete
+#        self.setText( str )
+#        self.setMinimumSize(self.minimumSize().expandedTo(self.sizeHint()))
+        return
+
+
+

Modified: trunk/source/python/AvidaGui2/pyOneAna_PetriDishCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOneAna_PetriDishCtrl.py	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyOneAna_PetriDishCtrl.py	2005-06-02 20:15:09 UTC (rev 171)
@@ -8,4 +8,17 @@
 
   def __init__(self,parent = None,name = None,fl = 0):
     pyOneAna_PetriDishView.__init__(self,parent,name,fl)
-    self.m_one_ana_pop_name.setText('A Relatively Boring Population')
+    self.m_one_ana_pop_name.setText('Drag A Full Petri Dish Into This Window To Analyze It')
+
+  def construct(self, session_mdl):
+    self.m_session_mdl = session_mdl     
+    self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedSig"),
+      self.petriDropped)  
+
+
+  def petriDropped(self, e):
+
+    # Try to decode to the data you understand...
+    string = QString()
+    if ( QTextDrag.decode( e, string ) ) :
+      self.m_one_ana_pop_name.setText(string)

Modified: trunk/source/python/AvidaGui2/pyOneAnalyzeCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOneAnalyzeCtrl.py	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyOneAnalyzeCtrl.py	2005-06-02 20:15:09 UTC (rev 171)
@@ -2,14 +2,36 @@
 
 from qt import *
 from pyOneAnalyzeView import pyOneAnalyzeView
+import os
 
-
 class pyOneAnalyzeCtrl(pyOneAnalyzeView):
 
   def __init__(self,parent = None,name = None,fl = 0):
     pyOneAnalyzeView.__init__(self,parent,name,fl)
+    self.setAcceptDrops(1)
 
   def construct(self, session_mdl):
     self.m_session_mdl = session_mdl
     self.m_one_ana_graph_ctrl.construct(self.m_session_mdl)
-   
+    self.m_one_ana_petri_ctrl.construct(self.m_session_mdl) 
+    self.connect( self, PYSIGNAL("petriDishDroppedSig"), self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedSig"))
+    print "self" 
+    print self
+
+  def dropEvent( self, e ):
+    string = QString()
+
+    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("petriDishDroppedSig"), (e,))
+
+
+  def dragEnterEvent( self, e ):
+#      # Check if you want the drag...
+#        if (secret.canDecode( e ) or
+#            QTextDrag.canDecode( e ) or
+#            QImageDrag.canDecode( e ) or
+#            QUriDrag.canDecode( e )):
+    e.accept()
\ No newline at end of file

Modified: trunk/source/python/AvidaGui2/pyOneAnalyzeView.ui
===================================================================
--- trunk/source/python/AvidaGui2/pyOneAnalyzeView.ui	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyOneAnalyzeView.ui	2005-06-02 20:15:09 UTC (rev 171)
@@ -49,7 +49,7 @@
                     </widget>
                     <widget class="pyOneAna_PetriDishCtrl">
                         <property name="name">
-                            <cstring>pyOneAna_PetriDishCtrl1</cstring>
+                            <cstring>m_one_ana_petri_ctrl</cstring>
                         </property>
                         <property name="sizePolicy">
                             <sizepolicy>
@@ -103,7 +103,7 @@
         </sizehint>
         <container>0</container>
         <sizepolicy>
-            <hordata>5</hordata>
+            <hordata>0</hordata>
             <verdata>0</verdata>
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
@@ -112,6 +112,10 @@
         <property type="0">3</property>
         <property type="1">pyOneAna_GraphCtrl</property>
         <property type="3">-1</property>
+        <property type="1">pyOneAna_GraphCtrl</property>
+        <property type="3">-1</property>
+        <property type="1">pyOneAna_GraphCtrl</property>
+        <property type="0">-1</property>
         <property type="pyOneAna_GraphCtrl"></property>
         <property type="-1">1</property>
     </customwidget>
@@ -124,7 +128,7 @@
         </sizehint>
         <container>0</container>
         <sizepolicy>
-            <hordata>5</hordata>
+            <hordata>0</hordata>
             <verdata>0</verdata>
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
@@ -133,6 +137,10 @@
         <property type="0">3</property>
         <property type="1">pyOneAna_PetriDishCtrl</property>
         <property type="3">-1</property>
+        <property type="1">pyOneAna_PetriDishCtrl</property>
+        <property type="3">-1</property>
+        <property type="1">pyOneAna_PetriDishCtrl</property>
+        <property type="0">-1</property>
         <property type="pyOneAna_PetriDishCtrl"></property>
         <property type="-1">1</property>
     </customwidget>
@@ -145,7 +153,7 @@
         </sizehint>
         <container>0</container>
         <sizepolicy>
-            <hordata>5</hordata>
+            <hordata>0</hordata>
             <verdata>0</verdata>
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
@@ -154,6 +162,10 @@
         <property type="0">3</property>
         <property type="1">pyOneAna_StatsCtrl</property>
         <property type="3">-1</property>
+        <property type="1">pyOneAna_StatsCtrl</property>
+        <property type="3">-1</property>
+        <property type="1">pyOneAna_StatsCtrl</property>
+        <property type="0">-1</property>
         <property type="pyOneAna_StatsCtrl"></property>
         <property type="-1">1</property>
     </customwidget>
@@ -166,7 +178,7 @@
         </sizehint>
         <container>0</container>
         <sizepolicy>
-            <hordata>5</hordata>
+            <hordata>0</hordata>
             <verdata>0</verdata>
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
@@ -175,6 +187,10 @@
         <property type="0">3</property>
         <property type="1">pyOneAna_TimelineCtrl</property>
         <property type="3">-1</property>
+        <property type="1">pyOneAna_TimelineCtrl</property>
+        <property type="3">-1</property>
+        <property type="1">pyOneAna_TimelineCtrl</property>
+        <property type="0">-1</property>
         <property type="pyOneAna_TimelineCtrl"></property>
         <property type="-1">1</property>
     </customwidget>

Added: trunk/source/python/AvidaGui2/pyOrgSquareCtrl.py
===================================================================
--- trunk/source/python/AvidaGui2/pyOrgSquareCtrl.py	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyOrgSquareCtrl.py	2005-06-02 20:15:09 UTC (rev 171)
@@ -0,0 +1,31 @@
+
+print """
+XXX fixme: in pyOrgSquareCtrl.py,
+pyOrgSquareCtrl.setAvidaSlot(),
+most of the code in this function should only be performed when
+self.m_avida is not None.
+ at kgn
+"""
+
+from AvidaCore import cConfig
+
+from qt import PYSIGNAL, QBrush, QColor, QLayout, QPen, QSize, Qt, QVBoxLayout, QWidget, QWMatrix
+from qtcanvas import QCanvas, QCanvasRectangle, QCanvasView
+
+class pySquareVBoxLayout(QVBoxLayout):
+  def __init__(self, *args): apply(QVBoxLayout.__init__, (self,)+args)
+  def hasHeightForWidth(self): return True
+  def heightForWidth(self, w): return w
+
+class pyOrgSquareCtrl(QWidget):
+  def __init__(self,parent = None,name = None,fl = 0):
+    QWidget.__init__(self,parent,name,fl)
+
+  def construct(self, session_mdl):
+    self.m_canvas = QCanvas(25,25)
+    self.m_canvas.setBackgroundColor(Qt.darkGray)
+    self.m_canvas_view = QCanvasView(self.m_canvas, self,"m_canvas_view")
+
+  def paint(self, color):
+    self.m_canvas.setBackgroundColor(color)
+ 
\ No newline at end of file

Added: trunk/source/python/AvidaGui2/pyOrgSquareView.ui
===================================================================
--- trunk/source/python/AvidaGui2/pyOrgSquareView.ui	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyOrgSquareView.ui	2005-06-02 20:15:09 UTC (rev 171)
@@ -0,0 +1,62 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>pyOrgSquareView</class>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>pyOrgSquareView</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>202</width>
+            <height>202</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>pyPetriDishView</string>
+    </property>
+    <vbox>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <property name="margin">
+            <number>0</number>
+        </property>
+        <property name="spacing">
+            <number>0</number>
+        </property>
+        <property name="resizeMode">
+            <enum>Minimum</enum>
+        </property>
+        <widget class="QLabel">
+            <property name="name">
+                <cstring>textLabel4</cstring>
+            </property>
+            <property name="minimumSize">
+                <size>
+                    <width>200</width>
+                    <height>200</height>
+                </size>
+            </property>
+            <property name="backgroundMode">
+                <enum>PaletteShadow</enum>
+            </property>
+            <property name="font">
+                <font>
+                    <pointsize>24</pointsize>
+                </font>
+            </property>
+            <property name="text">
+                <string>mock org square</string>
+            </property>
+            <property name="scaledContents">
+                <bool>false</bool>
+            </property>
+            <property name="alignment">
+                <set>AlignCenter</set>
+            </property>
+        </widget>
+    </vbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Modified: trunk/source/python/AvidaGui2/pyTemporaryReloads.py
===================================================================
--- trunk/source/python/AvidaGui2/pyTemporaryReloads.py	2005-05-30 00:11:07 UTC (rev 170)
+++ trunk/source/python/AvidaGui2/pyTemporaryReloads.py	2005-06-02 20:15:09 UTC (rev 171)
@@ -46,6 +46,7 @@
   "AvidaGui2.pyAnalyzeControlsView",
   "AvidaGui2.pyAnalyzeControlsCtrl",
   "AvidaGui2.pyAvidaStatsInterface",
+  "AvidaGui2.pyDragSpaceCtrl",
   "AvidaGui2.pyFreezeDialogView",
   "AvidaGui2.pyFreezeDialogCtrl",
   "AvidaGui2.pyFreezerView",




More information about the Avida-cvs mailing list