CVS: anygui/lib/anygui Attribs.py,1.19,1.20 Models.py,1.20,1.21 Proxies.py,1.25,1.26 References.py,1.15,1.16

"Dallas T. Johnston" <[email protected]> Fri, 08 Nov 2002 02:52:25 -0800
Newsgroups gmane.comp.python.anygui.cvs
Message-ID <[email protected]>
Update of /cvsroot/anygui/anygui/lib/anygui
In directory usw-pr-cvs1:/tmp/cvs-serv32337/lib/anygui

Modified Files:
	Attribs.py Models.py Proxies.py References.py 
Log Message:
Finally got SF to accept the commit... =)


Index: Attribs.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/Attribs.py,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** Attribs.py	8 Oct 2002 18:06:40 -0000	1.19
--- Attribs.py	8 Nov 2002 10:52:23 -0000	1.20
***************
*** 55,65 ****
          if name.startswith('install') and name.endswith('Model'):
              def metaInstall(model):
!                 self.installModel(self, uncapitalizeAttribute(name[7:][:-5]), model)
              return metaInstall
          if name.startswith('remove') and name.endswith('Model'):
              def metaRemove():
!                 self.removeModel(self, uncapitalizeAttribute(name[6:][:-5]))
              return metaRemove
          # === END FOR MODELS === #
          
          if not self.state.has_key(name):
--- 55,66 ----
          if name.startswith('install') and name.endswith('Model'):
              def metaInstall(model):
!                 self.installModel(self.wrapper, uncapitalizeAttribute(name[7:-5]), model)
              return metaInstall
          if name.startswith('remove') and name.endswith('Model'):
              def metaRemove():
!                 self.removeModel(self.wrapper, uncapitalizeAttribute(name[6:-5]))
              return metaRemove
          # === END FOR MODELS === #
+ 
          
          if not self.state.has_key(name):

Index: Models.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/Models.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -r1.20 -r1.21
*** Models.py	24 Sep 2002 15:28:29 -0000	1.20
--- Models.py	8 Nov 2002 10:52:23 -0000	1.21
***************
*** 7,13 ****
  # unlinking problems.
  
  class Assignee:
  
!     _locked = 0
  
      def __init__(self):
--- 7,15 ----
  # unlinking problems.
  
+ # TODO: Cleanup the use if both names and objects 
+ 
  class Assignee:
  
!     _notifyLocked = 0
  
      def __init__(self):
***************
*** 20,24 ****
              self.names.append(name)
              self.objects.append(object)
!             
      def removed(self, object, name):
          push = getattr(object, 'push', None)
--- 22,34 ----
              self.names.append(name)
              self.objects.append(object)
!             link(object.proxy, self.eventUpdate)
! 
!     def eventUpdate(self, event):
!         val = self.getValue()
!         event.source.pull()
! 		# only notify if value has changed
!         if val != self.getValue():
!             send(self)
! 
      def removed(self, object, name):
          push = getattr(object, 'push', None)
***************
*** 26,41 ****
              self.objects.remove(object)
              self.names.remove(name)
  
!     def lockPush(self):
!         self._locked = 1
  
!     def unlockPush(self):
!         self._locked = 0
  
!     def send(self, **kwds):
!         if self._locked == 0:
              for object in self.objects:
!                 object.push(names=self.names)
!         send(self, **kwds)
  
  
--- 36,55 ----
              self.objects.remove(object)
              self.names.remove(name)
+             unlink(object.proxy, self.eventUpdate)
  
!     def lockNotify(self):
!         self._notifyLocked = 1
  
!     def unlockNotify(self):
!         self._notifyLocked = 0
  
!     def notify(self, **kwds):
!         if not self._notifyLocked:
              for object in self.objects:
!                 nameDict = {}
!                 for name in self.names:
!                     nameDict[name] = self
!             object.push(nameDict)
!             send(self, **kwds)
  
  
***************
*** 52,57 ****
  
      def setValue(self, value):
!         self._value = value
!         self.send()
  
      def getValue(self):
--- 66,71 ----
  
      def setValue(self, value):
!         self._value = int(value)
!         self.notify()
  
      def getValue(self):
***************
*** 64,70 ****
      def __int__(self): return self._value
  
  
- class ListModel(Model, UserList):
  
  
      def __init__(self, *arg, **kw):
--- 78,85 ----
      def __int__(self): return self._value
  
+     def __nonzero__(self): return self._value
  
  
+ class ListModel(Model, UserList):
  
      def __init__(self, *arg, **kw):
