commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r10301 - in trunk/gnue-forms: . src/GFObjects


From: reinhard
Subject: [gnue] r10301 - in trunk/gnue-forms: . src/GFObjects
Date: Wed, 2 Mar 2011 13:08:41 -0600 (CST)

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 <address@hidden>
properties: 
        branch-nick: forms

   + timestamp: 2011-03-02 16:18:27.755000114 +0100
committer: Reinhard Müller <address@hidden>
properties: 
        branch-nick: forms

Name: bzr:file-ids
   - src/uidrivers/wx/widgets/button.py 
address@hidden:trunk%2Fgnue-forms:src%2Fuidrivers%2Fwx%2Fwidgets%2Fbutton.py

   + src/GFObjects/GFButton.py  
address@hidden:trunk%2Fgnue-forms:src%2FGFObjects%2FGFButton.py

Name: bzr:revision-id:v4
   - 3116 address@hidden
3117 address@hidden
3118 address@hidden
3119 address@hidden
3120 address@hidden
3121 address@hidden
3122 address@hidden
3123 address@hidden
3124 address@hidden
3125 address@hidden
3126 address@hidden
3127 address@hidden
3128 address@hidden
3129 address@hidden
3130 address@hidden
3131 address@hidden
3132 address@hidden
3133 address@hidden
3134 address@hidden
3135 address@hidden
3136 address@hidden
3137 address@hidden
3138 address@hidden
3139 address@hidden
3140 address@hidden
3141 address@hidden
3142 address@hidden
3143 address@hidden
3144 address@hidden
3145 address@hidden
3146 address@hidden
3147 address@hidden
3148 address@hidden
3149 address@hidden
3150 address@hidden
3151 address@hidden
3152 address@hidden
3153 address@hidden
3154 address@hidden
3155 address@hidden
3156 address@hidden
3157 address@hidden
3158 address@hidden
3159 address@hidden
3160 address@hidden
3161 address@hidden
3162 address@hidden
3163 address@hidden
3164 address@hidden
3165 address@hidden
3166 address@hidden
3167 address@hidden
3168 address@hidden
3169 address@hidden
3170 address@hidden
3171 address@hidden
3172 address@hidden
3173 address@hidden
3174 address@hidden
3175 address@hidden
3176 address@hidden
3177 address@hidden
3178 address@hidden
3179 address@hidden
3180 address@hidden
3181 address@hidden
3182 address@hidden
3183 address@hidden
3184 address@hidden
3185 address@hidden
3186 address@hidden
3187 address@hidden
3188 address@hidden
3189 address@hidden
3190 address@hidden
3191 address@hidden
3192 address@hidden

   + 3116 address@hidden
3117 address@hidden
3118 address@hidden
3119 address@hidden
3120 address@hidden
3121 address@hidden
3122 address@hidden
3123 address@hidden
3124 address@hidden
3125 address@hidden
3126 address@hidden
3127 address@hidden
3128 address@hidden
3129 address@hidden
3130 address@hidden
3131 address@hidden
3132 address@hidden
3133 address@hidden
3134 address@hidden
3135 address@hidden
3136 address@hidden
3137 address@hidden
3138 address@hidden
3139 address@hidden
3140 address@hidden
3141 address@hidden
3142 address@hidden
3143 address@hidden
3144 address@hidden
3145 address@hidden
3146 address@hidden
3147 address@hidden
3148 address@hidden
3149 address@hidden
3150 address@hidden
3151 address@hidden
3152 address@hidden
3153 address@hidden
3154 address@hidden
3155 address@hidden
3156 address@hidden
3157 address@hidden
3158 address@hidden
3159 address@hidden
3160 address@hidden
3161 address@hidden
3162 address@hidden
3163 address@hidden
3164 address@hidden
3165 address@hidden
3166 address@hidden
3167 address@hidden
3168 address@hidden
3169 address@hidden
3170 address@hidden
3171 address@hidden
3172 address@hidden
3173 address@hidden
3174 address@hidden
3175 address@hidden
3176 address@hidden
3177 address@hidden
3178 address@hidden
3179 address@hidden
3180 address@hidden
3181 address@hidden
3182 address@hidden
3183 address@hidden
3184 address@hidden
3185 address@hidden
3186 address@hidden
3187 address@hidden
3188 address@hidden
3189 address@hidden
3190 address@hidden
3191 address@hidden
3192 address@hidden
3193 address@hidden

Name: bzr:text-parents
   - src/uidrivers/wx/widgets/button.py address@hidden

   + 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()




reply via email to

[Prev in Thread] Current Thread [Next in Thread]