Changeset 54
- Timestamp:
- Thu Jun 30 12:12:14 2005
- Files:
-
- trunk/transolution/xliffeditor/document/document.py (modified) (diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
trunk/transolution/xliffeditor/document/document.py
r53 r54 3 3 from transolution.xliffeditor.general import Notifier,Observer,EditorException 4 4 from segments import External,TuSegment,FileInfo,TuInfo 5 from bisect import bisect 5 6 6 7 class DocumentIndexException(EditorException):pass … … 22 23 Observer.__init__(self) 23 24 self.segs = [] 25 self.segment_end_positions = [] # holds all segments end positions so we can use 26 # bisect module to lookup the segment at pos efficiently. 24 27 self.documentFormatter = None 25 28 … … 57 60 58 61 def getSegByTextIndex(self,ti): 59 # TODO: do this in a better way that's not as slow. 60 for seg in self.segs: 61 if seg.end > ti: 62 return seg,seg.start,seg.end 62 ## for seg in self.segs: 63 ## if seg.end > ti: 64 ## return seg,seg.start,seg.end 65 # bisect used for speed 66 seg = self.segs[bisect(self.segment_end_positions, ti)] 63 67 return seg,seg.start,seg.end 64 68 64 68 def getSegUIUpdates(self): 65 69 'get a list of SegUIUpdate with the text span to update and text to update' 66 70 end = 0 71 segpos = [] 67 72 for i,seg in enumerate(self.segs): 68 73 formatted = seg.format() … … 76 81 segindex=i) 77 82 seg.setRange(start,end) 78 83 segpos.append(end) 84 self.segment_end_positions = segpos 85 79 86 def xupdate(self,seg=None): 80 87 'observer interface'
