Author: reinhard Date: 2011-03-02 13:08:41 -0600 (Wed, 02 Mar 2011) New Revision: 10301
Modified: trunk/gnue-forms/ trunk/gnue-forms/src/GFObjects/GFButton.py Log: Disable buttons if attached action is disabled. Property changes on: trunk/gnue-forms ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2011-03-01 14:25:56.476999998 +0100 committer: Reinhard Müller <[email protected]> properties: branch-nick: forms + timestamp: 2011-03-02 16:18:27.755000114 +0100 committer: Reinhard Müller <[email protected]> properties: branch-nick: forms Name: bzr:file-ids - src/uidrivers/wx/widgets/button.py 10053@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2Fuidrivers%2Fwx%2Fwidgets%2Fbutton.py + src/GFObjects/GFButton.py 1459@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:src%2FGFObjects%2FGFButton.py Name: bzr:revision-id:v4 - 3116 [email protected] 3117 [email protected] 3118 [email protected] 3119 [email protected] 3120 [email protected] 3121 [email protected] 3122 [email protected] 3123 [email protected] 3124 [email protected] 3125 [email protected] 3126 [email protected] 3127 [email protected] 3128 [email protected] 3129 [email protected] 3130 [email protected] 3131 [email protected] 3132 [email protected] 3133 [email protected] 3134 [email protected] 3135 [email protected] 3136 [email protected] 3137 [email protected] 3138 [email protected] 3139 [email protected] 3140 [email protected] 3141 [email protected] 3142 [email protected] 3143 [email protected] 3144 [email protected] 3145 [email protected] 3146 [email protected] 3147 [email protected] 3148 [email protected] 3149 [email protected] 3150 [email protected] 3151 [email protected] 3152 [email protected] 3153 [email protected] 3154 [email protected] 3155 [email protected] 3156 [email protected] 3157 [email protected] 3158 [email protected] 3159 [email protected] 3160 [email protected] 3161 [email protected] 3162 [email protected] 3163 [email protected] 3164 [email protected] 3165 [email protected] 3166 [email protected] 3167 [email protected] 3168 [email protected] 3169 [email protected] 3170 [email protected] 3171 [email protected] 3172 [email protected] 3173 [email protected] 3174 [email protected] 3175 [email protected] 3176 [email protected] 3177 [email protected] 3178 [email protected] 3179 [email protected] 3180 [email protected] 3181 [email protected] 3182 [email protected] 3183 [email protected] 3184 [email protected] 3185 [email protected] 3186 [email protected] 3187 [email protected] 3188 [email protected] 3189 [email protected] 3190 [email protected] 3191 [email protected] 3192 [email protected] + 3116 [email protected] 3117 [email protected] 3118 [email protected] 3119 [email protected] 3120 [email protected] 3121 [email protected] 3122 [email protected] 3123 [email protected] 3124 [email protected] 3125 [email protected] 3126 [email protected] 3127 [email protected] 3128 [email protected] 3129 [email protected] 3130 [email protected] 3131 [email protected] 3132 [email protected] 3133 [email protected] 3134 [email protected] 3135 [email protected] 3136 [email protected] 3137 [email protected] 3138 [email protected] 3139 [email protected] 3140 [email protected] 3141 [email protected] 3142 [email protected] 3143 [email protected] 3144 [email protected] 3145 [email protected] 3146 [email protected] 3147 [email protected] 3148 [email protected] 3149 [email protected] 3150 [email protected] 3151 [email protected] 3152 [email protected] 3153 [email protected] 3154 [email protected] 3155 [email protected] 3156 [email protected] 3157 [email protected] 3158 [email protected] 3159 [email protected] 3160 [email protected] 3161 [email protected] 3162 [email protected] 3163 [email protected] 3164 [email protected] 3165 [email protected] 3166 [email protected] 3167 [email protected] 3168 [email protected] 3169 [email protected] 3170 [email protected] 3171 [email protected] 3172 [email protected] 3173 [email protected] 3174 [email protected] 3175 [email protected] 3176 [email protected] 3177 [email protected] 3178 [email protected] 3179 [email protected] 3180 [email protected] 3181 [email protected] 3182 [email protected] 3183 [email protected] 3184 [email protected] 3185 [email protected] 3186 [email protected] 3187 [email protected] 3188 [email protected] 3189 [email protected] 3190 [email protected] 3191 [email protected] 3192 [email protected] 3193 [email protected] Name: bzr:text-parents - src/uidrivers/wx/widgets/button.py [email protected] + src/GFObjects/GFButton.py svn-v3-single1-dHJ1bmsvZ251ZS1mb3Jtcw..:3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-forms:10108 Modified: trunk/gnue-forms/src/GFObjects/GFButton.py =================================================================== --- trunk/gnue-forms/src/GFObjects/GFButton.py 2011-03-01 16:45:39 UTC (rev 10300) +++ trunk/gnue-forms/src/GFObjects/GFButton.py 2011-03-02 19:08:41 UTC (rev 10301) @@ -45,6 +45,11 @@ self.label = "" self.action = None + #: L{common.logic.usercode.GAction} object linked to this commander. + self.__action = None + + self._inits.append(self._phase_2_init_) + self._validTriggers = { 'ON-ACTION' : 'On-Action', 'PRE-FOCUSOUT' : 'Pre-FocusOut', @@ -80,6 +85,24 @@ # ------------------------------------------------------------------------- + # Phase 2 initialization + # ------------------------------------------------------------------------- + + def _phase_2_init_(self): + + # This must run after phase 1 init because the actions register at the + # form in phase 1 init, and that must be done when this runs. + + # Link to action object + if self.action is not None: + self.__action = self._form._actions[self.action] + + # Register ourselves to the action so we get notified of action + # enables/disables + self.__action.register_commander(self) + + + # ------------------------------------------------------------------------- # Determine whether this widget is enabled or disabled # ------------------------------------------------------------------------- @@ -91,8 +114,12 @@ if not GFTabStop._is_enabled_(self, index): return False + elif self._form.in_filter_mode(): + return False + elif self.__action is not None: + return self.__action.enabled else: - return not self._form.in_filter_mode() + return True # ------------------------------------------------------------------------- @@ -113,7 +140,7 @@ self.processTrigger('On-Action', False) # Fire the action - if self.action is not None: - self._form._actions[self.action].run() + if self.__action is not None: + self.__action.run() finally: self._form.event_end() _______________________________________________ commit-gnue mailing list [email protected] http://lists.gnu.org/mailman/listinfo/commit-gnue
