def paint(self, painter, option, widget): """Draws the independent comment""" del option # unused argument del widget # unused argument settings = self.canvas.settings painter.setPen(self.getPainterPen(self.isSelected(), self.borderColor)) painter.setBrush(QBrush(self.bgColor)) rectWidth = self.minWidth - 2 * settings.hCellPadding rectHeight = self.minHeight - 2 * settings.vCellPadding 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.iconWidth() + settings.hDocLinkPadding, self.baseY + settings.vCellPadding + settings.vDocLinkPadding, self.textRect.width(), self.textRect.height(), Qt.AlignLeft, self.text)
def __setRevisionText(self): """Sets the revision margin text""" for revNumber in self.__revisionInfo: author = self.__revisionInfo[revNumber]['author'] if '@' in author: # Most probably this is an e-mail address. Leave just name. self.__revisionInfo[revNumber]['shortAuthor'] = author.split( '@')[0] else: self.__revisionInfo[revNumber]['shortAuthor'] = author skin = GlobalData().skin revisionMarginFont = QFont(skin.lineNumFont) revisionMarginFont.setItalic(True) style = QsciStyle(-1, "Revision margin style", skin.revisionMarginColor, skin.revisionMarginPaper, revisionMarginFont) lineNumber = 0 self.__maxLength = -1 # Altering line background support currentRevision = -1 needMarker = True for lineRevision in self.__lineRevisions: if lineRevision in self.__revisionInfo: marginText = " " + ":".join([ str(lineRevision), self.__revisionInfo[lineRevision]['shortAuthor'] ]) else: marginText = " " + str(lineRevision) textLength = len(marginText) if textLength > self.__maxLength: self.__maxLength = textLength self.setMarginText(lineNumber, marginText, style) # Set the line background if needed if lineRevision != currentRevision: currentRevision = lineRevision needMarker = not needMarker if needMarker: self.markerAdd(lineNumber, self.__alterMarker) lineNumber += 1 self.setRevisionMarginWidth()
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)