예제 #1
0
 def _drawSelectionOverlay(self, painter, option):
     # Draw the selection
     if option.rect.width() > 0:
         selectionPen = QtGui.QPen(self.__colorInvalid)
         selectionPen.setWidth(0)
         painter.setPen(selectionPen)
         painter.setBrush(self.__brushSelected)
         painter.drawRect(option.rect)
    def __paintTickmarks(self, painter):
        tickExtent = self.__getTickAreaExtent()
        tickHeight = tickExtent.height() / 8

        pen = QtGui.QPen(self.palette().window().color())
        painter.setPen(pen)

        # Draw the baseline
        painter.drawLine(tickExtent.left(), 0, tickExtent.right(), 0)

        tickArea = self.__getTickArea(self.__frameRange[0])
        if tickArea.width() >= 5:
            for frame in range(self.__frameRange[0], self.__frameRange[1] + 1, 1):
                xPos = self.__getTickArea(frame).left()
                painter.drawLine(xPos, -tickHeight, xPos, 0)
예제 #3
0
    def paintEvent(self, event):
        """Called when the widget is being redrawn
        @type  event: QEvent
        @param event: The draw event"""
        assert threading.currentThread().getName() == "MainThread"
        self.__colorsLock.lockForWrite()
        try:
            if not self.__colors:
                return
            colors = self.__colors
        finally:
            self.__colorsLock.unlock()

        painter = QtGui.QPainter(self)
        painter.save()
        try:
            rect = self.contentsRect()

            # Number of pixels per job
            ratio = float(rect.height())/len(colors)
            # How far down the slider is
            shift = self.__sourceTree.verticalScrollBar().value() * ratio
            # Length not covered by the slider
            offPage = self.__sourceTree.verticalScrollBar().maximum() * ratio

            painter.drawPixmap(self.contentsRect(),
                               self.__background,
                               self.__background.rect())

            # Draw the slider
            pen = QtGui.QPen(self.__colorInvalid)
            pen.setWidth(0)
            painter.setPen(pen)
            painter.setBrush(self.__brushPattern)
            painter.drawRect(rect.adjusted(2, shift, -2, -offPage + shift))
        finally:
            painter.restore()
            painter.end()
            del painter
예제 #4
0
RGB_FRAME_STATE = {
    opencue.api.job_pb2.SUCCEEDED: QtGui.QColor(55, 200, 55),
    opencue.api.job_pb2.RUNNING: QtGui.QColor(200, 200, 55),
    opencue.api.job_pb2.WAITING: QtGui.QColor(135, 207, 235),
    opencue.api.job_pb2.DEPEND: QtGui.QColor(160, 32, 240),
    opencue.api.job_pb2.DEAD: QtGui.QColor(255, 0, 0),
    opencue.api.job_pb2.EATEN: QtGui.QColor(150, 0, 0)
}

# This controls display order
FRAME_STATES = (opencue.api.job_pb2.SUCCEEDED, opencue.api.job_pb2.RUNNING,
                opencue.api.job_pb2.WAITING, opencue.api.job_pb2.DEPEND,
                opencue.api.job_pb2.DEAD, opencue.api.job_pb2.EATEN)

NO_PEN = QtGui.QPen(QtCore.Qt.NoPen)
NO_BRUSH = QtGui.QBrush(QtCore.Qt.NoBrush)


class AbstractDelegate(QtWidgets.QItemDelegate):
    """Handles drawing of items for the TreeWidget. Provides special handling
    for selected jobs in order to still display background color."""
    __colorInvalid = QtGui.QColor()
    __brushSelected = QtGui.QBrush(QtCore.Qt.Dense4Pattern)
    __colorUsed = QtGui.QColor(255, 0, 0)
    __colorFree = QtGui.QColor(0, 255, 0)

    def __init__(self, parent, jobProgressBarColumn=None, *args):
        QtWidgets.QItemDelegate.__init__(self, parent, *args)

    def paint(self, painter, option, index):