Debugger/CallStackViewer.py

changeset 3190
a9a94491c4fd
parent 3160
209a07d7e401
child 3484
645c12de6b0c
equal deleted inserted replaced
3189:9a21c547de5f 3190:a9a94491c4fd
40 40
41 self.setHeaderHidden(True) 41 self.setHeaderHidden(True)
42 self.setAlternatingRowColors(True) 42 self.setAlternatingRowColors(True)
43 self.setItemsExpandable(False) 43 self.setItemsExpandable(False)
44 self.setRootIsDecorated(False) 44 self.setRootIsDecorated(False)
45 self.setWindowTitle(self.trUtf8("Call Stack")) 45 self.setWindowTitle(self.tr("Call Stack"))
46 46
47 self.__menu = QMenu(self) 47 self.__menu = QMenu(self)
48 self.__sourceAct = self.__menu.addAction( 48 self.__sourceAct = self.__menu.addAction(
49 self.trUtf8("Show source"), self.__openSource) 49 self.tr("Show source"), self.__openSource)
50 self.__menu.addAction(self.trUtf8("Clear"), self.clear) 50 self.__menu.addAction(self.tr("Clear"), self.clear)
51 self.__menu.addSeparator() 51 self.__menu.addSeparator()
52 self.__menu.addAction(self.trUtf8("Save"), self.__saveStackTrace) 52 self.__menu.addAction(self.tr("Save"), self.__saveStackTrace)
53 self.setContextMenuPolicy(Qt.CustomContextMenu) 53 self.setContextMenuPolicy(Qt.CustomContextMenu)
54 self.customContextMenuRequested.connect(self.__showContextMenu) 54 self.customContextMenuRequested.connect(self.__showContextMenu)
55 55
56 self.__dbs = debugServer 56 self.__dbs = debugServer
57 57
58 # file name, line number, function name, arguments 58 # file name, line number, function name, arguments
59 self.__entryFormat = self.trUtf8("File: {0}\nLine: {1}\n{2}{3}") 59 self.__entryFormat = self.tr("File: {0}\nLine: {1}\n{2}{3}")
60 # file name, line number 60 # file name, line number
61 self.__entryFormatShort = self.trUtf8("File: {0}\nLine: {1}") 61 self.__entryFormatShort = self.tr("File: {0}\nLine: {1}")
62 62
63 self.__projectMode = False 63 self.__projectMode = False
64 self.__project = None 64 self.__project = None
65 65
66 self.__dbs.clientStack.connect(self.__showCallStack) 66 self.__dbs.clientStack.connect(self.__showCallStack)
153 Private slot to save the stack trace info to a file. 153 Private slot to save the stack trace info to a file.
154 """ 154 """
155 if self.topLevelItemCount() > 0: 155 if self.topLevelItemCount() > 0:
156 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( 156 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
157 self, 157 self,
158 self.trUtf8("Save Call Stack Info"), 158 self.tr("Save Call Stack Info"),
159 "", 159 "",
160 self.trUtf8("Text Files (*.txt);;All Files (*)"), 160 self.tr("Text Files (*.txt);;All Files (*)"),
161 None, 161 None,
162 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) 162 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
163 if fname: 163 if fname:
164 ext = QFileInfo(fname).suffix() 164 ext = QFileInfo(fname).suffix()
165 if not ext: 165 if not ext:
167 if ex: 167 if ex:
168 fname += ex 168 fname += ex
169 if QFileInfo(fname).exists(): 169 if QFileInfo(fname).exists():
170 res = E5MessageBox.yesNo( 170 res = E5MessageBox.yesNo(
171 self, 171 self,
172 self.trUtf8("Save Call Stack Info"), 172 self.tr("Save Call Stack Info"),
173 self.trUtf8("<p>The file <b>{0}</b> already exists." 173 self.tr("<p>The file <b>{0}</b> already exists."
174 " Overwrite it?</p>").format(fname), 174 " Overwrite it?</p>").format(fname),
175 icon=E5MessageBox.Warning) 175 icon=E5MessageBox.Warning)
176 if not res: 176 if not res:
177 return 177 return
178 fname = Utilities.toNativeSeparators(fname) 178 fname = Utilities.toNativeSeparators(fname)
179 179
186 itm = self.itemBelow(itm) 186 itm = self.itemBelow(itm)
187 f.close() 187 f.close()
188 except IOError as err: 188 except IOError as err:
189 E5MessageBox.critical( 189 E5MessageBox.critical(
190 self, 190 self,
191 self.trUtf8("Error saving Call Stack Info"), 191 self.tr("Error saving Call Stack Info"),
192 self.trUtf8("""<p>The call stack info could not be""" 192 self.tr("""<p>The call stack info could not be"""
193 """ written to <b>{0}</b></p>""" 193 """ written to <b>{0}</b></p>"""
194 """<p>Reason: {1}</p>""") 194 """<p>Reason: {1}</p>""")
195 .format(fname, str(err))) 195 .format(fname, str(err)))

eric ide

mercurial