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