Author: reinhard
Date: 2010-10-20 11:31:01 -0500 (Wed, 20 Oct 2010)
New Revision: 10210

Modified:
   trunk/gnue-forms/
   trunk/gnue-forms/src/GFObjects/GFBlock.py
Log:
Fix for dropdowns in grids.



Property changes on: trunk/gnue-forms
___________________________________________________________________
Name: bzr:revision-info
   - timestamp: 2010-10-20 17:21:39.443000078 +0200
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: forms

   + timestamp: 2010-10-20 18:30:22.869999886 +0200
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: forms

Name: bzr:file-ids
   - src/uidrivers/wx/widgets/_base.py  
10...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2Fuidrivers%2Fwx%2Fwidgets%2F_base.py

   + src/GFObjects/GFBlock.py   
1...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2FGFObjects%2FGFBlock.py

Name: bzr:revision-id:v4
   - 3116 reinhard.muel...@bytewise.at-20100426083500-vtmq0qvd7htz02zx
3117 reinhard.muel...@bytewise.at-20100512151744-2jx8tmtop30kl5n0
3118 reinhard.muel...@bytewise.at-20100705094014-ks9yv7b8gs6ychrb
3119 reinhard.muel...@bytewise.at-20100706085143-hyxadj30ayg28jpx
3120 reinhard.muel...@bytewise.at-20100706140804-sn3npws1ykm81ubx
3121 reinhard.muel...@bytewise.at-20100909134008-5p7jq048nkutldse
3122 reinhard.muel...@bytewise.at-20100923144753-e8hthxho7n5mwg9z
3123 reinhard.muel...@bytewise.at-20100929193018-7r3injoy8g28fwm6
3124 reinhard.muel...@bytewise.at-20100930073631-ilf6smgjt6mfvkpz
3125 reinhard.muel...@bytewise.at-20101011191957-yaj9rkqbervc91ac
3126 reinhard.muel...@bytewise.at-20101020084039-jmfxjbctt6vc2usd
3127 reinhard.muel...@bytewise.at-20101020124425-0dpprxsmanmaenty
3128 reinhard.muel...@bytewise.at-20101020124541-zppkmzww1lnsk8x4
3129 reinhard.muel...@bytewise.at-20101020141905-vjg7r3wihnm7mxam
3130 reinhard.muel...@bytewise.at-20101020143045-pf9ywx1s3hdqbsh7
3131 reinhard.muel...@bytewise.at-20101020143328-ctfmr3fpp5quq1eo
3132 reinhard.muel...@bytewise.at-20101020152139-rlllh9m2qn45atcz

   + 3116 reinhard.muel...@bytewise.at-20100426083500-vtmq0qvd7htz02zx
3117 reinhard.muel...@bytewise.at-20100512151744-2jx8tmtop30kl5n0
3118 reinhard.muel...@bytewise.at-20100705094014-ks9yv7b8gs6ychrb
3119 reinhard.muel...@bytewise.at-20100706085143-hyxadj30ayg28jpx
3120 reinhard.muel...@bytewise.at-20100706140804-sn3npws1ykm81ubx
3121 reinhard.muel...@bytewise.at-20100909134008-5p7jq048nkutldse
3122 reinhard.muel...@bytewise.at-20100923144753-e8hthxho7n5mwg9z
3123 reinhard.muel...@bytewise.at-20100929193018-7r3injoy8g28fwm6
3124 reinhard.muel...@bytewise.at-20100930073631-ilf6smgjt6mfvkpz
3125 reinhard.muel...@bytewise.at-20101011191957-yaj9rkqbervc91ac
3126 reinhard.muel...@bytewise.at-20101020084039-jmfxjbctt6vc2usd
3127 reinhard.muel...@bytewise.at-20101020124425-0dpprxsmanmaenty
3128 reinhard.muel...@bytewise.at-20101020124541-zppkmzww1lnsk8x4
3129 reinhard.muel...@bytewise.at-20101020141905-vjg7r3wihnm7mxam
3130 reinhard.muel...@bytewise.at-20101020143045-pf9ywx1s3hdqbsh7
3131 reinhard.muel...@bytewise.at-20101020143328-ctfmr3fpp5quq1eo
3132 reinhard.muel...@bytewise.at-20101020152139-rlllh9m2qn45atcz
3133 reinhard.muel...@bytewise.at-20101020163022-tgnjcv18nzrc5sfw

