Exemple #1
0
 def __init__(self, settings):
     QGraphicsRectItem.__init__(self)
     self.__settings = settings
     self.__x = None
     self.__y = None
     self.__width = None
     self.__height = None
Exemple #2
0
    def __init__(self, itemRef, cmlRef, canvas, x, y):
        CommentCellBase.__init__(self, itemRef, canvas, x, y)
        ColorMixin.__init__(self, None, canvas.settings.docLinkBGColor,
                            canvas.settings.docLinkFGColor,
                            canvas.settings.docLinkBorderColor,
                            colorSpec=cmlRef)
        QGraphicsRectItem.__init__(self, canvas.scopeRectangle)
        self.cmlRef = cmlRef

        # They all have the same icon
        if cmlRef.link is not None and cmlRef.anchor is not None:
            IconMixin.__init__(self, canvas, 'docanchor.svg',
                               'Jump to the documentation')
            self.iconItem.setCursor(QCursor(Qt.PointingHandCursor))
        else:
            if cmlRef.link is not None:
                IconMixin.__init__(self, canvas, 'doclink.svg',
                                   'Jump to the documentation')
                self.iconItem.setCursor(QCursor(Qt.PointingHandCursor))
            else:
                IconMixin.__init__(self, canvas, 'anchor.svg',
                                   'Documentation anchor')


        # They all are double clickable
        # This makes double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
    def __init__(self, node, fileName, lineNumber, outside, nodeFont):
        QGraphicsRectItem.__init__(self)
        self.__node = node
        self.__fileName = fileName
        self.__lineNumber = lineNumber
        self.__outside = outside

        self.__font = DEFAULT_FONT
        if nodeFont:
            self.__font = nodeFont

        posX = node.posX - node.width / 2.0
        posY = node.posY - node.height / 2.0
        QGraphicsRectItem.__init__(self, posX, posY, node.width, node.height)

        self.setRectanglePen()

        # node.color is like "#fe0400"
        if node.color.startswith("#"):
            color = QColor(int(node.color[1:3], 16), int(node.color[3:5], 16),
                           int(node.color[5:], 16))
        else:
            color = QColor(220, 255, 220)
        self.setBrush(color)

        # To make item selectable
        self.setFlag(QGraphicsItem.ItemIsSelectable,
                     os.path.isabs(self.__fileName) and self.__lineNumber > 0)

        # Set tooltip as a function docstring
        if fileName != "" and lineNumber != 0:
            self.setToolTip(GlobalData().getFileLineDocstring(
                fileName, lineNumber))
Exemple #4
0
    def __init__(self, ref, groupBeginCMLRef, canvas, x, y):
        GroupItemBase.__init__(self, groupBeginCMLRef, ref, canvas, x, y)
        ColorMixin.__init__(self,
                            None,
                            canvas.settings.openGroupBGColor,
                            canvas.settings.openGroupFGColor,
                            canvas.settings.openGroupBorderColor,
                            colorSpec=groupBeginCMLRef)
        QGraphicsRectItem.__init__(self, canvas.scopeRectangle)
        self.kind = CellElement.OPENED_GROUP_BEGIN
        self.connector = None
        self.topLeftControl = None
        self.highlight = False

        # These two items are filled when rendering is finished for all the
        # items in the group
        self.groupWidth = None
        self.groupHeight = None

        self.groupEndRow = None
        self.groupEndColumn = None

        self.selfAndDeeperNestLevel = None
        self.selfMaxNestLevel = None  # Used in vcanvas.py

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #5
0
    def __init__(self, canvas, x, y, w, h):
        CellElement.__init__(self, None, canvas, x=None, y=None)
        QGraphicsRectItem.__init__(self, x, y, w, h)
        self.kind = CellElement.RECTANGLE

        self.pen = None
        self.brush = None
Exemple #6
0
    def __init__(self, ref):
        QGraphicsRectItem.__init__(self)
        self.ref = ref

        settings = self.ref.canvas.settings
        self.__width = settings.openGroupHSpacer * 2 - 1
        self.__height = settings.openGroupVSpacer * 2 - 1

        self.setAcceptHoverEvents(True)