***************
*** 74,78 ****
      def setValue(self, value):
          self.data[:] = list(value)
!         self.send()
  
      def getValue(self):
--- 89,93 ----
      def setValue(self, value):
          self.data[:] = list(value)
!         self.notify()
  
      def getValue(self):
***************
*** 81,134 ****
      def __setitem__(self, i, item):
          UserList.__setitem__(self, i, item)
!         self.send()
  
      def __delitem__(self, i):
          UserList.__delitem__(self, i)
!         self.send()
  
      def __setslice__(self, i, j, other):
          UserList.__setslice__(self, i, j, other)
!         self.send()
          
      def __delslice__(self, i, j):
          UserList.__delslice__(self, i, j)
!         self.send()
          
      def __iadd__(self, other):
          UserList.__iadd__(self, other)
!         self.send()
          
      def __imul__(self, n):
          UserList.__imul__(self, n)
!         self.send()
          
      def append(self, item):
          UserList.append(self, item)
!         self.send()
      
      def insert(self, i, item):
          UserList.insert(self, i, item)
!         self.send()
          
      def pop(self, i=-1):
          result = UserList.pop(self, i)
!         self.send()
          return result
      
      def remove(self, item):
          UserList.remove(self, item)
!         self.send()
          
      def reverse(self):
          UserList.reverse(self)
!         self.send()
          
      def sort(self, *args):
          UserList.sort(self, *args)
!         self.send()
          
      def extend(self, other):
          UserList.extend(self, other)
!         self.send()
  
  
--- 96,149 ----
      def __setitem__(self, i, item):
          UserList.__setitem__(self, i, item)
!         self.notify()
  
      def __delitem__(self, i):
          UserList.__delitem__(self, i)
!         self.notify()
  
      def __setslice__(self, i, j, other):
          UserList.__setslice__(self, i, j, other)
!         self.notify()
          
      def __delslice__(self, i, j):
          UserList.__delslice__(self, i, j)
!         self.notify()
          
      def __iadd__(self, other):
          UserList.__iadd__(self, other)
!         self.notify()
          
      def __imul__(self, n):
          UserList.__imul__(self, n)
!         self.notify()
          
      def append(self, item):
          UserList.append(self, item)
!         self.notify()
      
      def insert(self, i, item):
          UserList.insert(self, i, item)
!         self.notify()
          
      def pop(self, i=-1):
          result = UserList.pop(self, i)
!         self.notify()
          return result
      
      def remove(self, item):
          UserList.remove(self, item)
!         self.notify()
          
      def reverse(self):
          UserList.reverse(self)
!         self.notify()
          
      def sort(self, *args):
          UserList.sort(self, *args)
!         self.notify()
          
      def extend(self, other):
          UserList.extend(self, other)
!         self.notify()
  
  

Index: Proxies.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/Proxies.py,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -r1.25 -r1.26
*** Proxies.py	8 Oct 2002 18:24:53 -0000	1.25
--- Proxies.py	8 Nov 2002 10:52:23 -0000	1.26
***************
*** 71,77 ****
                  # locked update of model, this keeps model
                  # from calling proxy.push
!                 model.lockPush()
                  model.setValue(state[prop])
!                 model.unlockPush()
                  state[prop] = model
              except:
--- 71,77 ----
                  # locked update of model, this keeps model
                  # from calling proxy.push
!                 model.lockNotify()
                  model.setValue(state[prop])
!                 model.unlockNotify()
                  state[prop] = model
              except:
***************
*** 114,120 ****
                  # has changed the value, thus we need to sync model
                  if state[prop] is not model:
-                     model.lockPush()
                      model.setValue(state[prop])
-                     model.unlockPush()
                  state[prop] = model
              except:
--- 114,118 ----

Index: References.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/References.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -r1.15 -r1.16
*** References.py	5 Jan 2002 18:28:05 -0000	1.15
--- References.py	8 Nov 2002 10:52:23 -0000	1.16
***************
*** 101,105 ****
          obj, func = unwrap(func)
  
!         self.hash = hash((obj, func))
  
          if obj is not None:
--- 101,109 ----
          obj, func = unwrap(func)
  
!         # Need to catch cases where obj is not hashable.
!         try:
!             self.hash = hash((obj, func))
!         except (TypeError):
!             self.hash = hash((None ,func))
  
          if obj is not None:



-------------------------------------------------------
This sf.net email is sponsored by: See the NEW Palm 
Tungsten T handheld. Power & Color in a compact size!
http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0001en