コード例 #1
0
    def setTable(self, data, reset=False):
        name_row, name_column = [], []
        self.blockSignals(True)

        # - Populate
        for n, layer in enumerate(sorted(data.keys())):
            name_row.append(layer)

            for m, key in enumerate(sorted(data[layer].keys())):
                name_column.append(key)
                newitem = QtGui.QTableWidgetItem(str(data[layer][key]))

                if self.item(n, m) == None or reset:
                    markColor = QtGui.QColor("white")
                else:
                    if self.item(n, m).text() == newitem.text():
                        markColor = QtGui.QColor("white")
                    else:
                        markColor = QtGui.QColor("aliceblue")

                self.setItem(n, m, newitem)
                self.item(n, m).setBackground(markColor)

        self.setHorizontalHeaderLabels(name_column)
        self.setVerticalHeaderLabels(name_row)
        self.blockSignals(False)
コード例 #2
0
ファイル: __Anchor-Test.py プロジェクト: twardoch/TypeRig
    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')
コード例 #3
0
    def refresh(self):
        # - Init
        self.glyph = eGlyph()
        self.wLayers = self.glyph._prepareLayers(pLayers)

        # - Prepare
        self.wAnchors = {}
        self.wAnchorNames = []
        for layer in self.wLayers:
            currAnchors = self.glyph.anchors(layer)
            self.wAnchors[layer] = currAnchors
            self.wAnchorNames.append([anchor.name for anchor in currAnchors])

        self.edt_glyphName.setText(self.glyph.name)
        self.lst_anchors.clear()

        # - Build List and style it
        self.lst_anchors.addItems(list(set(sum(self.wAnchorNames, []))))

        for index in range(self.lst_anchors.count):
            currItem = self.lst_anchors.item(index)

            checkLayers = [
                currItem.text() in name for name in self.wAnchorNames
            ]
            layer_order = 'Layer Order: ' + ', '.join(self.wLayers)
            toolTip = 'Anchor present in all selected layers.\n\n' + layer_order if all(
                checkLayers
            ) else 'Anchor NOT present in all selected layers.\n\n' + layer_order

            currItem.setData(
                QtCore.Qt.DecorationRole,
                QtGui.QColor('LimeGreen' if all(checkLayers) else 'Crimson'))
            currItem.setData(QtCore.Qt.ToolTipRole, toolTip)
コード例 #4
0
ファイル: Layer.py プロジェクト: twardoch/TypeRig
    def refresh(self):
        # - Init
        layerBanList = ['#', 'img']
        self.glyph = eGlyph()

        # - Prepare
        self.edt_glyphName.setText(eGlyph().name)
        self.selection = self.glyph.layer().name
        self.lst_layers.clear()

        # - Build List and style it
        self.lst_layers.addItems(
            sorted([
                layer.name for layer in self.glyph.layers()
                if all([item not in layer.name for item in layerBanList])
            ]))

        for index in range(self.lst_layers.count):
            currItem = self.lst_layers.item(index)
            currLayer = self.glyph.layer(currItem.text())

            control = (currLayer.isService, currLayer.isMasterLayer,
                       currLayer.isMaskLayer, currLayer.isWireframe)
            controlColor = [int(item) * 255 for item in control[:-1]
                            ] + [150 - int(control[-1]) * 100]
            text = 'Service Master Mask Wireframe'.split(' ')
            controlText = ' | '.join(
                [text[pos] for pos in range(len(text)) if control[pos]])

            currItem.setData(QtCore.Qt.DecorationRole,
                             QtGui.QColor(*controlColor))
            currItem.setData(QtCore.Qt.ToolTipRole, controlText)
コード例 #5
0
    def __init__(self):
        super(GroupTableView, self).__init__()

        # - Init
        self.flag_valueChanged = QtGui.QColor('powderblue')
        self.kern_pos_mods = ['KernLeft', 'KernRight', 'KernBothSide']

        # - Behavior
        self.itemChanged.connect(self.markChange)

        # - Styling
        self.verticalHeader().hide()
        self.horizontalHeader().setStretchLastSection(True)
        self.setAlternatingRowColors(True)
        self.setShowGrid(False)
        #self.resizeRowsToContents()
        self.setSortingEnabled(True)
