1 from PyQt4 import QtGui, QtCore
2 from PyQt4.QtCore import Qt
3
4 from customdelegate import CustomDelegate, DocumentationMetaclass
5 from camelot.view.controls import editors
6 from camelot.view.art import Icon
7
9 """Delegate for Smiley's
10 """
11
12 __metaclass__ = DocumentationMetaclass
13
14 editor = editors.SmileyEditor
15
16 - def __init__(self, parent, editable=True, **kwargs):
22
23 - def paint(self, painter, option, index):
24 painter.save()
25 img = index.model().data(index, Qt.DisplayRole).toString()
26
27 background_color = QtGui.QColor(index.model().data(index, Qt.BackgroundRole))
28
29 imgPath = 'tango/16x16/emotes/' + img + '.png'
30 self.drawBackground(painter, option, index)
31 rect = option.rect
32 rect = QtCore.QRect(rect.left()+3, rect.top()+6, rect.width()-5, rect.height())
33
34 if( option.state & QtGui.QStyle.State_Selected ):
35 painter.fillRect(option.rect, option.palette.highlight())
36 else:
37 if not self.editable:
38 painter.fillRect(option.rect, option.palette.window())
39 else:
40 painter.fillRect(option.rect, background_color)
41
42 icon = Icon(imgPath).getQPixmap()
43 QtGui.QApplication.style().drawItemPixmap(painter, rect, 1, icon)
44 rect = QtCore.QRect(rect.left()+20, rect.top(), rect.width(), rect.height())
45 painter.restore()
46