ViewerItem.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Thu, 05 May 2011 08:43:19 -0700
changeset 12 2d50a82295ab
parent 6 6ce97bd3e70f
permissions -rw-r--r--
Added spheres.py

from    PyQt4       import QtGui, QtCore

class ViewerItem(QtGui.QListWidgetItem):
    def __init__(self, name, parent = None, color = None):
        super(ViewerItem, self).__init__(name, parent, QtGui.QListWidgetItem.UserType)

        r,g,b = color if color else (0,0,0)
        self.set_color(QtGui.QColor(r,g,b))
        self.visible = True
        self.setChecked()

    def toggleVisible(self):
        self.visible = not self.visible
        self.setChecked()

    def setChecked(self):
        if self.visible:
            self.setCheckState(QtCore.Qt.Checked)
        else:
            self.setCheckState(QtCore.Qt.Unchecked)

    def createMenu(self):
        menu = QtGui.QMenu()
        colorAction = menu.addAction("Color")
        colorAction.setIcon(self.color_icon())
        colorAction.command = lambda: self.colorCommand()
        return menu

    def contextMenu(self, position):
        menu = self.createMenu()
        action = menu.exec_(position)
        if action: action.command()

    def colorCommand(self):
        color = QtGui.QColorDialog.getColor(self.color)
        self.set_color(color)

    def color_icon(self):
        color_pixmap = QtGui.QPixmap(10,10)
        color_pixmap.fill(self.color)
        return QtGui.QIcon(color_pixmap)

    def set_color(self, color):
        if color.isValid():
            self.color = color
        self.setIcon(self.color_icon())