Revisão | ce61301af1e4aa4e14befa8e3ea3af339db71533 (tree) |
---|---|
Hora | 2013-02-28 18:11:04 |
Autor | pylaf |
Commiter | pylaf |
Fix notify event
@@ -137,8 +137,8 @@ | ||
137 | 137 | self._owner = weakref.ref(owner) |
138 | 138 | self._proxy = weakref.ref(proxy) |
139 | 139 | self.register(Container(value)) |
140 | - self.bind('<Register>','register_hook') | |
141 | - self.bind('<Unregister>','unregister_hook') | |
140 | + self.bind('<Link>','link_hook') | |
141 | + self.bind('<Unlink>','unlink_hook') | |
142 | 142 | self.bind('<Set>','set_hook') |
143 | 143 | self.bind('<Get>','get_hook') |
144 | 144 | def set(self,value): |
@@ -146,11 +146,11 @@ | ||
146 | 146 | Observer.set(self,value) |
147 | 147 | def link(self,slave): |
148 | 148 | slave.register(self.container) |
149 | + self.container.notify('<Link>') | |
149 | 150 | def unlink(self): |
150 | - #TODO: 現状の値を保持するべきか、初期値に戻すべきか? | |
151 | - value = self.container.value | |
152 | - self.unregister() | |
151 | + value = self.container.value # 現状の値を保持する | |
153 | 152 | self.register(Container(value)) |
153 | + self.container.notify('<Unlink>') | |
154 | 154 | def _hook(self,prefix): |
155 | 155 | # getmembers を使うとメンバが評価されてしまい不要なフックが実行されてしまうので工夫した |
156 | 156 | #for k,v in inspect.getmembers(self.owner,inspect.ismethod): |
@@ -158,9 +158,9 @@ | ||
158 | 158 | if k.startswith(prefix): |
159 | 159 | if self.name == k.split(prefix)[-1]: |
160 | 160 | getattr(self.owner,k).__call__() |
161 | - def register_hook(self): | |
161 | + def link_hook(self): | |
162 | 162 | self._hook('_link_') |
163 | - def unregister_hook(self): | |
163 | + def unlink_hook(self): | |
164 | 164 | self._hook('_unlink_') |
165 | 165 | def set_hook(self): pass |
166 | 166 | def get_hook(self): pass |