eric6/Debugger/CallTraceViewer.py

changeset 7775
4a1db75550bd
parent 7533
88261c96484b
child 7785
9978016560ec
equal deleted inserted replaced
7774:9eed155411f0 7775:4a1db75550bd
5 5
6 """ 6 """
7 Module implementing the Call Trace viewer widget. 7 Module implementing the Call Trace viewer widget.
8 """ 8 """
9 9
10 10 import re
11 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QRegExp, QFileInfo 11
12 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QFileInfo
12 from PyQt5.QtWidgets import QWidget, QTreeWidgetItem 13 from PyQt5.QtWidgets import QWidget, QTreeWidgetItem
13 14
14 from E5Gui.E5Application import e5App 15 from E5Gui.E5Application import e5App
15 from E5Gui import E5FileDialog, E5MessageBox 16 from E5Gui import E5FileDialog, E5MessageBox
16 17
56 self.callTrace.setHeaderItem(self.__headerItem) 57 self.callTrace.setHeaderItem(self.__headerItem)
57 58
58 self.__callStack = [] 59 self.__callStack = []
59 60
60 self.__entryFormat = "{0}:{1} ({2})" 61 self.__entryFormat = "{0}:{1} ({2})"
61 self.__entryRe = QRegExp(r"""(.+):(\d+)\s\((.*)\)""") 62 self.__entryRe = re.compile(r"""(.+):(\d+)\s\((.*)\)""")
62 63
63 self.__projectMode = False 64 self.__projectMode = False
64 self.__project = None 65 self.__project = None
65 66
66 stopOnExit = Preferences.toBool( 67 stopOnExit = Preferences.toBool(
195 @param item reference to the double clicked item (QTreeWidgetItem) 196 @param item reference to the double clicked item (QTreeWidgetItem)
196 @param column column that was double clicked (integer) 197 @param column column that was double clicked (integer)
197 """ 198 """
198 if item is not None and column > 0: 199 if item is not None and column > 0:
199 columnStr = item.text(column) 200 columnStr = item.text(column)
200 if self.__entryRe.exactMatch(columnStr.strip()): 201 match = self.__entryRe.fullmatch(columnStr.strip())
201 filename, lineno, func = self.__entryRe.capturedTexts()[1:] 202 if match:
203 filename, lineno, func = match.groups()
202 try: 204 try:
203 lineno = int(lineno) 205 lineno = int(lineno)
204 except ValueError: 206 except ValueError:
205 # do nothing, if the line info is not an integer 207 # do nothing, if the line info is not an integer
206 return 208 return

eric ide

mercurial