ViewerItem.py
author Dmitriy Morozov <dmitriy@mrzv.org>
Sat, 05 Mar 2011 15:58:56 -0800
changeset 4 d52927c0bf92
parent 3 6f1239040a06
child 6 6ce97bd3e70f
permissions -rw-r--r--
Added edges

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.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.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)
        if color.isValid():
            self.color = color