Debugger/BreakPointViewer.py

branch
Py2 comp.
changeset 3057
10516539f238
parent 2525
8b507a9a2d40
parent 2988
f53c03574697
child 3058
0a02c433f52d
equal deleted inserted replaced
3056:9986ec0e559a 3057:10516539f238
18 18
19 class BreakPointViewer(QTreeView): 19 class BreakPointViewer(QTreeView):
20 """ 20 """
21 Class implementing the Breakpoint viewer widget. 21 Class implementing the Breakpoint viewer widget.
22 22
23 Breakpoints will be shown with all their details. They can be modified through 23 Breakpoints will be shown with all their details. They can be modified
24 the context menu of this widget. 24 through the context menu of this widget.
25 25
26 @signal sourceFile(str, int) emitted to show the source of a breakpoint 26 @signal sourceFile(str, int) emitted to show the source of a breakpoint
27 """ 27 """
28 sourceFile = pyqtSignal(str, int) 28 sourceFile = pyqtSignal(str, int)
29 29
58 58
59 def setModel(self, model): 59 def setModel(self, model):
60 """ 60 """
61 Public slot to set the breakpoint model. 61 Public slot to set the breakpoint model.
62 62
63 @param reference to the breakpoint model (BreakPointModel) 63 @param model reference to the breakpoint model (BreakPointModel)
64 """ 64 """
65 self.__model = model 65 self.__model = model
66 66
67 self.sortingModel = QSortFilterProxyModel() 67 self.sortingModel = QSortFilterProxyModel()
68 self.sortingModel.setDynamicSortFilter(True) 68 self.sortingModel.setDynamicSortFilter(True)
88 self.__resizeColumns() 88 self.__resizeColumns()
89 self.__resort() 89 self.__resort()
90 90
91 def __resizeColumns(self): 91 def __resizeColumns(self):
92 """ 92 """
93 Private slot to resize the view when items get added, edited or deleted. 93 Private slot to resize the view when items get added, edited or
94 deleted.
94 """ 95 """
95 self.header().resizeSections(QHeaderView.ResizeToContents) 96 self.header().resizeSections(QHeaderView.ResizeToContents)
96 self.header().setStretchLastSection(True) 97 self.header().setStretchLastSection(True)
97 98
98 def __resort(self): 99 def __resort(self):
105 def __toSourceIndex(self, index): 106 def __toSourceIndex(self, index):
106 """ 107 """
107 Private slot to convert an index to a source index. 108 Private slot to convert an index to a source index.
108 109
109 @param index index to be converted (QModelIndex) 110 @param index index to be converted (QModelIndex)
111 @return mapped index (QModelIndex)
110 """ 112 """
111 return self.sortingModel.mapToSource(index) 113 return self.sortingModel.mapToSource(index)
112 114
113 def __fromSourceIndex(self, sindex): 115 def __fromSourceIndex(self, sindex):
114 """ 116 """
115 Private slot to convert a source index to an index. 117 Private slot to convert a source index to an index.
116 118
117 @param sindex source index to be converted (QModelIndex) 119 @param sindex source index to be converted (QModelIndex)
120 @return mapped index (QModelIndex)
118 """ 121 """
119 return self.sortingModel.mapFromSource(sindex) 122 return self.sortingModel.mapFromSource(sindex)
120 123
121 def __setRowSelected(self, index, selected=True): 124 def __setRowSelected(self, index, selected=True):
122 """ 125 """
146 self.menu.addSeparator() 149 self.menu.addSeparator()
147 self.menu.addAction(self.trUtf8("Enable"), self.__enableBreak) 150 self.menu.addAction(self.trUtf8("Enable"), self.__enableBreak)
148 self.menu.addAction(self.trUtf8("Enable all"), self.__enableAllBreaks) 151 self.menu.addAction(self.trUtf8("Enable all"), self.__enableAllBreaks)
149 self.menu.addSeparator() 152 self.menu.addSeparator()
150 self.menu.addAction(self.trUtf8("Disable"), self.__disableBreak) 153 self.menu.addAction(self.trUtf8("Disable"), self.__disableBreak)
151 self.menu.addAction(self.trUtf8("Disable all"), self.__disableAllBreaks) 154 self.menu.addAction(self.trUtf8("Disable all"),
155 self.__disableAllBreaks)
152 self.menu.addSeparator() 156 self.menu.addSeparator()
153 self.menu.addAction(self.trUtf8("Delete"), self.__deleteBreak) 157 self.menu.addAction(self.trUtf8("Delete"), self.__deleteBreak)
154 self.menu.addAction(self.trUtf8("Delete all"), self.__deleteAllBreaks) 158 self.menu.addAction(self.trUtf8("Delete all"), self.__deleteAllBreaks)
155 self.menu.addSeparator() 159 self.menu.addSeparator()
156 self.menu.addAction(self.trUtf8("Goto"), self.__showSource) 160 self.menu.addAction(self.trUtf8("Goto"), self.__showSource)
159 163
160 self.backMenuActions = {} 164 self.backMenuActions = {}
161 self.backMenu = QMenu() 165 self.backMenu = QMenu()
162 self.backMenu.addAction(self.trUtf8("Add"), self.__addBreak) 166 self.backMenu.addAction(self.trUtf8("Add"), self.__addBreak)
163 self.backMenuActions["EnableAll"] = \ 167 self.backMenuActions["EnableAll"] = \
164 self.backMenu.addAction(self.trUtf8("Enable all"), self.__enableAllBreaks) 168 self.backMenu.addAction(self.trUtf8("Enable all"),
169 self.__enableAllBreaks)
165 self.backMenuActions["DisableAll"] = \ 170 self.backMenuActions["DisableAll"] = \
166 self.backMenu.addAction(self.trUtf8("Disable all"), self.__disableAllBreaks) 171 self.backMenu.addAction(self.trUtf8("Disable all"),
172 self.__disableAllBreaks)
167 self.backMenuActions["DeleteAll"] = \ 173 self.backMenuActions["DeleteAll"] = \
168 self.backMenu.addAction(self.trUtf8("Delete all"), self.__deleteAllBreaks) 174 self.backMenu.addAction(self.trUtf8("Delete all"),
175 self.__deleteAllBreaks)
169 self.backMenu.aboutToShow.connect(self.__showBackMenu) 176 self.backMenu.aboutToShow.connect(self.__showBackMenu)
170 self.backMenu.addSeparator() 177 self.backMenu.addSeparator()
171 self.backMenu.addAction(self.trUtf8("Configure..."), self.__configure) 178 self.backMenu.addAction(self.trUtf8("Configure..."), self.__configure)
172 179
173 self.multiMenu = QMenu() 180 self.multiMenu = QMenu()
174 self.multiMenu.addAction(self.trUtf8("Add"), self.__addBreak) 181 self.multiMenu.addAction(self.trUtf8("Add"), self.__addBreak)
175 self.multiMenu.addSeparator() 182 self.multiMenu.addSeparator()
176 self.multiMenu.addAction(self.trUtf8("Enable selected"), 183 self.multiMenu.addAction(self.trUtf8("Enable selected"),
177 self.__enableSelectedBreaks) 184 self.__enableSelectedBreaks)
178 self.multiMenu.addAction(self.trUtf8("Enable all"), self.__enableAllBreaks) 185 self.multiMenu.addAction(self.trUtf8("Enable all"),
186 self.__enableAllBreaks)
179 self.multiMenu.addSeparator() 187 self.multiMenu.addSeparator()
180 self.multiMenu.addAction(self.trUtf8("Disable selected"), 188 self.multiMenu.addAction(self.trUtf8("Disable selected"),
181 self.__disableSelectedBreaks) 189 self.__disableSelectedBreaks)
182 self.multiMenu.addAction(self.trUtf8("Disable all"), self.__disableAllBreaks) 190 self.multiMenu.addAction(self.trUtf8("Disable all"),
191 self.__disableAllBreaks)
183 self.multiMenu.addSeparator() 192 self.multiMenu.addSeparator()
184 self.multiMenu.addAction(self.trUtf8("Delete selected"), 193 self.multiMenu.addAction(self.trUtf8("Delete selected"),
185 self.__deleteSelectedBreaks) 194 self.__deleteSelectedBreaks)
186 self.multiMenu.addAction(self.trUtf8("Delete all"), self.__deleteAllBreaks) 195 self.multiMenu.addAction(self.trUtf8("Delete all"),
196 self.__deleteAllBreaks)
187 self.multiMenu.addSeparator() 197 self.multiMenu.addSeparator()
188 self.multiMenu.addAction(self.trUtf8("Configure..."), self.__configure) 198 self.multiMenu.addAction(self.trUtf8("Configure..."), self.__configure)
189 199
190 def __showContextMenu(self, coord): 200 def __showContextMenu(self, coord):
191 """ 201 """
269 return 279 return
270 280
271 fn, line, cond, temp, enabled, count = bp[:6] 281 fn, line, cond, temp, enabled, count = bp[:6]
272 282
273 from .EditBreakpointDialog import EditBreakpointDialog 283 from .EditBreakpointDialog import EditBreakpointDialog
274 dlg = EditBreakpointDialog((fn, line), (cond, temp, enabled, count), 284 dlg = EditBreakpointDialog(
285 (fn, line), (cond, temp, enabled, count),
275 self.condHistory, self, modal=True) 286 self.condHistory, self, modal=True)
276 if dlg.exec_() == QDialog.Accepted: 287 if dlg.exec_() == QDialog.Accepted:
277 cond, temp, enabled, count = dlg.getData() 288 cond, temp, enabled, count = dlg.getData()
278 if cond: 289 if cond:
279 if cond in self.condHistory: 290 if cond in self.condHistory:
316 self.__resizeColumns() 327 self.__resizeColumns()
317 self.__resort() 328 self.__resort()
318 329
319 def __enableSelectedBreaks(self): 330 def __enableSelectedBreaks(self):
320 """ 331 """
321 Private slot to handle the enable selected breakpoints context menu entry. 332 Private slot to handle the enable selected breakpoints context menu
333 entry.
322 """ 334 """
323 for index in self.selectedIndexes(): 335 for index in self.selectedIndexes():
324 if index.column() == 0: 336 if index.column() == 0:
325 self.__setBpEnabled(index, True) 337 self.__setBpEnabled(index, True)
326 self.__resizeColumns() 338 self.__resizeColumns()
346 self.__resizeColumns() 358 self.__resizeColumns()
347 self.__resort() 359 self.__resort()
348 360
349 def __disableSelectedBreaks(self): 361 def __disableSelectedBreaks(self):
350 """ 362 """
351 Private slot to handle the disable selected breakpoints context menu entry. 363 Private slot to handle the disable selected breakpoints context menu
364 entry.
352 """ 365 """
353 for index in self.selectedIndexes(): 366 for index in self.selectedIndexes():
354 if index.column() == 0: 367 if index.column() == 0:
355 self.__setBpEnabled(index, False) 368 self.__setBpEnabled(index, False)
356 self.__resizeColumns() 369 self.__resizeColumns()
371 """ 384 """
372 self.__model.deleteAll() 385 self.__model.deleteAll()
373 386
374 def __deleteSelectedBreaks(self): 387 def __deleteSelectedBreaks(self):
375 """ 388 """
376 Private slot to handle the delete selected breakpoints context menu entry. 389 Private slot to handle the delete selected breakpoints context menu
390 entry.
377 """ 391 """
378 idxList = [] 392 idxList = []
379 for index in self.selectedIndexes(): 393 for index in self.selectedIndexes():
380 sindex = self.__toSourceIndex(index) 394 sindex = self.__toSourceIndex(index)
381 if sindex.isValid() and index.column() == 0: 395 if sindex.isValid() and index.column() == 0:
442 456
443 def __configure(self): 457 def __configure(self):
444 """ 458 """
445 Private method to open the configuration dialog. 459 Private method to open the configuration dialog.
446 """ 460 """
447 e5App().getObject("UserInterface").showPreferences("debuggerGeneralPage") 461 e5App().getObject("UserInterface").showPreferences(
462 "debuggerGeneralPage")

eric ide

mercurial