QScintilla/Editor.py

branch
5_2_x
changeset 1997
e7627587db30
parent 1995
11f09fe72991
child 1998
7fc24c26f58f
equal deleted inserted replaced
1995:11f09fe72991 1997:e7627587db30
395 self.__breakPointDataAboutToBeChanged) 395 self.__breakPointDataAboutToBeChanged)
396 self.breakpointModel.dataChanged.connect( 396 self.breakpointModel.dataChanged.connect(
397 self.__changeBreakPoints) 397 self.__changeBreakPoints)
398 self.breakpointModel.rowsInserted.connect( 398 self.breakpointModel.rowsInserted.connect(
399 self.__addBreakPoints) 399 self.__addBreakPoints)
400 self.SCN_MODIFIED.connect(self.__modified) 400 self.linesChanged.connect(self.__linesChanged)
401 401
402 # establish connection to some ViewManager action groups 402 # establish connection to some ViewManager action groups
403 self.addActions(self.vm.editorActGrp.actions()) 403 self.addActions(self.vm.editorActGrp.actions())
404 self.addActions(self.vm.editActGrp.actions()) 404 self.addActions(self.vm.editActGrp.actions())
405 self.addActions(self.vm.copyActGrp.actions()) 405 self.addActions(self.vm.copyActGrp.actions())
1800 1800
1801 ############################################################################ 1801 ############################################################################
1802 ## Breakpoint handling methods below 1802 ## Breakpoint handling methods below
1803 ############################################################################ 1803 ############################################################################
1804 1804
1805 def __modified(self, pos, mtype, text, length, linesAdded, line, foldNow, foldPrev, 1805 def __linesChanged(self):
1806 token, annotationLinesAdded): 1806 """
1807 """ 1807 Private method to track text changes.
1808 Private method to handle changes of the number of lines. 1808
1809 1809 This method checks, if lines have been inserted or removed in order to
1810 @param pos start position of change (integer) 1810 update the breakpoints.
1811 @param mtype flags identifying the change (integer) 1811 """
1812 @param text text that is given to the Undo system (string) 1812 if self.breaks:
1813 @param length length of the change (integer) 1813 bps = [] # list of breakpoints
1814 @param linesAdded number of added/deleted lines (integer) 1814 for handle, (ln, cond, temp, enabled, ignorecount) in self.breaks.items():
1815 @param line line number of a fold level or marker change (integer) 1815 line = self.markerLine(handle) + 1
1816 @param foldNow new fold level (integer) 1816 bps.append((ln, line, (cond, temp, enabled, ignorecount)))
1817 @param foldPrev previous fold level (integer) 1817 self.markerDeleteHandle(handle)
1818 @param token ??? 1818 self.breaks = {}
1819 @param annotationLinesAdded number of added/deleted annotation lines (integer) 1819 self.inLinesChanged = True
1820 """ 1820 for bp in bps:
1821 if mtype & (self.SC_MOD_INSERTTEXT | self.SC_MOD_DELETETEXT) and \ 1821 index = self.breakpointModel.getBreakPointIndex(self.fileName, bp[0])
1822 linesAdded != 0: 1822 self.breakpointModel.setBreakPointByIndex(index,
1823 if self.breaks: 1823 self.fileName, bp[1], bp[2])
1824 bps = [] # list of breakpoints 1824 self.inLinesChanged = False
1825 for handle, (ln, cond, temp, enabled, ignorecount) in self.breaks.items():
1826 line = self.markerLine(handle) + 1
1827 if ln != line:
1828 bps.append((ln, line))
1829 self.breaks[handle] = (line, cond, temp, enabled, ignorecount)
1830 self.inLinesChanged = True
1831 for ln, line in sorted(bps, reverse=linesAdded > 0):
1832 index1 = self.breakpointModel.getBreakPointIndex(self.fileName, ln)
1833 index2 = self.breakpointModel.index(index1.row(), 1)
1834 self.breakpointModel.setData(index2, line)
1835 self.inLinesChanged = False
1836 1825
1837 def __restoreBreakpoints(self): 1826 def __restoreBreakpoints(self):
1838 """ 1827 """
1839 Private method to restore the breakpoints. 1828 Private method to restore the breakpoints.
1840 """ 1829 """
1860 """ 1849 """
1861 Private slot to set changed breakpoints. 1850 Private slot to set changed breakpoints.
1862 1851
1863 @param indexes indexes of changed breakpoints. 1852 @param indexes indexes of changed breakpoints.
1864 """ 1853 """
1865 if not self.inLinesChanged: 1854 self.__addBreakPoints(QModelIndex(), startIndex.row(), endIndex.row())
1866 self.__addBreakPoints(QModelIndex(), startIndex.row(), endIndex.row())
1867 1855
1868 def __breakPointDataAboutToBeChanged(self, startIndex, endIndex): 1856 def __breakPointDataAboutToBeChanged(self, startIndex, endIndex):
1869 """ 1857 """
1870 Private slot to handle the dataAboutToBeChanged signal of the breakpoint model. 1858 Private slot to handle the dataAboutToBeChanged signal of the breakpoint model.
1871 1859

eric ide

mercurial