Exemplo n.º 1
0
    def setTree(self, data):
        # Format Tuple(Tuple(Column Header, Column Header), Tuple((GlyphName, GlyphAnchors)))
        self._meta, self._data = data

        self.headerItem().setText(0, self._meta[0])
        self.headerItem().setText(1, self._meta[1])
        self.setAlternatingRowColors(True)
        self.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)

        for glyph_meta, glyph_anchors in self._data:
            glyph_name, glyph_wLayers = glyph_meta
            parent = QtGui.QTreeWidgetItem(self)
            parent.setText(0, glyph_name)
            #parent.setFlags(parent.flags() | QtCore.Qt.ItemIsTristate | QtCore.Qt.ItemIsUserCheckable)
            parent.setToolTip(0, 'Glyph')

            # - Process data
            glyph_anchors_gr = defaultdict(list)
            for layer, anchor in glyph_anchors:
                glyph_anchors_gr[anchor].append(layer)

            print glyph_anchors_gr
            # - Set tree
            for anchor_name, layer_list in glyph_anchors_gr.iteritems():
                child = QtGui.QTreeWidgetItem(parent)
                child.setData(
                    0, QtCore.Qt.DecorationRole,
                    QtGui.QColor('LimeGreen') if len(layer_list)
                    == len(glyph_wLayers) else QtGui.QColor('Crimson'))
                child.setText(0, '; '.join(layer_list))
                child.setText(1, anchor_name)

                child.setToolTip(0, 'Compatibility')
                child.setToolTip(1, 'Anchor Name')
Exemplo n.º 2
0
	def setTree(self, data, reset=False):
		self.blockSignals(True)
		self.clear()
		header_row = ['Layer/Zone', 'Position', 'Width', 'Private Name']
		self.setHeaderLabels(header_row)

		for key, value in data.iteritems():
			master = QtGui.QTreeWidgetItem(self, [key])

			for zoneTuple in value:
				zoneData = QtGui.QTreeWidgetItem(master, [('B: %s', 'T: %s')[zoneTuple[1] > 0] %zoneTuple[0], zoneTuple[0], zoneTuple[1], zoneTuple[2]])
				zoneData.setFlags(zoneData.flags() | QtCore.Qt.ItemIsEditable)

		self.blockSignals(False)