1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 """custom tree and tree-items widgets"""
29
30 import logging
31
32 logger = logging.getLogger('camelot.view.controls.modeltree')
33
34 from PyQt4 import QtGui
35 from PyQt4 import QtCore
36 from PyQt4.QtCore import Qt
37
38 from camelot.view.art import Icon
39
40 QT_MAJOR_VERSION = float('.'.join(str(QtCore.QT_VERSION_STR).split('.')[0:2]))
41
42
44 """Custom tree item widget"""
45
46 - def __init__(self, parent, columns_names):
47 logger.debug('creating new modelitem')
48 QtGui.QTreeWidgetItem.__init__(self, parent, columns_names)
49 self.column = 0
50 self.set_icon()
51
53 font = self.font(self.column)
54 font.setUnderline(enable)
55 self.setFont(self.column, font)
56
58 if qicon is None:
59 qicon = Icon('tango/16x16/actions/window-new.png').getQIcon()
60 self.setIcon(self.column, qicon)
61
62
64 """Custom tree widget"""
65
66 - def __init__(self, header_labels=[''], parent=None):
77
79 if QT_MAJOR_VERSION > 4.3:
80 self.setHeaderHidden(True)
81 else:
82 self.setHeaderLabels(self.header_labels)
83
86
88 """Custom context menu"""
89 if event.button() == Qt.RightButton:
90 self.emit(QtCore.SIGNAL('customContextMenuRequested(const QPoint &)'),
91 event.pos())
92 event.accept()
93 else:
94 QtGui.QTreeWidget.mousePressEvent(self, event)
95
97 if not self.modelitems:
98 return
99
100 for item in self.modelitems:
101 item._underline(False)
102
104 if not self.modelitems:
105 return
106
107 for item in self.modelitems:
108 item._underline(False)
109
110 item = self.itemAt(self.mapFromGlobal(self.cursor().pos()))
111 if item:
112 item._underline(True)
113
115 item = self.itemAt(self.mapFromGlobal(self.cursor().pos()))
116 if item:
117 self.setCurrentItem(item)
118