def __init__(self, parent=None): QWidget.__init__(self, parent) self.__results = QStackedWidget(self) self.__bufferChangeConnected = False # Prepare members for reuse self.__noneLabel = QLabel("\nNo results available") self.__noneLabel.setFrameShape(QFrame.StyledPanel) self.__noneLabel.setAlignment(Qt.AlignHCenter) self.__headerFont = self.__noneLabel.font() self.__headerFont.setPointSize(self.__headerFont.pointSize() + 4) self.__noneLabel.setFont(self.__headerFont) self.__noneLabel.setAutoFillBackground(True) noneLabelPalette = self.__noneLabel.palette() noneLabelPalette.setColor(QPalette.Background, GlobalData().skin['nolexerPaper']) self.__noneLabel.setPalette(noneLabelPalette) self.__createLayout(parent) self.__updateButtonsStatus() GlobalData().project.sigProjectChanged.connect(self.__onProjectChanged)
def __init__(self, parent): QWidget.__init__(self, parent) # Margin data is: # {lineNo: [(text, tooltip, msgType),...], } # line number is 1 based, tooltip and fgColor could be None self.__data = {} extendInstance(self, MarginBase) MarginBase.__init__(self, parent, 'cdm_redirected_io_margin', 0) self.setMouseTracking(True) skin = GlobalData().skin self.__bgColor = skin['marginPaper'] self.__fgColor = skin['marginColor'] # default CDMRedirectedIOMargin.MSG_TYPE_PROPS[IOConsoleMsg.IDE_MESSAGE][1] = \ skin['ioconsoleMarginIDEMsgColor'] CDMRedirectedIOMargin.MSG_TYPE_PROPS[IOConsoleMsg.STDOUT_MESSAGE][1] = \ skin['ioconsoleMarginStdoutColor'] CDMRedirectedIOMargin.MSG_TYPE_PROPS[IOConsoleMsg.STDERR_MESSAGE][1] = \ skin['ioconsoleMarginStderrColor'] CDMRedirectedIOMargin.MSG_TYPE_PROPS[IOConsoleMsg.STDIN_MESSAGE][1] = \ skin['ioconsoleMarginStdinColor'] self.__width = self.__calculateWidth() self.onTextZoomChanged() # The width needs to be re-calculated when the margin is drawn the # first time. The problem is that if the widget is not on the screen # then the font metrics are not calculated properly and thus the width # is not shown right. What I observed is an offset up to 2 pixels. self.__firstTime = True
def __init__(self, parent): QWidget.__init__(self, parent) extendInstance(self, MarginBase) MarginBase.__init__(self, parent, "cdm_flakes_margin", 1) self.setMouseTracking(True) self.__messages = {} self.__bgColor = GlobalData().skin['flakesMarginPaper'] self.__noTooltip = True self.currentDebugLine = None self.excptionLine = None self.__marks = { self.CURRENT_MARK: [getPixmap('dbgcurrentmarker.png'), 0], self.EXC_MARK: [getPixmap('dbgexcptmarker.png'), 0], self.FLAKES_MARK: [getPixmap('pyflakesmsgmarker.png'), 0]} for item in self.__marks: self.__marks[item][1] = self.__marks[item][0].height() if self.__marks[item][0].height() != self.__marks[item][0].width(): logging.error('flakes margin pixmap needs to be square') self.myUUID = None if hasattr(self._qpart._parent, 'getUUID'): self.myUUID = self._qpart._parent.getUUID() mainWindow = GlobalData().mainWindow editorsManager = mainWindow.editorsManagerWidget.editorsManager editorsManager.sigFileTypeChanged.connect(self.__onFileTypeChanged) self._qpart.blockCountChanged.connect(self.update)
def __init__(self, scriptName, params, reportTime, dataFile, stats, parent=None): QWidget.__init__(self, parent) self.__dataFile = dataFile self.__script = scriptName self.__reportTime = reportTime self.__params = params self.__stats = stats project = GlobalData().project if project.isLoaded(): self.__projectPrefix = os.path.dirname(project.fileName) else: self.__projectPrefix = os.path.dirname(scriptName) if not self.__projectPrefix.endswith(os.path.sep): self.__projectPrefix += os.path.sep self.__createLayout() self.__getDiagramLayout() self.__viewer.setScene(self.__scene)
def __init__(self, parent, debugger): QWidget.__init__(self, parent) extendInstance(self, MainWindowTabWidgetBase) MainWindowTabWidgetBase.__init__(self) self.__navigationBar = None self.__editor = TextEditor(self, debugger) self.__fileName = "" self.__shortName = "" self.__createLayout() self.__editor.redoAvailable.connect(self.__redoAvailable) self.__editor.undoAvailable.connect(self.__undoAvailable) self.__editor.modificationChanged.connect(self.modificationChanged) self.__editor.sigCFlowSyncRequested.connect(self.cflowSyncRequested) self.__editor.languageChanged.connect(self.__languageChanged) self.__diskModTime = None self.__diskSize = None self.__reloadDlgShown = False self.__debugMode = False self.__vcsStatus = None
def __init__(self, editor, parent): QWidget.__init__(self, parent) # It is always not visible at the beginning because there is no # editor content at the start self.setVisible(False) self.__editor = editor self.__parentWidget = parent self.__connected = False self.__needPathUpdate = False self.cflowSettings = getCflowSettings(self) self.__displayProps = (self.cflowSettings.hidedocstrings, self.cflowSettings.hidecomments, self.cflowSettings.hideexcepts, Settings()['smartZoom']) hLayout = QHBoxLayout() hLayout.setContentsMargins(0, 0, 0, 0) hLayout.setSpacing(0) vLayout = QVBoxLayout() vLayout.setContentsMargins(0, 0, 0, 0) vLayout.setSpacing(0) # Make pylint happy self.__toolbar = None self.__navBar = None self.__cf = None self.__canvas = None self.__validGroups = [] self.__allGroupId = set() # Create the update timer self.__updateTimer = QTimer(self) self.__updateTimer.setSingleShot(True) self.__updateTimer.timeout.connect(self.process) vLayout.addWidget(self.__createNavigationBar()) vLayout.addWidget(self.__createStackedViews()) hLayout.addLayout(vLayout) hLayout.addWidget(self.__createToolbar()) self.setLayout(hLayout) self.updateSettings() # Connect to the change file type signal self.__mainWindow = GlobalData().mainWindow editorsManager = self.__mainWindow.editorsManagerWidget.editorsManager editorsManager.sigFileTypeChanged.connect(self.__onFileTypeChanged) Settings().sigHideDocstringsChanged.connect( self.__onHideDocstringsChanged) Settings().sigHideCommentsChanged.connect(self.__onHideCommentsChanged) Settings().sigHideExceptsChanged.connect(self.__onHideExceptsChanged) Settings().sigSmartZoomChanged.connect(self.__onSmartZoomChanged) self.setSmartZoomLevel(Settings()['smartZoom'])
def __init__(self, debugger, parent=None): QWidget.__init__(self, parent) self.__debugger = debugger self.__createLayout() self.__debugger.sigClientCallTrace.connect(self.__onCallTrace) GlobalData().project.sigProjectChanged.connect(self.__onProjectChanged)
def __init__(self, parent=None): MainWindowTabWidgetBase.__init__(self) QWidget.__init__(self, parent) self.__viewer = DiagramWidget(self) self.__viewer.sigEscapePressed.connect(self.__onEsc) self.__createLayout()
def __init__(self, debugger, parent=None): QWidget.__init__(self, parent) self.__debugger = debugger self.__createLayout() if not Settings()['showThreadViewer']: self.__onShowHide(True)
def __init__(self, ide): QWidget.__init__(self) self.__ide = ide self.__process = None self.__args = None self.__stdout = '' self.__stderr = ''
def __init__(self, procuuid, kind, parent=None): QWidget.__init__(self, parent) self.procuuid = procuuid self.kind = kind # RUN/DEBUG/PROFILE self.__viewer = RedirectedIOConsole(self) self.__viewer.sigUserInput.connect(self.__onUserInput) self.__createLayout()
def __init__(self, parent=None): QWidget.__init__(self, parent) self.__createPopupMenu() self.__createLayout() self.__ignored = [] self.__currentItem = None GlobalData().project.sigProjectChanged.connect(self.__onProjectChanged)
def __init__(self, debugger, parent=None): QWidget.__init__(self, parent) self.__debugger = debugger self.currentStack = None self.currentFrame = 0 self.__contextItem = None self.__createPopupMenu() self.__createLayout()
def __init__(self, parent, ignoredExceptionsViewer): QWidget.__init__(self, parent) self.__ignoredExceptionsViewer = ignoredExceptionsViewer self.__currentItem = None self.__createPopupMenu() self.__createLayout() GlobalData().project.sigProjectChanged.connect(self.__onProjectChanged)
def __init__(self, parent, bpointsModel): QWidget.__init__(self, parent) self.__currentItem = None self.__createLayout(bpointsModel) GlobalData().project.sigProjectChanged.connect(self.__onProjectChanged) GlobalData().project.sigProjectAboutToUnload.connect( self.__onProjectAboutToUnload) self.bpointsList.sigSelectionChanged.connect(self.__onSelectionChanged) bpointsModel.sigBreakpoinsChanged.connect(self.__onModelChanged)
def __init__(self, debugger, parent=None): QWidget.__init__(self, parent) self.__debugger = debugger self.__browser = VariablesBrowser(debugger, self) self.__createLayout() self.setTabOrder(self.__browser, self.__execStatement) self.setTabOrder(self.__execStatement, self.__execButton) self.__updateFilter()
def __init__(self, parent): MainWindowTabWidgetBase.__init__(self) QWidget.__init__(self, parent) self.__viewer = VCSAnnotateViewer(self) self.__viewer.sigEscapePressed.connect(self.__onEsc) self.__fileName = "" self.__shortName = "" self.__createLayout() self.__viewer.zoomTo(Settings()['zoom'])
def __init__(self, parent=None): QWidget.__init__(self, parent) self.__createPopupMenu() self.__createLayout() self.__ignored = [] self.__currentItem = None GlobalData().project.sigProjectChanged.connect(self.__onProjectChanged) if not Settings()['showIgnoredExcViewer']: self.__onShowHide(True)
def __init__(self, debugger, parent=None): QWidget.__init__(self, parent) self.__debugger = debugger self.__debugger.sigClientLine.connect(self.__onClientLine) self.__debugger.sigClientStack.connect(self.onClientStack) self.__debugger.sigClientThreadList.connect(self.__onClientThreadList) self.__debugger.sigClientVariables.connect(self.__onClientVariables) self.__debugger.sigClientVariable.connect(self.__onClientVariable) self.__debugger.sigClientThreadSet.connect(self.__onClientThreadSet) self.currentStack = None self.__createLayout()
def __init__(self, debugger, parent=None): QWidget.__init__(self, parent) self.__debugger = debugger self.currentStack = None self.currentFrame = 0 self.__contextItem = None self.__createPopupMenu() self.__createLayout() if not Settings()['showStackViewer']: self.__onShowHide(True)
def __init__(self, parent, wpointModel): QWidget.__init__(self, parent) self.__currentItem = None self.__createPopupMenu() self.__createLayout(wpointModel) GlobalData().project.sigProjectChanged.connect(self.__onProjectChanged) if Settings()['showWatchPointViewer'] == False: self.__onShowHide(True)
def __init__(self, providerId, results, parameters, searchId, parent): QWidget.__init__(self, parent) self.__providerId = providerId self.__parameters = parameters self.searchId = searchId self.selectedItem = None self.__removeItemButton = parent.removeItemButton self.resultsTree = SearchResultsTreeWidget() self.resultsTree.itemSelectionChanged.connect( self.__selectionChanged) self.indicator = HeaderLabel() self.providerLabel = HeaderLabel( GlobalData().searchProviders[providerId].getName()) self.providerLabel.setToolTip('Results provider') self.timestampLabel = HeaderLabel() self.timestampLabel.setToolTip('Search timestamp') self.__labelLayout = QHBoxLayout() self.__labelLayout.setContentsMargins(0, 0, 0, 0) self.__labelLayout.setSpacing(4) self.__labelLayout.addWidget(self.indicator) self.__labelLayout.addWidget(self.providerLabel) # There could be many labels with the search parameters for item in GlobalData().searchProviders[providerId].serialize(parameters): paramLabel = HeaderFitLabel() paramLabel.setText('%s: %s' % item) paramLabel.setAlignment(Qt.AlignLeft) paramLabel.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self.__labelLayout.addWidget(paramLabel) self.__labelLayout.addWidget(self.timestampLabel) self.__vLayout = QVBoxLayout() self.__vLayout.setContentsMargins(0, 0, 0, 0) self.__vLayout.setSpacing(4) self.__vLayout.addLayout(self.__labelLayout) self.__vLayout.addWidget(self.resultsTree) self.setLayout(self.__vLayout) self.populate(results)
def __init__(self, parent): QWidget.__init__(self, parent) extendInstance(self, MarginBase) MarginBase.__init__(self, parent, 'cdm_line_number_margin', 0) self.__bgColor = GlobalData().skin['marginPaper'] self.__fgColor = GlobalData().skin['marginColor'] self.__width = self.__calculateWidth() self.onTextZoomChanged() # The width needs to be re-calculated when the margin is drawn the # first time. The problem is that if the widget is not on the screen # then the font metrics are not calculated properly and thus the width # is not shown right. What I observed is an offset up to 2 pixels. self.__firstTime = True self._qpart.blockCountChanged.connect(self.__updateWidth)
def __init__(self, parent, debugger): QWidget.__init__(self, parent) extendInstance(self, MarginBase) MarginBase.__init__(self, parent, "cdm_bpoint_margin", getMarginBits()) self.setMouseTracking(True) self.__debugger = debugger self.__breakpoints = {} # block handle -> Breakpoint instance self.__breakableLines = None self.__maxBreakpoints = Settings()['maxBreakpoints'] self.__bgColor = GlobalData().skin['bpointsMarginPaper'] self.__marks = { self.BPOINT_MARK: [getPixmap('dbgbpointmarker.png'), 0], self.TMP_BPOINT_MARK: [getPixmap('dbgtmpbpointmarker.png'), 0], self.DISABLED_BPOINT_MARK: [getPixmap('dbgdisbpointmarker.png'), 0] } for item in self.__marks: self.__marks[item][1] = self.__marks[item][0].height() if self.__marks[item][0].height() != self.__marks[item][0].width(): logging.error('breakpoint margin pixmap needs to be square') self.myUUID = None if hasattr(self._qpart._parent, 'getUUID'): self.myUUID = self._qpart._parent.getUUID() mainWindow = GlobalData().mainWindow editorsManager = mainWindow.editorsManagerWidget.editorsManager editorsManager.sigFileTypeChanged.connect(self.__onFileTypeChanged) self.blockClicked.connect(self.__onBlockClicked) self._qpart.blockCountChanged.connect(self.__onBlockCountChanged) bpointModel = self.__debugger.getBreakPointModel() bpointModel.rowsAboutToBeRemoved.connect(self.__deleteBreakPoints) bpointModel.sigDataAboutToBeChanged.connect( self.__breakPointDataAboutToBeChanged) bpointModel.dataChanged.connect(self.__changeBreakPoints) bpointModel.rowsInserted.connect(self.__addBreakPoints)
def __init__(self, scriptName, params, reportTime, dataFile, parent=None): MainWindowTabWidgetBase.__init__(self) QWidget.__init__(self, parent) # The same stats object is needed for both - a table and a graph # So, parse profile output once and then pass the object further stats = pstats.Stats(dataFile) stats.calc_callees() self.__profTable = ProfileTableViewer(scriptName, params, reportTime, dataFile, stats, self) self.__profGraph = ProfileGraphViewer(scriptName, params, reportTime, dataFile, stats, self) self.__profTable.hide() self.__profTable.sigEscapePressed.connect(self.__onEsc) self.__profGraph.sigEscapePressed.connect(self.__onEsc) self.__createLayout()
def __init__(self, ide, pluginHomeDir, parent=None): QWidget.__init__(self, parent) self.__results = None self.__ide = ide self.__pluginHomeDir = pluginHomeDir self.__noneLabel = QLabel("\nNo results available") self.__noneLabel.setFrameShape(QFrame.StyledPanel) self.__noneLabel.setAlignment(Qt.AlignHCenter) font = self.__noneLabel.font() font.setPointSize(font.pointSize() + 4) self.__noneLabel.setFont(font) self.__noneLabel.setAutoFillBackground(True) noneLabelPalette = self.__noneLabel.palette() noneLabelPalette.setColor(QPalette.Background, GlobalData().skin['nolexerPaper']) self.__noneLabel.setPalette(noneLabelPalette) self.__createLayout(self.__pluginHomeDir)
def __init__(self, navBar, parent): QWidget.__init__(self, parent) self.__navBar = navBar self.__textEdit = BinViewTextEditor(self) self.__summary = HeaderLabel(parent=self) self.__summary.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Maximum) self.__summary.setMinimumWidth(10) self.__summary.setVisible(False) vLayout = QVBoxLayout() vLayout.setContentsMargins(0, 0, 0, 0) vLayout.setSpacing(0) vLayout.addWidget(self.__summary) vLayout.addWidget(self.__textEdit) self.setLayout(vLayout) Settings().sigTextZoomChanged.connect(self.onTextZoomChanged)
def __init__(self, navBar, parent): QWidget.__init__(self, parent) self.__navBar = navBar self.__table = DisassemblyTreeWidget(self) self.__table.sigEscapePressed.connect(self.__onEsc) self.__table.itemActivated.connect(self.__activated) self.__table.itemSelectionChanged.connect(self.__selectionChanged) self.__summary = HeaderLabel(parent=self) self.__summary.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Maximum) self.__summary.setMinimumWidth(10) self.__summary.setVisible(False) vLayout = QVBoxLayout() vLayout.setContentsMargins(0, 0, 0, 0) vLayout.setSpacing(0) vLayout.addWidget(self.__summary) vLayout.addWidget(self.__table) self.setLayout(vLayout)
def __init__(self, parent): QWidget.__init__(self, parent) extendInstance(self, MarginBase) MarginBase.__init__(self, parent, "cdm_flakes_margin", 1) self.setMouseTracking(True) self.__messages = {} self.__ccMessages = {} self.__bgColor = GlobalData().skin['flakesMarginPaper'] self.__noTooltip = True self.currentDebugLine = None self.excptionLine = None if not MARKS: MARKS[self.CURRENT_MARK] = getPixmap('dbgcurrentmarker.png') MARKS[self.EXC_MARK] = getPixmap('dbgexcptmarker.png') MARKS[self.FLAKES_MARK] = getPixmap('pyflakesmsgmarker.png') MARKS[self.COMPLEXITY_A_MARK] = getPixmap('complexity-a.png') MARKS[self.COMPLEXITY_B_MARK] = getPixmap('complexity-b.png') MARKS[self.COMPLEXITY_C_MARK] = getPixmap('complexity-c.png') MARKS[self.COMPLEXITY_D_MARK] = getPixmap('complexity-d.png') MARKS[self.COMPLEXITY_E_MARK] = getPixmap('complexity-e.png') MARKS[self.COMPLEXITY_F_MARK] = getPixmap('complexity-f.png') for item in MARKS: if MARKS[item].height() != MARKS[item].width(): logging.error('analysis margin pixmap needs to be square') self.myUUID = None if hasattr(self._qpart._parent, 'getUUID'): self.myUUID = self._qpart._parent.getUUID() mainWindow = GlobalData().mainWindow editorsManager = mainWindow.editorsManagerWidget.editorsManager editorsManager.sigFileTypeChanged.connect(self.__onFileTypeChanged) self._qpart.blockCountChanged.connect(self.update)
def __init__(self, editor, parent): QWidget.__init__(self, parent) self.setVisible(False) self.__editor = editor self.__parentWidget = parent self.__connected = False hLayout = QHBoxLayout() hLayout.setContentsMargins(0, 0, 0, 0) hLayout.setSpacing(0) vLayout = QVBoxLayout() vLayout.setContentsMargins(0, 0, 0, 0) vLayout.setSpacing(0) # Make pylint happy self.__toolbar = None self.__topBar = None # Create the update timer self.__updateTimer = QTimer(self) self.__updateTimer.setSingleShot(True) self.__updateTimer.timeout.connect(self.process) vLayout.addWidget(self.__createTopBar()) vLayout.addWidget(self.__createMDView()) hLayout.addLayout(vLayout) hLayout.addWidget(self.__createToolbar()) self.setLayout(hLayout) # Connect to the change file type signal self.__mainWindow = GlobalData().mainWindow editorsManager = self.__mainWindow.editorsManagerWidget.editorsManager editorsManager.sigFileTypeChanged.connect(self.__onFileTypeChanged)