18
18
along with MAP Client. If not, see <http://www.gnu.org/licenses/>..
20
20
from PySide import QtCore, QtGui
21
from widgets.utils import createDefaultImageIcon
21
from mapclient.widgets.utils import createDefaultImageIcon
23
23
class StepTree(QtGui.QTreeWidget):
25
25
def __init__(self, parent=None):
26
26
super(StepTree, self).__init__(parent)
27
27
self.stepIconSize = 64
28
self.setStyleSheet("QTreeWidget::item::has-children { \
29
background: lightgray; text-align: center; \
30
color: black; border: 2px solid lightgray; \
31
padding-bottom: 4px; padding-top: 4px; \
32
border-radius: 4px; } \
33
QTreeWidget::item::closed { padding-left: 4px;\
34
image: url(':/stepbox/images/branch-closed.png') } \
35
QTreeWidget::item::closed::has-children { padding-left: 40px;\
36
image: url(':/stepbox/images/branch-closed.png') }")
29
38
size = QtCore.QSize(self.stepIconSize, self.stepIconSize)
30
39
self.setIconSize(size)
47
56
def addStep(self, step):
49
59
parentItem = self.findParentItem(step._category)
51
61
parentItem = QtGui.QTreeWidgetItem(self)
52
parentItem.setText(0, step._category)
62
parentItem.setText(column, step._category)
63
parentItem.setTextAlignment(column, QtCore.Qt.AlignCenter)
64
font = parentItem.font(column)
66
font.setWeight(QtGui.QFont.Bold)
67
parentItem.setFont(column, font)
54
69
if not parentItem.isExpanded():
55
70
parentItem.setExpanded(True)
57
72
stepItem = QtGui.QTreeWidgetItem(parentItem)
58
stepItem.setText(0, step.getName())
73
stepItem.setText(column, step.getName())
60
stepItem.setIcon(0, QtGui.QIcon(QtGui.QPixmap.fromImage(step._icon)))
75
stepItem.setIcon(column, QtGui.QIcon(QtGui.QPixmap.fromImage(step._icon)))
62
stepItem.setIcon(0, QtGui.QIcon(QtGui.QPixmap.fromImage(createDefaultImageIcon(step.getName()))))
77
stepItem.setIcon(column, QtGui.QIcon(QtGui.QPixmap.fromImage(createDefaultImageIcon(step.getName()))))
64
stepItem.setData(0, QtCore.Qt.UserRole, step)
79
stepItem.setData(column, QtCore.Qt.UserRole, step)
65
80
stepItem.setFlags(QtCore.Qt.ItemIsEnabled)
67
82
def mousePressEvent(self, event):