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