Exemple #7
0
    def __init__(self, ref):
        CellElement.__init__(self, ref, ref.canvas, None, None)
        QGraphicsRectItem.__init__(self)
        self.kind = CellElement.GROUP_CORNER_CONROL

        settings = self.canvas.settings
        self.__width = settings.openGroupHSpacer * 2 - 1
        self.__height = settings.openGroupVSpacer * 2 - 1

        self.setAcceptHoverEvents(True)
Exemple #8
0
    def __init__(self, ref, canvas, x, y):
        GroupItemBase.__init__(self)
        CellElement.__init__(self, ref, canvas, x, y)
        QGraphicsRectItem.__init__(self, canvas.scopeRectangle)
        self.kind = CellElement.COLLAPSED_GROUP
        self.__textRect = None
        self.connector = None

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #9
0
    def __init__(self, canvas):
        CellElement.__init__(self, None, canvas, x=None, y=None)
        QGraphicsRectItem.__init__(self)

        self.kind = CellElement.RUBBER_BAND
        self.__settings = canvas.settings
        self.__x = None
        self.__y = None
        self.__width = None
        self.__height = None
Exemple #10
0
    def __init__(self, fileName, needConnector, canvas, x, y):
        CellElement.__init__(self, None, canvas, x, y)
        TextMixin.__init__(self)
        QGraphicsRectItem.__init__(self, canvas.scopeRectangle)
        self.kind = CellElement.DEPS_SELF_MODULE
        self.fileName = fileName

        self.needConnector = needConnector
        self.connector = None

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #11
0
    def __init__(self, ref, text, drawText=True):
        BadgeItemBase.__init__(self, ref, text)
        QGraphicsRectItem.__init__(self)

        self.kind = CellElement.BADGE
        self.__drawText = drawText

        s = ref.canvas.settings
        self.__bgColor = s.badgeBGColor
        self.__fgColor = s.badgeFGColor
        self.__frameColor = s.badgeBorderColor
        self.__needRect = True
    def __init__(self, node):
        QGraphicsRectItem.__init__(self)
        self.__node = node

        posX = node.posX - node.width / 2.0
        posY = node.posY - node.height / 2.0
        QGraphicsRectItem.__init__(self, posX, posY, node.width, node.height)
        pen = QPen(QColor(0, 0, 0))
        pen.setWidth(2)
        self.setPen(pen)

        self.setBrush(QColor(216, 216, 207))