Name: bzr:text-parents
   - src/uidrivers/wx/widgets/_base.py  
svn-v3-single1-dHJ1bmsvZ251ZS1mb3Jtcw..:3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:10108

   + src/GFObjects/GFBlock.py   
reinhard.muel...@bytewise.at-20100923144753-e8hthxho7n5mwg9z


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2010-10-20 15:22:22 UTC (rev 
10209)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2010-10-20 16:31:01 UTC (rev 
10210)
@@ -370,7 +370,7 @@
                 finally:
                     self.__scrolling_blocked = False
 
-        self.__current_record_changed(True)
+        self.__current_record_changed(None, True)
 
         if not self.__in_query:
             self._focus_in()
@@ -387,7 +387,7 @@
         if self.__scrolling_blocked:
             return
 
-        self.__current_record_changed(False)
+        self.__current_record_changed(None, False)
 
     # -------------------------------------------------------------------------
 
@@ -509,8 +509,9 @@
 
         # And now scroll the entries
         if jumped:
-            self.__new_current_record()
-        self.__switch_record(position, False)
+            self.__current_record_changed(position, False)
+        else:
+            self.__switch_record(position, False)
 
 
     # -------------------------------------------------------------------------
@@ -549,7 +550,7 @@
         self.__query_values = {}
         self.__query_values.update(self._queryDefaults)
         self.__refresh_choices()
-        self.__current_record_changed(True)
+        self.__current_record_changed(None, True)
         if self._form.get_focus_block() is self:
             self.__update_record_status()
         else:
@@ -571,7 +572,7 @@
         self.__query_values = {}
         self.__query_values.update(self.__last_query_values)
         self.__refresh_choices()
-        self.__current_record_changed(True)
+        self.__current_record_changed(None, True)
         if self._form.get_focus_block() is self:
             self.__update_record_status()
         else:
@@ -590,7 +591,7 @@
 
         self.mode = 'normal'
         self.__refresh_choices()
-        self.__current_record_changed(True)
+        self.__current_record_changed(None, True)
 
     # -------------------------------------------------------------------------
 
@@ -621,7 +622,7 @@
         # the UI after we have changed the available choices, otherwise the UI
         # will get confused. Doing this here makes sure it even is done for
         # detail blocks that were queried before through the master.
-        self.__current_record_changed(True)
+        self.__current_record_changed(None, True)
 
     # -------------------------------------------------------------------------
 
@@ -1264,7 +1265,7 @@
         except:
             # if an exception happened, the record pointer keeps sticking at
             # the offending record, so we must update the UI
-            self.__current_record_changed(True)
+            self.__current_record_changed(None, True)
             raise
 
     # -------------------------------------------------------------------------
@@ -1471,14 +1472,20 @@
     # Current record has changed
     # -------------------------------------------------------------------------
 
-    def __current_record_changed(self, refresh_all):
+    def __current_record_changed(self, new_visible_start, refresh_all):
 
-        # Call __new_current_record() first so an ON-RECORDACTIVATED trigger
-        # can update calculated fields before the UI is updated.
-        self.__new_current_record()
-        self.__switch_record(None, refresh_all)
+        # Run triggers before the UI is updated, in case they change values.
+        if self.__resultset and self.__resultset.current:
+            self.processTrigger('ON-RECORDACTIVATED')
 
+        # Move the new record into editing position, and update the UI.
+        self.__switch_record(new_visible_start, refresh_all)
 
+        # Let all foreign key resultsets follow.
+        for field in self._fieldMap.itervalues():
+            field._event_new_current_record()
+
+
     # -------------------------------------------------------------------------
     # Switch the proper record into editing position
     # -------------------------------------------------------------------------
@@ -1541,19 +1548,6 @@
 
 
     # -------------------------------------------------------------------------
-    # Things that have to be done if a new current record is activated
-    # -------------------------------------------------------------------------
-
-    def __new_current_record(self):
-
-        if self.__resultset and self.__resultset.current:
-            self.processTrigger('ON-RECORDACTIVATED')
-
-        for field in self._fieldMap.itervalues():
-            field._event_new_current_record()
-
-
-    # -------------------------------------------------------------------------
     # Update the record status
     # -------------------------------------------------------------------------
 


_______________________________________________
commit-gnue mailing list
commit-gnue@gnu.org
http://lists.gnu.org/mailman/listinfo/commit-gnue

Reply via email to