@@ -30,8 +30,7 @@ class StenoDictionary:
3030
3131 def __init__ (self ):
3232 self ._dict = {}
33- self ._longest_key_length = 0
34- self ._longest_listener_callbacks = set ()
33+ self ._longest_key = 0
3534 self .reverse = collections .defaultdict (list )
3635 # Case-insensitive reverse dict
3736 self .casereverse = collections .defaultdict (list )
@@ -165,40 +164,25 @@ def casereverse_lookup(self, value):
165164 return set (self .casereverse .get (value , ()))
166165
167166 @property
168- def _longest_key (self ):
169- return self ._longest_key_length
170-
171- @_longest_key .setter
172- def _longest_key (self , longest_key ):
173- if longest_key == self ._longest_key_length :
174- return
175- self ._longest_key_length = longest_key
176- for callback in self ._longest_listener_callbacks :
177- callback (longest_key )
178-
179- def add_longest_key_listener (self , callback ):
180- self ._longest_listener_callbacks .add (callback )
181-
182- def remove_longest_key_listener (self , callback ):
183- self ._longest_listener_callbacks .remove (callback )
167+ def longest_key (self ):
168+ return self ._longest_key
184169
185170
186171class StenoDictionaryCollection :
187172
188173 def __init__ (self , dicts = []):
189174 self .dicts = []
190175 self .filters = []
191- self .longest_key = 0
192- self .longest_key_callbacks = set ()
193176 self .set_dicts (dicts )
194177
178+ @property
179+ def longest_key (self ):
180+ if not self .dicts :
181+ return 0
182+ return max (d .longest_key for d in self .dicts )
183+
195184 def set_dicts (self , dicts ):
196- for d in self .dicts :
197- d .remove_longest_key_listener (self ._longest_key_listener )
198185 self .dicts = dicts [:]
199- for d in self .dicts :
200- d .add_longest_key_listener (self ._longest_key_listener )
201- self ._longest_key_listener ()
202186
203187 def _lookup (self , key , dicts = None , filters = ()):
204188 if dicts is None :
@@ -320,19 +304,3 @@ def add_filter(self, f):
320304
321305 def remove_filter (self , f ):
322306 self .filters .remove (f )
323-
324- def add_longest_key_listener (self , callback ):
325- self .longest_key_callbacks .add (callback )
326-
327- def remove_longest_key_listener (self , callback ):
328- self .longest_key_callbacks .remove (callback )
329-
330- def _longest_key_listener (self , ignored = None ):
331- if self .dicts :
332- new_longest_key = max (d .longest_key for d in self .dicts )
333- else :
334- new_longest_key = 0
335- if new_longest_key != self .longest_key :
336- self .longest_key = new_longest_key
337- for c in self .longest_key_callbacks :
338- c (new_longest_key )
0 commit comments