--- a/Debugger/DebugViewer.py Tue Oct 15 22:03:54 2013 +0200 +++ b/Debugger/DebugViewer.py Fri Oct 18 23:00:41 2013 +0200 @@ -25,8 +25,9 @@ import os from PyQt4.QtCore import pyqtSignal -from PyQt4.QtGui import QWidget, QVBoxLayout, QHBoxLayout, QLineEdit, QSizePolicy, \ - QPushButton, QComboBox, QLabel, QTreeWidget, QTreeWidgetItem, QHeaderView +from PyQt4.QtGui import QWidget, QVBoxLayout, QHBoxLayout, QLineEdit, \ + QSizePolicy, QPushButton, QComboBox, QLabel, QTreeWidget, \ + QTreeWidgetItem, QHeaderView import UI.PixmapCache import Preferences @@ -39,9 +40,9 @@ Class implementing a widget conatining various debug related views. The individual tabs contain the interpreter shell (optional), - the filesystem browser (optional), the two variables viewers (global and local), - a breakpoint viewer, a watch expression viewer and the exception logger. Additionally - a list of all threads is shown. + the filesystem browser (optional), the two variables viewers + (global and local), a breakpoint viewer, a watch expression viewer and + the exception logger. Additionally a list of all threads is shown. @signal sourceFile(string, int) emitted to open a source file at a line """ @@ -56,13 +57,13 @@ @param docked flag indicating a dock window @param vm reference to the viewmanager object @param parent parent widget (QWidget) - @param embeddedShell flag indicating whether the shell should be included. - This flag is set to False by those layouts, that have the interpreter - shell in a separate window. + @param embeddedShell flag indicating whether the shell should be + included. This flag is set to False by those layouts, that have + the interpreter shell in a separate window. @param embeddedBrowser flag indicating whether the file browser should - be included. This flag is set to False by those layouts, that - have the file browser in a separate window or embedded - in the project browser instead. + be included. This flag is set to False by those layouts, that + have the file browser in a separate window or embedded + in the project browser instead. """ super(DebugViewer, self).__init__(parent) @@ -112,17 +113,20 @@ self.glvWidgetHLayout.setContentsMargins(3, 3, 3, 3) self.globalsFilterEdit = QLineEdit(self.glvWidget) - self.globalsFilterEdit.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + self.globalsFilterEdit.setSizePolicy( + QSizePolicy.Expanding, QSizePolicy.Fixed) self.glvWidgetHLayout.addWidget(self.globalsFilterEdit) self.globalsFilterEdit.setToolTip( - self.trUtf8("Enter regular expression patterns separated by ';' to define " - "variable filters. ")) + self.trUtf8("Enter regular expression patterns separated by ';'" + " to define variable filters. ")) self.globalsFilterEdit.setWhatsThis( - self.trUtf8("Enter regular expression patterns separated by ';' to define " - "variable filters. All variables and class attributes matched by one of " - "the expressions are not shown in the list above.")) + self.trUtf8("Enter regular expression patterns separated by ';'" + " to define variable filters. All variables and" + " class attributes matched by one of the expressions" + " are not shown in the list above.")) - self.setGlobalsFilterButton = QPushButton(self.trUtf8('Set'), self.glvWidget) + self.setGlobalsFilterButton = QPushButton( + self.trUtf8('Set'), self.glvWidget) self.glvWidgetHLayout.addWidget(self.setGlobalsFilterButton) self.glvWidgetVLayout.addLayout(self.glvWidgetHLayout) @@ -130,7 +134,8 @@ UI.PixmapCache.getIcon("globalVariables.png"), '') self.__tabWidget.setTabToolTip(index, self.globalsViewer.windowTitle()) - self.setGlobalsFilterButton.clicked[()].connect(self.__setGlobalsFilter) + self.setGlobalsFilterButton.clicked[()].connect( + self.__setGlobalsFilter) self.globalsFilterEdit.returnPressed.connect(self.__setGlobalsFilter) # add the local variables viewer @@ -144,7 +149,8 @@ self.lvWidgetHLayout1.setContentsMargins(3, 3, 3, 3) self.stackComboBox = QComboBox(self.lvWidget) - self.stackComboBox.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + self.stackComboBox.setSizePolicy( + QSizePolicy.Expanding, QSizePolicy.Fixed) self.lvWidgetHLayout1.addWidget(self.stackComboBox) self.sourceButton = QPushButton(self.trUtf8('Source'), self.lvWidget) @@ -159,17 +165,21 @@ self.lvWidgetHLayout2.setContentsMargins(3, 3, 3, 3) self.localsFilterEdit = QLineEdit(self.lvWidget) - self.localsFilterEdit.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + self.localsFilterEdit.setSizePolicy( + QSizePolicy.Expanding, QSizePolicy.Fixed) self.lvWidgetHLayout2.addWidget(self.localsFilterEdit) self.localsFilterEdit.setToolTip( - self.trUtf8("Enter regular expression patterns separated by ';' to define " + self.trUtf8( + "Enter regular expression patterns separated by ';' to define " "variable filters. ")) self.localsFilterEdit.setWhatsThis( - self.trUtf8("Enter regular expression patterns separated by ';' to define " - "variable filters. All variables and class attributes matched by one of " - "the expressions are not shown in the list above.")) + self.trUtf8( + "Enter regular expression patterns separated by ';' to define " + "variable filters. All variables and class attributes matched" + " by one of the expressions are not shown in the list above.")) - self.setLocalsFilterButton = QPushButton(self.trUtf8('Set'), self.lvWidget) + self.setLocalsFilterButton = QPushButton( + self.trUtf8('Set'), self.lvWidget) self.lvWidgetHLayout2.addWidget(self.setLocalsFilterButton) self.lvWidgetVLayout.addLayout(self.lvWidgetHLayout2) @@ -178,7 +188,8 @@ self.__tabWidget.setTabToolTip(index, self.localsViewer.windowTitle()) self.sourceButton.clicked[()].connect(self.__showSource) - self.stackComboBox.currentIndexChanged[int].connect(self.__frameSelected) + self.stackComboBox.currentIndexChanged[int].connect( + self.__frameSelected) self.setLocalsFilterButton.clicked[()].connect(self.__setLocalsFilter) self.localsFilterEdit.returnPressed.connect(self.__setLocalsFilter) @@ -187,16 +198,19 @@ self.callStackViewer = CallStackViewer(self.debugServer) index = self.__tabWidget.addTab(self.callStackViewer, UI.PixmapCache.getIcon("step.png"), "") - self.__tabWidget.setTabToolTip(index, self.callStackViewer.windowTitle()) + self.__tabWidget.setTabToolTip( + index, self.callStackViewer.windowTitle()) self.callStackViewer.sourceFile.connect(self.sourceFile) - self.callStackViewer.frameSelected.connect(self.__callStackFrameSelected) + self.callStackViewer.frameSelected.connect( + self.__callStackFrameSelected) from .CallTraceViewer import CallTraceViewer # add the call trace viewer self.callTraceViewer = CallTraceViewer(self.debugServer) index = self.__tabWidget.addTab(self.callTraceViewer, UI.PixmapCache.getIcon("callTrace.png"), "") - self.__tabWidget.setTabToolTip(index, self.callTraceViewer.windowTitle()) + self.__tabWidget.setTabToolTip( + index, self.callTraceViewer.windowTitle()) self.callTraceViewer.sourceFile.connect(self.sourceFile) from .BreakPointViewer import BreakPointViewer @@ -205,7 +219,8 @@ self.breakpointViewer.setModel(self.debugServer.getBreakPointModel()) index = self.__tabWidget.addTab(self.breakpointViewer, UI.PixmapCache.getIcon("breakpoints.png"), '') - self.__tabWidget.setTabToolTip(index, self.breakpointViewer.windowTitle()) + self.__tabWidget.setTabToolTip( + index, self.breakpointViewer.windowTitle()) self.breakpointViewer.sourceFile.connect(self.sourceFile) from .WatchPointViewer import WatchPointViewer @@ -214,14 +229,16 @@ self.watchpointViewer.setModel(self.debugServer.getWatchPointModel()) index = self.__tabWidget.addTab(self.watchpointViewer, UI.PixmapCache.getIcon("watchpoints.png"), '') - self.__tabWidget.setTabToolTip(index, self.watchpointViewer.windowTitle()) + self.__tabWidget.setTabToolTip( + index, self.watchpointViewer.windowTitle()) from .ExceptionLogger import ExceptionLogger # add the exception logger self.exceptionLogger = ExceptionLogger() index = self.__tabWidget.addTab(self.exceptionLogger, UI.PixmapCache.getIcon("exceptions.png"), '') - self.__tabWidget.setTabToolTip(index, self.exceptionLogger.windowTitle()) + self.__tabWidget.setTabToolTip( + index, self.exceptionLogger.windowTitle()) if self.embeddedShell: self.__tabWidget.setCurrentWidget(self.shellAssembly) @@ -234,8 +251,9 @@ # add the threads viewer self.__mainLayout.addWidget(QLabel(self.trUtf8("Threads:"))) self.__threadList = QTreeWidget() - self.__threadList.setHeaderLabels([self.trUtf8("ID"), self.trUtf8("Name"), - self.trUtf8("State"), ""]) + self.__threadList.setHeaderLabels( + [self.trUtf8("ID"), self.trUtf8("Name"), + self.trUtf8("State"), ""]) self.__threadList.setSortingEnabled(True) self.__mainLayout.addWidget(self.__threadList) @@ -385,8 +403,8 @@ """ Public slot to show the call stack of the program being debugged. - @param stack list of tuples with call stack data (file name, line number, - function name, formatted argument/values list) + @param stack list of tuples with call stack data (file name, + line number, function name, formatted argument/values list) """ block = self.stackComboBox.blockSignals(True) self.framenr = 0 @@ -403,7 +421,8 @@ """ Public slot to set the local variables filter. - @param globalsFilter filter list for global variable types (list of int) + @param globalsFilter filter list for global variable types + (list of int) @param localsFilter filter list for local variable types (list of int) """ self.globalsFilter = globalsFilter @@ -411,7 +430,8 @@ def __showSource(self): """ - Private slot to handle the source button press to show the selected file. + Private slot to handle the source button press to show the selected + file. """ index = self.stackComboBox.currentIndex() if index > -1 and self.currentStack: @@ -432,7 +452,7 @@ def __setGlobalsFilter(self): """ - Private slot to set the global variable filter + Private slot to set the global variable filter. """ filter = self.globalsFilterEdit.text() self.debugServer.remoteClientSetFilter(1, filter) @@ -441,12 +461,13 @@ def __setLocalsFilter(self): """ - Private slot to set the local variable filter + Private slot to set the local variable filter. """ filter = self.localsFilterEdit.text() self.debugServer.remoteClientSetFilter(0, filter) if self.currentStack: - self.debugServer.remoteClientVariables(0, self.localsFilter, self.framenr) + self.debugServer.remoteClientVariables( + 0, self.localsFilter, self.framenr) def handleDebuggingStarted(self): """ @@ -490,7 +511,8 @@ else: state = self.trUtf8("running") itm = QTreeWidgetItem(self.__threadList, - ["{0:d}".format(thread['id']), thread['name'], state]) + ["{0:d}".format(thread['id']), + thread['name'], state]) if thread['id'] == currentID: citm = itm @@ -507,7 +529,8 @@ Private slot to handle the selection of a thread in the thread list. @param current reference to the new current item (QTreeWidgetItem) - @param previous reference to the previous current item (QTreeWidgetItem) + @param previous reference to the previous current item + (QTreeWidgetItem) """ if current is not None and self.__doThreadListUpdate: tid = int(current.text(0))