Exemple #13
0
    def __init__(self, ref, canvas, x, y):
        CellElement.__init__(self, ref, canvas, x, y)
        TextMixin.__init__(self)
        ColorMixin.__init__(self, ref, self.canvas.settings.codeBlockBGColor,
                            self.canvas.settings.codeBlockFGColor,
                            self.canvas.settings.codeBlockBorderColor)
        QGraphicsRectItem.__init__(self, canvas.scopeRectangle)
        self.kind = CellElement.CODE_BLOCK
        self.connector = None

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #14
0
    def __init__(self, ref, canvas, x, y):
        CellElement.__init__(self, ref, canvas, x, y)
        QGraphicsRectItem.__init__(self)

        self.kind = CellElement.INDEPENDENT_MINIMIZED_COMMENT

        self.__setTooltip()

        self.leadingForElse = False
        self.sideForElse = False

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #15
0
    def __init__(self, ref, canvas, x, y):
        CellElement.__init__(self, ref, canvas, x, y)
        TextMixin.__init__(self)
        ColorMixin.__init__(self, ref, self.canvas.settings.importBGColor,
                            self.canvas.settings.importFGColor,
                            self.canvas.settings.importBorderColor)
        IconMixin.__init__(self, canvas, 'import.svg', 'import')
        QGraphicsRectItem.__init__(self, canvas.scopeRectangle)
        self.kind = CellElement.IMPORT
        self.connector = None

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #16
0
    def __init__(self, ref, canvas, x, y):
        CellElement.__init__(self, ref, canvas, x, y)
        TextMixin.__init__(self)
        ColorMixin.__init__(self, ref, self.canvas.settings.returnBGColor,
                            self.canvas.settings.returnFGColor,
                            self.canvas.settings.returnBorderColor)
        IconMixin.__init__(self, canvas, 'return.svg', 'return')
        QGraphicsRectItem.__init__(self)
        self.kind = CellElement.RETURN
        self.connector = None

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #17
0
    def __init__(self, ref, groupBeginCMLRef, canvas, x, y):
        GroupItemBase.__init__(self, groupBeginCMLRef, ref, canvas, x, y)
        ColorMixin.__init__(self,
                            None,
                            canvas.settings.collapsedGroupBGColor,
                            canvas.settings.collapsedGroupFGColor,
                            canvas.settings.collapsedGroupBorderColor,
                            colorSpec=groupBeginCMLRef)
        QGraphicsRectItem.__init__(self, canvas.scopeRectangle)
        self.kind = CellElement.COLLAPSED_GROUP
        self.connector = None

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #18
0
    def __init__(self, ref, isSideComment):
        BadgeItemBase.__init__(self, ref, '#', 'hiddencomment.svg')
        QGraphicsRectItem.__init__(self)

        self.kind = CellElement.SCOPE_COMMENT_BADGE
        self.isSideComment = isSideComment

        if self.isSideComment:
            val = self.ref.ref.sideComment.getDisplayValue()
        else:
            val = self.ref.ref.leadingComment.getDisplayValue()
        self.setToolTip('<pre>' + escape(val) + '</pre>')

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #19
0
    def __init__(self, iconFileName, ref, canvas, x, y):
        CellElement.__init__(self, ref, canvas, x, y)
        IconMixin.__init__(self, canvas, iconFileName)
        QGraphicsRectItem.__init__(self, canvas.scopeRectangle)

        # Visually the icon looks a bit too big so reduce the size to 80%
        self.iconItem.setIconHeight(self.iconItem.iconHeight() * 0.8)

        self.rectWidth = None
        self.rectHeight = None
        self.connector = None
        self.rectRadius = None

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
    def __init__(self, node, refFile, srcobj, deviceDPI):
        self.__node = node
        self.__srcobj = srcobj
        self.__refFile = refFile

        self.__pixelsPerLine = self.calcPixelsPerLine()

        posX = node.posX - node.width / 2.0
        posY = node.posY - node.height / 2.0
        QGraphicsRectItem.__init__(self, posX, posY, node.width, node.height)
        pen = QPen(QColor(0, 0, 0))
        pen.setWidth(2)
        self.setPen(pen)

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #21
0
    def __init__(self, ref, canvas, x, y, bgColor, fgColor, borderColor):
        CellElement.__init__(self, ref, canvas, x, y)
        TextMixin.__init__(self)
        ColorMixin.__init__(self, ref, bgColor, fgColor, borderColor)
        QGraphicsRectItem.__init__(self)

        self.connector = None

        # Cache for the size
        self.xPos = None
        self.yPos = None
        self.rectWidth = None
        self.rectHeight = None

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
    def __init__(self, node, refFile, srcobj):
        QGraphicsRectItem.__init__(self)
        self.__node = node
        self.__srcobj = srcobj
        self.__refFile = refFile

        posX = node.posX - node.width / 2.0
        posY = node.posY - node.height / 2.0
        QGraphicsRectItem.__init__(self, posX, posY, node.width, node.height)
        pen = QPen(QColor(0, 0, 0))
        pen.setWidth(2)
        self.setPen(pen)

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)

        self.setBrush(QColor(253, 245, 145))
    def __init__(self, node, refFile, docstring):
        QGraphicsRectItem.__init__(self)
        self.__node = node
        self.__refFile = refFile
        self.__docstring = docstring

        posX = node.posX - node.width / 2.0
        posY = node.posY - node.height / 2.0
        QGraphicsRectItem.__init__(self, posX, posY, node.width, node.height)
        pen = QPen(QColor(0, 0, 0))
        pen.setWidth(2)
        self.setPen(pen)

        self.setBrush(QColor(220, 255, 220))

        # System modules are clickable
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #24
0
    def __init__(self, ref, canvas, x, y):
        CellElement.__init__(self, ref, canvas, x, y)
        TextMixin.__init__(self)
        ColorMixin.__init__(self, ref, self.canvas.settings.ifBGColor,
                            self.canvas.settings.ifFGColor,
                            self.canvas.settings.ifBorderColor)
        QGraphicsRectItem.__init__(self, canvas.scopeRectangle)
        self.kind = CellElement.IF
        self.vConnector = None
        self.rhsConnector = None
        self.leftBadge = None
        self.yBelow = False
        self.needHConnector = True
        self.rhsShift = 0

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #25
0
    def __init__(self, settings, bgColor, fgColor, borderColor, width, height):
        QGraphicsRectItem.__init__(self)
        self.__settings = settings
        self.__bgColor = bgColor
        self.__fgColor = fgColor
        self.__borderColor = borderColor
        self.__viewWidth = width
        self.__viewHeight = height

        self.__textRect = self.__settings.monoFontMetrics.boundingRect(
            0, 0, maxsize, maxsize, 0, 'Sample')

        vPadding = 2 * settings.vTextPadding
        self.__rectHeight = self.__textRect.height() + vPadding
        hPadding = 2 * settings.hTextPadding
        self.__rectWidth = max(self.__textRect.width() + hPadding,
                               settings.minWidth)