コード例 #6
0
ファイル: Guide.py プロジェクト: twardoch/TypeRig
    def __init__(self):
        super(QDropGuide, self).__init__()

        # -- Editi fileds
        self.edt_guideName = QtGui.QLineEdit()
        self.edt_guideName.setPlaceholderText('New Guideline')

        self.edt_guideTag = GLineEdit()
        self.edt_guideTag.setPlaceholderText('Tag')

        # -- Combo box
        self.cmb_select_V = QtGui.QComboBox()
        self.cmb_select_H = QtGui.QComboBox()
        self.cmb_select_color = QtGui.QComboBox()

        self.cmb_select_V.addItems(['BBox width', 'Adv. width'])
        self.cmb_select_H.addItems([
            'BBox height', 'X-Height', 'Caps Height', 'Ascender', 'Descender',
            'Adv. height'
        ])

        colorNames = QtGui.QColor.colorNames()
        for i in range(len(colorNames)):
            self.cmb_select_color.addItem(colorNames[i])
            self.cmb_select_color.setItemData(i, QtGui.QColor(colorNames[i]),
                                              QtCore.Qt.DecorationRole)

        self.cmb_select_color.setCurrentIndex(colorNames.index('red'))

        self.cmb_select_color.setMinimumWidth(40)
        self.edt_guideName.setMinimumWidth(40)
        self.edt_guideTag.setMinimumWidth(40)

        # -- SpinBox
        self.spb_prc_V = QtGui.QSpinBox()
        self.spb_prc_V.setMaximum(100)
        self.spb_prc_V.setSuffix('%')
        self.spb_prc_V.setMinimumWidth(45)

        self.spb_prc_H = QtGui.QSpinBox()
        self.spb_prc_H.setMaximum(100)
        self.spb_prc_H.setSuffix('%')
        self.spb_prc_H.setMinimumWidth(45)

        self.spb_unit_V = QtGui.QSpinBox()
        self.spb_unit_V.setMaximum(100)
        self.spb_unit_V.setMinimum(-100)
        self.spb_unit_V.setSuffix(' U')
        self.spb_unit_V.setMinimumWidth(45)

        self.spb_unit_H = QtGui.QSpinBox()
        self.spb_unit_H.setMaximum(100)
        self.spb_unit_H.setMinimum(-100)
        self.spb_unit_H.setSuffix(' U')
        self.spb_unit_H.setMinimumWidth(45)

        # -- Button
        self.btn_dropGuide = QtGui.QPushButton('&Drop')
        self.btn_dropFlipX = QtGui.QPushButton('Drop: Flip &X')
        self.btn_dropFlipY = QtGui.QPushButton('Drop: Flip &Y')
        self.btn_dropLayer_V = QtGui.QPushButton('Vertical')
        self.btn_dropLayer_H = QtGui.QPushButton('Horizontal')

        self.btn_dropGuide.setToolTip(
            'Drop guideline between any two selected nodes.\nIf single node is selected a vertical guide is\ndropped (using the italic angle if present).'
        )
        self.btn_dropFlipX.setToolTip(
            'Drop flipped guideline between any two selected nodes.')
        self.btn_dropFlipY.setToolTip(
            'Drop flipped guideline between any two selected nodes.')

        self.btn_dropGuide.clicked.connect(lambda: self.drop_guide_nodes(
            (1, 1)))
        self.btn_dropFlipX.clicked.connect(lambda: self.drop_guide_nodes(
            (-1, 1)))
        self.btn_dropFlipY.clicked.connect(lambda: self.drop_guide_nodes(
            (1, -1)))
        self.btn_dropLayer_V.clicked.connect(self.drop_guide_V)
        self.btn_dropLayer_H.clicked.connect(self.drop_guide_H)

        # - Build
        self.addWidget(QtGui.QLabel('Name:'), 1, 0, 1, 4)
        self.addWidget(QtGui.QLabel('Tag:'), 1, 4, 1, 4)
        self.addWidget(QtGui.QLabel('Color:'), 1, 8, 1, 4)
        self.addWidget(self.edt_guideName, 2, 0, 1, 4)
        self.addWidget(self.cmb_select_color, 2, 8, 1, 4)
        self.addWidget(self.edt_guideTag, 2, 4, 1, 4)
        self.addWidget(QtGui.QLabel('Selected Nodes:'), 3, 0, 1, 9)
        self.addWidget(self.btn_dropGuide, 4, 0, 1, 4)
        self.addWidget(self.btn_dropFlipX, 4, 4, 1, 4)
        self.addWidget(self.btn_dropFlipY, 4, 8, 1, 4)
        self.addWidget(QtGui.QLabel('Glyph Layer:'), 5, 0, 1, 9)
        self.addWidget(self.cmb_select_V, 6, 0, 1, 4)
        self.addWidget(self.spb_prc_V, 6, 4, 1, 2)
        self.addWidget(self.spb_unit_V, 6, 6, 1, 2)
        self.addWidget(self.btn_dropLayer_V, 6, 8, 1, 4)
        self.addWidget(self.cmb_select_H, 7, 0, 1, 4)
        self.addWidget(self.spb_prc_H, 7, 4, 1, 2)
        self.addWidget(self.spb_unit_H, 7, 6, 1, 2)
        self.addWidget(self.btn_dropLayer_H, 7, 8, 1, 4)
コード例 #7
0
ファイル: __Instances.py プロジェクト: twardoch/TypeRig
 def markChange(self, item):
     item.setBackground(QtGui.QColor('powderblue'))
コード例 #8
0
	def markChange(self, item):
		item.setText(0, ('B: %s', 'T: %s')[float(item.text(2)) > 0] %item.text(1))
		for col in range(item.columnCount()):			
			item.setBackground(col, QtGui.QColor('powderblue'))
コード例 #9
0
 def markChange(self, item):
     print item.setBackground(QtGui.QColor("aliceblue"))
コード例 #10
0
ファイル: __Anchor-Test.py プロジェクト: twardoch/TypeRig
    def __init__(self, data):
        super(trTreeView, self).__init__()

        # - Init
        self.flag_valueChanged = QtGui.QColor('powderblue')