def paint(self, painter, option, widget): """Draws the collapsed group""" del option # unused argument del widget # unused argument settings = self.canvas.settings # Group rectangle if self.isSelected(): selectPen = QPen(settings.selectColor) selectPen.setWidth(settings.selectPenWidth) selectPen.setJoinStyle(Qt.RoundJoin) painter.setPen(selectPen) else: pen = QPen(self.__borderColor) if self.highlight: pen.setStyle(Qt.SolidLine) else: pen.setStyle(Qt.DotLine) pen.setWidth(1) painter.setPen(pen) brush = QBrush(self.__bgColor) painter.setBrush(brush) fullWidth = self.groupWidth + 2 * settings.openGroupHSpacer fullHeight = self.groupHeight + 2 * settings.openGroupVSpacer painter.drawRoundedRect(self.baseX + settings.openGroupHSpacer, self.baseY + settings.openGroupVSpacer, fullWidth, fullHeight, settings.openGroupVSpacer, settings.openGroupVSpacer)
def paint(self, painter, option, widget): """Draws the independent comment""" settings = self.canvas.settings brush = QBrush(settings.commentBGColor) self.setBrush(brush) if self.isSelected(): selectPen = QPen(settings.selectColor) selectPen.setWidth(settings.selectPenWidth) selectPen.setJoinStyle(Qt.RoundJoin) self.setPen(selectPen) else: pen = QPen(settings.commentLineColor) pen.setWidth(settings.commentLineWidth) pen.setJoinStyle(Qt.RoundJoin) self.setPen(pen) # Hide the dotted outline itemOption = QStyleOptionGraphicsItem(option) if itemOption.state & QStyle.State_Selected != 0: itemOption.state = itemOption.state & ~QStyle.State_Selected QGraphicsPathItem.paint(self, painter, itemOption, widget) # Draw the text in the rectangle pen = QPen(settings.commentFGColor) painter.setFont(settings.monoFont) painter.setPen(pen) painter.drawText( self.__leftEdge + settings.hCellPadding + self.__hTextPadding, self.baseY + settings.vCellPadding + self.__vTextPadding, self.__textRect.width(), self.__textRect.height(), Qt.AlignLeft, self.__getText())
def __paintDocstring(self, painter): """Paints the docstring""" s = self.canvas.settings painter.setBrush(QBrush(self.bgColor)) canvasLeft = self.baseX - s.scopeRectRadius if self.isSelected(): selectPen = QPen(s.selectColor) selectPen.setWidth(s.selectPenWidth) selectPen.setJoinStyle(Qt.RoundJoin) painter.setPen(selectPen) painter.drawRect(canvasLeft, self.baseY, self.canvas.minWidth - 2 * s.hCellPadding, self.height) else: # If the scope is selected then the line may need to be shorter # to avoid covering the outline row = self.addr[1] - 2 column = self.addr[0] - 1 correction = 0.0 if self.canvas.cells[row][column].isSelected(): correction = s.selectPenWidth - 1 # The background could also be custom pen = QPen(self.bgColor) pen.setWidth(s.boxLineWidth) pen.setJoinStyle(Qt.MiterJoin) painter.setPen(pen) dsCorr = float(s.boxLineWidth) if self.canvas.cells[row][column].isSelected(): dsCorr = float(s.selectPenWidth) / 2.0 + \ float(s.boxLineWidth) / 2.0 painter.drawRect( float(canvasLeft) + dsCorr, self.baseY + s.boxLineWidth, float(self.canvas.minWidth) - 2.0 * float(s.hCellPadding) - 2.0 * dsCorr, self.height - 2 * s.boxLineWidth) pen = QPen(self.borderColor) pen.setWidth(s.boxLineWidth) painter.setPen(pen) painter.drawLine( canvasLeft + correction, self.baseY + self.height, canvasLeft + self.canvas.minWidth - 2 * s.hCellPadding - correction, self.baseY + self.height) if not s.hidedocstrings: pen = QPen(self.fgColor) painter.setFont(s.monoFont) painter.setPen(pen) painter.drawText(canvasLeft + s.hHeaderPadding, self.baseY + s.vHeaderPadding, self.canvas.width - 2 * s.hHeaderPadding, self.height - 2 * s.vHeaderPadding, Qt.AlignLeft, self.text)
def getPainterPen(self, selected, borderColor): """Provides the painter pen for the item""" if selected: pen = QPen(self.canvas.settings.selectColor) pen.setWidth(self.canvas.settings.selectPenWidth) else: pen = QPen(borderColor) pen.setWidth(self.canvas.settings.boxLineWidth) pen.setJoinStyle(Qt.RoundJoin) return pen
def paint(self, painter, option, widget): """Draws the code block""" settings = self.canvas.settings pen = QPen(settings.cfLineColor) pen.setWidth(settings.cfLineWidth) pen.setJoinStyle(Qt.RoundJoin) self.setPen(pen) painter.setPen(pen) QGraphicsPathItem.paint(self, painter, option, widget)
def paint(self, painter, option, widget): """Draws the collapsed group""" del option # unused argument del widget # unused argument settings = self.canvas.settings # Outer rectangle rectWidth = self.minWidth - 2 * settings.hCellPadding rectHeight = self.minHeight - 2 * settings.vCellPadding if self.isSelected(): selectPen = QPen(settings.selectColor) selectPen.setWidth(settings.selectPenWidth) selectPen.setJoinStyle(Qt.RoundJoin) painter.setPen(selectPen) else: pen = QPen(self.__borderColor) pen.setStyle(Qt.DashLine) pen.setWidth(1) painter.setPen(pen) brush = QBrush(self.__bgColor) painter.setBrush(brush) painter.drawRect(self.baseX + settings.hCellPadding, self.baseY + settings.vCellPadding, rectWidth, rectHeight) # Inner rectangle rectWidth -= 2 * settings.collapsedOutlineWidth rectHeight -= 2 * settings.collapsedOutlineWidth pen = QPen(self.__borderColor) pen.setStyle(Qt.DashLine) pen.setWidth(1) painter.setPen(pen) painter.drawRect(self.baseX + settings.hCellPadding + settings.collapsedOutlineWidth, self.baseY + settings.vCellPadding + settings.collapsedOutlineWidth, rectWidth, rectHeight) # Draw the text in the rectangle pen = QPen(self.__fgColor) painter.setFont(settings.monoFont) painter.setPen(pen) textWidth = self.__textRect.width() + 2 * settings.hTextPadding textShift = (rectWidth - textWidth) / 2 painter.drawText( self.baseX + settings.hCellPadding + settings.hTextPadding + settings.collapsedOutlineWidth + textShift, self.baseY + settings.vCellPadding + settings.vTextPadding + settings.collapsedOutlineWidth, self.__textRect.width(), self.__textRect.height(), Qt.AlignLeft, self._getText())
def paintBadgeRectangle(self, painter, isSelected, borderColor, bgColor): """Draws the badge filled rectange""" s = self.ref.canvas.settings if isSelected: pen = QPen(s.selectColor) pen.setWidth(s.selectPenWidth) else: pen = QPen(borderColor) pen.setWidth(s.badgeLineWidth) pen.setJoinStyle(Qt.RoundJoin) painter.setPen(pen) painter.setBrush(QBrush(bgColor)) painter.drawRoundedRect(self.x(), self.y(), self.width, self.height, s.badgeRadius, s.badgeRadius)
def paint(self, painter, option, widget): """Paints the connector""" color = self.__settings.lineColor if self.penColor: color = self.penColor width = self.__settings.lineWidth if self.penWidth: width = self.penWidth pen = QPen(color) pen.setWidth(width) pen.setCapStyle(Qt.FlatCap) pen.setJoinStyle(Qt.RoundJoin) if self.penStyle: pen.setStyle(self.penStyle) self.setPen(pen) QGraphicsPathItem.paint(self, painter, option, widget)
def paint(self, painter, option, widget): """Paints the line item""" color = self.canvas.settings.cfLineColor if self.penColor: color = self.penColor width = self.canvas.settings.cfLineWidth if self.penWidth: width = self.penWidth pen = QPen(color) pen.setWidth(width) pen.setCapStyle(Qt.FlatCap) pen.setJoinStyle(Qt.RoundJoin) if self.penStyle: pen.setStyle(self.penStyle) self.setPen(pen) QGraphicsLineItem.paint(self, painter, option, widget)
def paint(self, painter, option, widget): """Draws the leading comment""" settings = self.canvas.settings # Bottom adjustment yShift = self.height - self.minHeight baseY = self.baseY + yShift # Left adjustments shift = self.hShift * 2 * settings.openGroupHSpacer self._leftEdge += shift brush = QBrush(settings.commentBGColor) self.setBrush(brush) if self.isSelected(): selectPen = QPen(settings.selectColor) selectPen.setWidth(settings.selectPenWidth) selectPen.setJoinStyle(Qt.RoundJoin) self.setPen(selectPen) else: pen = QPen(settings.commentLineColor) pen.setWidth(settings.commentLineWidth) pen.setJoinStyle(Qt.RoundJoin) self.setPen(pen) # Hide the dotted outline itemOption = QStyleOptionGraphicsItem(option) if itemOption.state & QStyle.State_Selected != 0: itemOption.state = itemOption.state & ~QStyle.State_Selected QGraphicsPathItem.paint(self, painter, itemOption, widget) # Draw the text in the rectangle pen = QPen(settings.commentFGColor) painter.setFont(settings.monoFont) painter.setPen(pen) painter.drawText( self._leftEdge + settings.hCellPadding + self._hTextPadding, baseY + settings.vCellPadding + self._vTextPadding, self._textRect.width(), self._textRect.height(), Qt.AlignLeft, self.__getText()) self._leftEdge -= shift
def paint(self, painter, option, widget): """Draws the independent comment""" settings = self.canvas.settings rectWidth = self.minWidth - 2 * settings.hCellPadding rectHeight = self.minHeight - 2 * settings.vCellPadding if self.isSelected(): selectPen = QPen(settings.selectColor) selectPen.setWidth(settings.selectPenWidth) selectPen.setJoinStyle(Qt.RoundJoin) painter.setPen(selectPen) else: pen = QPen(self.__borderColor) pen.setWidth(settings.docLinkLineWidth) pen.setJoinStyle(Qt.RoundJoin) painter.setPen(pen) brush = QBrush(self.__bgColor) painter.setBrush(brush) painter.drawRoundedRect(self.baseX + settings.hCellPadding, self.baseY + settings.vCellPadding, rectWidth, rectHeight, 0, 0) if self._text: # Draw the text in the rectangle font = QFont(settings.monoFont) font.setItalic(True) painter.setFont(font) pen = QPen(self.__fgColor) painter.setPen(pen) painter.drawText( self._leftEdge + settings.hCellPadding + settings.hDocLinkPadding + self.iconItem.width() + settings.hDocLinkPadding, self.baseY + settings.vCellPadding + settings.vDocLinkPadding, self._textRect.width(), self._textRect.height(), Qt.AlignLeft, self._text)
def setRectanglePen(self): """Sets the diagram pen""" pen = QPen(QColor(0, 0, 0)) pen.setWidth(2) pen.setJoinStyle(Qt.RoundJoin) self.setPen(pen)