예제 #1
0
    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()
예제 #3
0
    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)