Exemple #26
0
    def __init__(self, ref, canvas, x, y):
        CellElement.__init__(self, ref, canvas, x, y)
        ColorMixin.__init__(self,
                            None,
                            canvas.settings.docLinkBGColor,
                            canvas.settings.docLinkFGColor,
                            canvas.settings.docLinkBorderColor,
                            colorSpec=ref)
        QGraphicsRectItem.__init__(self)
        self.pixmapFile, tooltip = getDoclinkIconAndTooltip(ref, hidden=True)
        if tooltip:
            self.setToolTip('<pre>' + escape(tooltip) + '</pre>')

        self.kind = CellElement.INDEPENDENT_MINIMIZED_DOC

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #27
0
    def __init__(self, ref, text):
        CellElement.__init__(self, ref, ref.canvas, None, None)
        QGraphicsRectItem.__init__(self)
        self.kind = CellElement.BADGE
        self.__text = text

        s = ref.canvas.settings

        self.__textRect = s.badgeFontMetrics.boundingRect(
            0, 0, maxsize, maxsize, 0, text)

        self.width = self.__textRect.width() + 2 * s.badgeHSpacing
        self.height = self.__textRect.height() + 2 * s.badgeVSpacing

        self.__bgColor = s.badgeBGColor
        self.__fgColor = s.badgeFGColor
        self.__frameColor = s.badgeBorderColor
        self.__needRect = True
Exemple #28
0
    def __init__(self, ref, text):
        BadgeItemBase.__init__(self, ref, text)
        s = ref.canvas.settings
        ColorMixin.__init__(self,
                            ref.ref,
                            s.docstringBGColor,
                            s.docstringFGColor,
                            s.docstringBorderColor,
                            isDocstring=True)
        QGraphicsRectItem.__init__(self)

        self.kind = CellElement.SCOPE_DOCSTRING_BADGE

        docstr = self.ref.ref.docstring.getDisplayValue()
        self.setToolTip('<pre>' + escape(docstr) + '</pre>')

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
Exemple #29
0
    def __init__(self, ref, text):
        QGraphicsRectItem.__init__(self)
        self.ref = ref
        self.__text = text

        self.__textRect = ref.canvas.settings.badgeFontMetrics.boundingRect(
            0, 0, maxsize, maxsize, 0, text)
        self.__hSpacing = 2
        self.__vSpacing = 1
        self.__radius = 2

        self.__width = self.__textRect.width() + 2 * self.__hSpacing
        self.__height = self.__textRect.height() + 2 * self.__vSpacing

        self.__bgColor = ref.canvas.settings.badgeBGColor
        self.__fgColor = ref.canvas.settings.badgeFGColor
        self.__frameColor = ref.canvas.settings.badgeLineColor
        self.__font = ref.canvas.settings.badgeFont
        self.__needRect = True
Exemple #30
0
    def __init__(self, ref):
        self.cmlRef = getDocComment(ref.ref.leadingCMLComments)
        pixmapFile, _ = getDoclinkIconAndTooltip(self.cmlRef)

        BadgeItemBase.__init__(self, ref, 'd', pixmapFile)
        s = ref.canvas.settings
        ColorMixin.__init__(self,
                            None,
                            s.docLinkBGColor,
                            s.docLinkFGColor,
                            s.docLinkBorderColor,
                            colorSpec=self.cmlRef)
        QGraphicsRectItem.__init__(self)

        self.kind = CellElement.SCOPE_DOCLINK_BADGE

        val = self.cmlRef.getTitle()
        self.setToolTip('<pre>' + escape(val) + '</pre>')

        # To make double click delivered
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)