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 import settings
39 from camelot.view import art
40
41 QT_MAJOR_VERSION = float('.'.join(str(QtCore.QT_VERSION_STR).split('.')[0:2]))
42
43
45 """Custom tree item widget"""
46
47 - def __init__(self, parent, columns_names):
52
54 font = self.font(self.column)
55 font.setUnderline(enable)
56 self.setFont(self.column, font)
57
59 if qicon is not None:
60 self.setIcon(self.column, qicon)
61 else:
62 self.setIcon(self.column, QtGui.QIcon(art.icon16('actions/window-new')))
63
64
66 """Custom tree widget"""
67
68 - def __init__(self, header_labels=[''], parent=None):
69 logger.debug('creating new modeltree')
70 super(ModelTree, self).__init__(parent)
71
72 self.setSelectionBehavior(QtGui.QAbstractItemView.SelectItems)
73
74 self.setMouseTracking(True)
75 self.parent = parent
76 self.header_labels = header_labels
77 self.clear_model_items()
78 self.fix_header_labels()
79
81 if QT_MAJOR_VERSION > 4.3:
82 self.setHeaderHidden(True)
83 else:
84 self.setHeaderLabels(self.header_labels)
85
88
90 """Custom context menu"""
91 if event.button() == Qt.RightButton:
92 self.emit(QtCore.SIGNAL('customContextMenuRequested(const QPoint &)'),
93 event.pos())
94 event.accept()
95 else:
96 QtGui.QTreeWidget.mousePressEvent(self, event)
97
99 if not self.modelitems:
100 return
101
102 for item in self.modelitems:
103 item._underline(False)
104
106 if not self.modelitems:
107 return
108
109 for item in self.modelitems:
110 item._underline(False)
111
112 item = self.itemAt(self.mapFromGlobal(self.cursor().pos()))
113 if item:
114 item._underline(True)
115
117 item = self.itemAt(self.mapFromGlobal(self.cursor().pos()))
118 if item:
119 self.setCurrentItem(item)
120