示例#1
0
    def __init__(self, parentWidget):
        super(WFontInstances, self).__init__()

        # - Init
        self.upperWidget = parentWidget

        self.gridPlane = QtGui.QGridLayout()
        self.axisPlane = QtGui.QVBoxLayout()

        # - Interface
        self.btn_axis_add = QtGui.QPushButton('New Axis Table')
        self.btn_apply = QtGui.QPushButton('Apply Changes')
        self.btn_reset = QtGui.QPushButton('Reset')
        self.btn_open = QtGui.QPushButton('Open')
        self.btn_save = QtGui.QPushButton('Save')

        self.btn_apply.setEnabled(False)
        self.btn_reset.setEnabled(False)
        self.btn_open.setEnabled(False)
        self.btn_save.setEnabled(False)

        self.btn_axis_add.clicked.connect(self.add_AxisTable)

        # - Build
        # -- Main Grid
        self.gridPlane.addWidget(self.btn_axis_add, 0, 0, 1, 3)
        self.gridPlane.addWidget(self.btn_save, 0, 3, 1, 3)
        self.gridPlane.addWidget(self.btn_open, 0, 6, 1, 3)
        self.gridPlane.addWidget(self.btn_reset, 0, 9, 1, 3)
        self.gridPlane.addWidget(self.btn_apply, 0, 12, 1, 3)
        self.gridPlane.addLayout(self.axisPlane, 1, 0, 5, 15)

        self.setLayout(self.gridPlane)
示例#2
0
文件: Node.py 项目: twardoch/TypeRig
	def __init__(self):
		super(breakContour, self).__init__()
			 
		# -- Split button
		self.btn_splitContour = QtGui.QPushButton('&Break')
		self.btn_splitContourClose = QtGui.QPushButton('&Break && Close')
		
		self.btn_splitContour.clicked.connect(self.splitContour)
		self.btn_splitContourClose.clicked.connect(self.splitContourClose)
		
		self.btn_splitContour.setMinimumWidth(80)
		self.btn_splitContourClose.setMinimumWidth(80)

		self.btn_splitContour.setToolTip('Break contour at selected Node(s).')
		self.btn_splitContourClose.setToolTip('Break contour and close open contours!\nUseful for cutting stems and etc.')

		# -- Extrapolate value
		self.edt_expand = QtGui.QLineEdit('0.0')
		#self.edt_expand.setMinimumWidth(30)

		self.edt_expand.setToolTip('Extrapolate endings.')
								
		# -- Build: Split/Break contour
		self.addWidget(self.btn_splitContour, 0, 0)
		self.addWidget(QtGui.QLabel('E:'), 0, 1)
		self.addWidget(self.edt_expand, 0, 2)
		self.addWidget(self.btn_splitContourClose, 0, 3)
示例#3
0
    def __init__(self, parentWidget):
        super(WFontAnchors, self).__init__()

        # - Init
        self.upperWidget = parentWidget
        self.activeFont = pFont()
        self.activeGlyph = pGlyph()
        self.metricData = {
            layer.name: self.activeFont.fontMetrics().asDict(layer.name)
            for layer in self.activeGlyph.masters()
        }

        # - Interface
        self.btn_apply = QtGui.QPushButton('Apply Changes')
        self.btn_reset = QtGui.QPushButton('Reset')
        #self.btn_open = QtGui.QPushButton('Open')
        #self.btn_save = QtGui.QPushButton('Save')

        self.btn_apply.clicked.connect(self.applyChanges)
        self.btn_reset.clicked.connect(self.resetChanges)
        #self.btn_save.clicked.connect(self.exportMetrics)
        #self.btn_open.clicked.connect(self.importMetrics)

        self.tab_fontMetrics = WTableView(self.metricData)

        # - Build
        self.addWidget(self.tab_fontMetrics, 0, 1, 5, 6)
        self.addWidget(self.btn_save, 6, 3, 1, 1)
        self.addWidget(self.btn_open, 6, 4, 1, 1)
示例#4
0
    def __init__(self):
        super(curveEq, self).__init__()

        # - Basic operations
        self.btn_tunni = QtGui.QPushButton('&Tunni (Auto)')
        self.btn_hobby = QtGui.QPushButton('Set &Curvature')
        self.btn_hobby_get = QtGui.QPushButton('Get')
        self.btn_hobby_swap = QtGui.QPushButton('Swap')
        self.btn_prop = QtGui.QPushButton('Set &Handles')

        self.btn_tunni.setToolTip('Apply Tunni curve optimization')
        self.btn_hobby.setToolTip('Set Hobby spline curvature')
        self.btn_hobby_swap.setToolTip('Swap C0, C1 curvatures')
        self.btn_hobby_get.setToolTip(
            'Get curvature for current selected\nsegment at active layer.')
        self.btn_prop.setToolTip(
            'Set handle length in proportion to bezier node distance')

        self.spn_hobby0 = QtGui.QDoubleSpinBox()
        self.spn_hobby1 = QtGui.QDoubleSpinBox()
        self.spn_hobby0.setValue(0.95)
        self.spn_hobby1.setValue(0.95)
        self.spn_hobby0.setSingleStep(0.05)
        self.spn_hobby1.setSingleStep(0.05)

        self.spn_prop = QtGui.QDoubleSpinBox()
        self.spn_prop.setValue(0.30)
        self.spn_prop.setSingleStep(0.1)

        self.btn_tunni.clicked.connect(lambda: self.eqContour('tunni'))
        self.btn_hobby_swap.clicked.connect(self.hobby_swap)
        self.btn_hobby_get.clicked.connect(self.hobby_get)
        self.btn_hobby.clicked.connect(lambda: self.eqContour('hobby'))
        self.btn_prop.clicked.connect(lambda: self.eqContour('prop'))

        # -- Build: Curve optimization
        self.addWidget(self.btn_tunni, 0, 0, 1, 5)
        self.addWidget(QtGui.QLabel('Proportional handles'), 1, 0, 1, 5)
        self.addWidget(self.btn_prop, 2, 0, 1, 3)
        self.addWidget(QtGui.QLabel('P:'), 2, 3, 1, 1)
        self.addWidget(self.spn_prop, 2, 4, 1, 1)
        self.addWidget(QtGui.QLabel('Hobby curvature'), 3, 0, 1, 5)
        self.addWidget(self.btn_hobby_swap, 4, 0, 1, 1)
        self.addWidget(QtGui.QLabel('C0'), 4, 1, 1, 1)
        self.addWidget(self.spn_hobby0, 4, 2, 1, 1)
        self.addWidget(QtGui.QLabel('C1'), 4, 3, 1, 1)
        self.addWidget(self.spn_hobby1, 4, 4, 1, 1)
        self.addWidget(self.btn_hobby_get, 5, 0, 1, 1)
        self.addWidget(self.btn_hobby, 5, 1, 1, 4)

        self.setColumnStretch(0, 1)
        self.setColumnStretch(4, 0)
        self.setColumnStretch(5, 0)
        self.setColumnStretch(6, 0)
        self.setColumnStretch(7, 0)
示例#5
0
文件: Layer.py 项目: twardoch/TypeRig
    def __init__(self, aux):
        super(QlayerBlend, self).__init__()

        # - Init
        self.aux = aux
        self.currentTime = .0
        self.timeStep = .01

        # - Interface
        # -- Blend active layer to single selected layer
        self.lay_blend = QtGui.QHBoxLayout()
        self.btn_minus = QtGui.QPushButton(' - ')
        self.btn_plus = QtGui.QPushButton(' + ')
        self.btn_minus.setMinimumWidth(75)
        self.btn_plus.setMinimumWidth(75)
        self.btn_minus.clicked.connect(self.blendMinus)
        self.btn_plus.clicked.connect(self.blendPlus)

        self.edt_timeStep = QtGui.QLineEdit()
        self.edt_timeStep.setText(self.timeStep)

        self.btn_minus.setToolTip(
            'Blend Active Layer to selected Layer.\nOriginal Active layer is lost!'
        )
        self.btn_plus.setToolTip(
            'Blend Active Layer to selected Layer.\nOriginal Active layer is lost!'
        )
        self.edt_timeStep.setToolTip('Blend time (0.0 - 1.0) Step.')

        self.lay_blend.addWidget(self.btn_minus)
        self.lay_blend.addWidget(QtGui.QLabel('T:'))
        self.lay_blend.addWidget(self.edt_timeStep)
        self.lay_blend.addWidget(self.btn_plus)

        self.addLayout(self.lay_blend)

        # -- Build Axis from current selected layers and send result to active layer

        self.lay_opt = QtGui.QHBoxLayout()
        self.chk_multi = QtGui.QCheckBox('Use Selected Layers as Axis')
        self.chk_multi.stateChanged.connect(self.setCurrentTime)
        self.chk_width = QtGui.QCheckBox('Fixed Width')

        self.chk_multi.setToolTip(
            'Blend selected layers to Active layer.\nUSAGE:\n- Create blank new layer;\n- Select two layers to build Interpolation Axis;\n- Use [+][-] to blend along axis.\nNote:\n- Selection order is important!\n- Checking/unchecking resets the blend position!'
        )
        self.chk_width.setToolTip('Keep current Advance Width')

        self.lay_opt.addWidget(self.chk_multi)
        self.lay_opt.addWidget(self.chk_width)

        self.addLayout(self.lay_opt)
示例#6
0
文件: Node.py 项目: twardoch/TypeRig
	def __init__(self, aux):
		super(advMovement, self).__init__()

		# - Init
		self.aux = aux
		self.methodList = ['Move', 'Simple Move', 'Interpolated Move', 'Slanted Grid Move', 'Slope walker']
		
		# - Methods
		self.cmb_methodSelector = QtGui.QComboBox()
		self.cmb_methodSelector.addItems(self.methodList)
		self.cmb_methodSelector.setToolTip('Select movement method')
		self.chk_percent = QtGui.QCheckBox('% of BBox')
		self.chk_percent.setToolTip('Interpret new positional coordinates as if they were scaled by percent given in (X,Y)\nEquivalent to affine scaling of selected nodes in respect to the Layers BoundingBox')
		
		# - Arrow buttons
		self.btn_up = QtGui.QPushButton('Up')
		self.btn_down = QtGui.QPushButton('Down')
		self.btn_left = QtGui.QPushButton('Left')
		self.btn_right = QtGui.QPushButton('Right')
		
		self.btn_up.setMinimumWidth(80)
		self.btn_down.setMinimumWidth(80)
		self.btn_left.setMinimumWidth(80)
		self.btn_right.setMinimumWidth(80)

		self.btn_up.clicked.connect(self.onUp)
		self.btn_down.clicked.connect(self.onDown)
		self.btn_left.clicked.connect(self.onLeft)
		self.btn_right.clicked.connect(self.onRight)
		self.chk_percent.clicked.connect(self.toggleInput)
		
		self.edt_offX = QtGui.QLineEdit('1.0')
		self.edt_offY = QtGui.QLineEdit('1.0')
		self.edt_offX.setToolTip('X offset')
		self.edt_offY.setToolTip('Y offset')

		# - Layout
		self.lay_btn = QtGui.QGridLayout()

		self.lay_btn.addWidget(self.cmb_methodSelector, 0, 0, 1, 5)
		self.lay_btn.addWidget(self.chk_percent, 		0, 5, 1, 1)
		self.lay_btn.addWidget(QtGui.QLabel('X:'), 		1, 0, 1, 1)
		self.lay_btn.addWidget(self.edt_offX, 			1, 1, 1, 1)
		self.lay_btn.addWidget(self.btn_up, 			1, 2, 1, 2)
		self.lay_btn.addWidget(QtGui.QLabel('Y:'), 		1, 4, 1, 1)
		self.lay_btn.addWidget(self.edt_offY, 			1, 5, 1, 1)
		self.lay_btn.addWidget(self.btn_left, 			2, 0, 1, 2)
		self.lay_btn.addWidget(self.btn_down, 			2, 2, 1, 2)
		self.lay_btn.addWidget(self.btn_right, 			2, 4, 1, 2)

		self.addLayout(self.lay_btn)
示例#7
0
    def __init__(self):
        super(metrics_adjust, self).__init__()
        # - Spin Boxes
        self.spb_lsb_percent = QtGui.QSpinBox()
        self.spb_adv_percent = QtGui.QSpinBox()
        self.spb_rsb_percent = QtGui.QSpinBox()
        self.spb_lsb_units = QtGui.QSpinBox()
        self.spb_adv_units = QtGui.QSpinBox()
        self.spb_rsb_units = QtGui.QSpinBox()

        self.spb_lsb_percent.setMaximum(200)
        self.spb_adv_percent.setMaximum(200)
        self.spb_rsb_percent.setMaximum(200)
        self.spb_lsb_units.setMaximum(200)
        self.spb_adv_units.setMaximum(200)
        self.spb_rsb_units.setMaximum(200)
        self.spb_lsb_units.setMinimum(-200)
        self.spb_adv_units.setMinimum(-200)
        self.spb_rsb_units.setMinimum(-200)

        self.spb_lsb_percent.setSuffix('%')
        self.spb_adv_percent.setSuffix('%')
        self.spb_rsb_percent.setSuffix('%')
        self.spb_lsb_units.setSuffix(' u')
        self.spb_adv_units.setSuffix(' u')
        self.spb_rsb_units.setSuffix(' u')

        self.resetSpinBox()

        # - Buttons
        self.btn_adjMetrics = QtGui.QPushButton('&Adjust Metrics')
        self.btn_resetSpinBox = QtGui.QPushButton('&Reset')
        self.btn_adjMetrics.clicked.connect(self.adjMetrics)
        self.btn_resetSpinBox.clicked.connect(self.resetSpinBox)

        self.addWidget(QtGui.QLabel('LSB adjust:'), 0, 0, 1, 1)
        self.addWidget(QtGui.QLabel('RSB adjust:'), 0, 1, 1, 1)
        self.addWidget(QtGui.QLabel('ADV adjust:'), 0, 2, 1, 1)
        self.addWidget(self.spb_lsb_percent, 1, 0, 1, 1)
        self.addWidget(self.spb_rsb_percent, 1, 1, 1, 1)
        self.addWidget(self.spb_adv_percent, 1, 2, 1, 1)

        self.addWidget(self.spb_lsb_units, 2, 0, 1, 1)
        self.addWidget(self.spb_rsb_units, 2, 1, 1, 1)
        self.addWidget(self.spb_adv_units, 2, 2, 1, 1)

        self.addWidget(self.btn_resetSpinBox, 3, 0, 1, 1)
        self.addWidget(self.btn_adjMetrics, 3, 1, 1, 2)
示例#8
0
文件: Layer.py 项目: twardoch/TypeRig
    def __init__(self):
        super(QlayerSelect, self).__init__()

        # - Init

        # -- Head
        self.lay_head = QtGui.QHBoxLayout()
        self.edt_glyphName = QtGui.QLineEdit()
        self.btn_refresh = QtGui.QPushButton('&Refresh')
        self.btn_refresh.clicked.connect(self.refresh)

        self.lay_head.addWidget(QtGui.QLabel('G:'))
        self.lay_head.addWidget(self.edt_glyphName)
        self.lay_head.addWidget(self.btn_refresh)
        self.addLayout(self.lay_head)

        # -- Layer List
        self.lst_layers = QtGui.QListWidget()
        self.lst_layers.setAlternatingRowColors(True)
        self.lst_layers.setMinimumHeight(100)
        #self.lst_layers.setMaximumHeight(100)
        self.lst_layers.setSelectionMode(
            QtGui.QAbstractItemView.ExtendedSelection
        )  # Select multiple items call .selectedItems() to get a QList
        self.addWidget(self.lst_layers)
        self.refresh()
示例#9
0
    def __init__(self):
        super(tool_tab, self).__init__()

        # - Init
        layoutV = QtGui.QVBoxLayout()
        self.KeyboardOverride = False

        # - Build
        layoutV.addWidget(QtGui.QLabel('Basic Operations:'))
        layoutV.addLayout(basicOps())
        layoutV.addLayout(glyphComposer(self))

        layoutV.addWidget(QtGui.QLabel('Align Shapes:'))
        self.alignShapes = alignShapes()
        layoutV.addLayout(self.alignShapes)

        layoutV.addStretch()
        layoutV.addWidget(QtGui.QLabel('Transformation:'))
        self.shapeMovement = shapeMovement()
        layoutV.addLayout(self.shapeMovement)

        # - Capture Kyaboard
        self.btn_capture = QtGui.QPushButton('Capture Keyboard')

        self.btn_capture.setCheckable(True)
        self.btn_capture.setToolTip(
            'Click here to capture keyboard arrows input.\nNote:\n+10 SHIFT\n+100 CTRL\n Exit ESC'
        )
        self.btn_capture.clicked.connect(self.captureKeyaboard)

        layoutV.addWidget(self.btn_capture)

        # - Build ---------------------------
        self.setLayout(layoutV)
示例#10
0
文件: Node.py 项目: twardoch/TypeRig
	def __init__(self):
		super(alignContours, self).__init__()
		from collections import OrderedDict
		
		# - Init
		self.align_x = OrderedDict([('Left','L'), ('Right','R'), ('Center','C'), ('Keep','K')])
		self.align_y = OrderedDict([('Top','T'), ('Bottom','B'), ('Center','E'), ('Keep','X')])
		self.align_mode = OrderedDict([('Layer','CL'), ('Contour to Contour','CC'), ('Contour to Contour (REV)','RC')])
		
		# !!! To be implemented
		#self.align_mode = OrderedDict([('Layer','CL'), ('Contour to Contour','CC'), ('Contour to Contour (REV)','RC'), ('Contour to Node','CN'),('Node to Node','NN')])

		# - Widgets
		self.cmb_align_x = QtGui.QComboBox()
		self.cmb_align_y = QtGui.QComboBox()
		self.cmb_align_mode = QtGui.QComboBox()
		self.cmb_align_x.addItems(self.align_x.keys())
		self.cmb_align_y.addItems(self.align_y.keys())
		self.cmb_align_mode.addItems(self.align_mode.keys())

		self.cmb_align_x.setToolTip('Horizontal Alignment')
		self.cmb_align_y.setToolTip('Vertical Alignment')
		self.cmb_align_mode.setToolTip('Alignment Mode')

		self.btn_align = QtGui.QPushButton('Align')
		self.btn_align.clicked.connect(self.alignContours)

		self.addWidget(self.cmb_align_mode, 	0, 0, 1, 2)
		self.addWidget(self.cmb_align_x, 		0, 2, 1, 1)
		self.addWidget(self.cmb_align_y, 		0, 3, 1, 1)
		self.addWidget(self.btn_align, 			1, 0, 1, 4)
示例#11
0
    def __init__(self):
        super(QContourSelect, self).__init__()

        # -- Init
        self.table_dict = {0: {0: None}}  # Empty table
        self.layer_names = []  # Empty layer list
        #self.table_columns = 'N,Shape,Contour,X,Y,Type,Relative'.split(',')
        self.table_columns = 'N,Sh,Cn,X,Y,Type,Rel'.split(',')

        # -- Widgets
        self.lay_head = QtGui.QGridLayout()

        self.edt_glyphName = QtGui.QLineEdit()
        self.cmb_layer = QtGui.QComboBox()

        self.btn_refresh = QtGui.QPushButton('&Refresh')
        self.btn_apply = QtGui.QPushButton('&Apply')
        self.btn_apply.setEnabled(False)

        # -- Build Layout
        self.lay_head.addWidget(QtGui.QLabel('G:'), 0, 0, 1, 1)
        self.lay_head.addWidget(self.edt_glyphName, 0, 1, 1, 5)
        self.lay_head.addWidget(self.btn_refresh, 0, 6, 1, 2)
        self.lay_head.addWidget(QtGui.QLabel('L:'), 1, 0, 1, 1)
        self.lay_head.addWidget(self.cmb_layer, 1, 1, 1, 5)
        self.lay_head.addWidget(self.btn_apply, 1, 6, 1, 2)
        self.addLayout(self.lay_head)

        # -- Node List Table
        self.tab_nodes = trTableView(self.table_dict)

        self.addWidget(self.tab_nodes)
        self.refresh()  # Build Table

        self.btn_refresh.clicked.connect(lambda: self.refresh())
        self.cmb_layer.currentIndexChanged.connect(lambda: self.changeLayer())

        # -- Table Styling
        self.tab_nodes.horizontalHeader().setStretchLastSection(False)
        self.tab_nodes.setSortingEnabled(True)
        self.tab_nodes.horizontalHeader().sortIndicatorChanged.connect(
            lambda: self.tab_nodes.resizeColumnsToContents())
        self.tab_nodes.verticalHeader().hide()
        self.tab_nodes.resizeColumnsToContents()
        self.tab_nodes.selectionModel().selectionChanged.connect(
            self.selectionChanged)
        self.tab_nodes.itemChanged.connect(self.valueChanged)
示例#12
0
    def __init__(self):
        super(shapeMovement, self).__init__()

        # - Init
        self.methodList = ['Shift', 'Scale', 'Shear']

        # - Methods
        self.cmb_methodSelector = QtGui.QComboBox()
        self.cmb_methodSelector.addItems(self.methodList)
        self.cmb_methodSelector.setToolTip('Select transformation method')

        # - Arrow buttons
        self.btn_up = QtGui.QPushButton('Up')
        self.btn_down = QtGui.QPushButton('Down')
        self.btn_left = QtGui.QPushButton('Left')
        self.btn_right = QtGui.QPushButton('Right')

        self.btn_up.setMinimumWidth(80)
        self.btn_down.setMinimumWidth(80)
        self.btn_left.setMinimumWidth(80)
        self.btn_right.setMinimumWidth(80)

        self.btn_up.clicked.connect(self.onUp)
        self.btn_down.clicked.connect(self.onDown)
        self.btn_left.clicked.connect(self.onLeft)
        self.btn_right.clicked.connect(self.onRight)

        self.edt_offX = QtGui.QLineEdit('1.0')
        self.edt_offY = QtGui.QLineEdit('1.0')
        self.edt_offX.setToolTip('X offset')
        self.edt_offY.setToolTip('Y offset')

        # - Layout
        self.lay_btn = QtGui.QGridLayout()

        self.lay_btn.addWidget(self.cmb_methodSelector, 0, 0, 1, 6)
        self.lay_btn.addWidget(QtGui.QLabel('X:'), 1, 0, 1, 1)
        self.lay_btn.addWidget(self.edt_offX, 1, 1, 1, 1)
        self.lay_btn.addWidget(self.btn_up, 1, 2, 1, 2)
        self.lay_btn.addWidget(QtGui.QLabel('Y:'), 1, 4, 1, 1)
        self.lay_btn.addWidget(self.edt_offY, 1, 5, 1, 1)
        self.lay_btn.addWidget(self.btn_left, 2, 0, 1, 2)
        self.lay_btn.addWidget(self.btn_down, 2, 2, 1, 2)
        self.lay_btn.addWidget(self.btn_right, 2, 4, 1, 2)

        self.addLayout(self.lay_btn)
示例#13
0
    def __init__(self):
        super(metrics_expr, self).__init__()

        self.edt_lsb = MLineEdit()
        self.edt_adv = MLineEdit()
        self.edt_rsb = MLineEdit()

        self.edt_lsb.setPlaceholderText('Metric expression')
        self.edt_adv.setPlaceholderText('Metric expression')
        self.edt_rsb.setPlaceholderText('Metric expression')

        self.btn_setMetrics = QtGui.QPushButton('&Set expressions')
        self.btn_getShapeParent = QtGui.QPushButton('&Get reference')
        self.btn_delMetrics = QtGui.QPushButton('&Unlink')
        self.btn_autoBind = QtGui.QPushButton('&Auto bind Metric expressions')
        self.btn_autoBind.setToolTip(
            'Automatically bind metric expressions from available element references.'
        )

        self.btn_setMetrics.clicked.connect(
            lambda: self.setMetricEquations(False))
        self.btn_delMetrics.clicked.connect(
            lambda: self.setMetricEquations(True))
        self.btn_getShapeParent.clicked.connect(self.bindShapeParent)
        self.btn_autoBind.clicked.connect(self.autoMetricEquations)

        self.spb_shapeIndex = QtGui.QSpinBox()

        self.addWidget(QtGui.QLabel('LSB:'), 0, 0, 1, 1)
        self.addWidget(self.edt_lsb, 0, 1, 1, 5)
        self.addWidget(QtGui.QLabel('RSB:'), 1, 0, 1, 1)
        self.addWidget(self.edt_rsb, 1, 1, 1, 5)
        self.addWidget(QtGui.QLabel('ADV:'), 2, 0, 1, 1)
        self.addWidget(self.edt_adv, 2, 1, 1, 5)
        self.addWidget(self.btn_setMetrics, 3, 1, 1, 3)
        self.addWidget(self.btn_delMetrics, 3, 4, 1, 2)
        self.addWidget(QtGui.QLabel('E:'), 4, 0, 1, 1)
        self.addWidget(self.btn_getShapeParent, 4, 1, 1, 3)
        self.addWidget(self.spb_shapeIndex, 4, 4, 1, 2)
        self.addWidget(QtGui.QLabel('Composite Glyph: Metric expressions'), 5,
                       0, 1, 5)
        self.addWidget(self.btn_autoBind, 6, 0, 1, 6)

        self.setColumnStretch(0, 0)
        self.setColumnStretch(1, 5)
示例#14
0
文件: Mixer.py 项目: twardoch/TypeRig
    def __init__(self):
        super(mixerHead, self).__init__()

        self.edt_glyphName = QtGui.QLineEdit()
        self.edt_stemV0 = QtGui.QLineEdit('1')
        self.edt_stemV1 = QtGui.QLineEdit('1')
        self.edt_stemH0 = QtGui.QLineEdit('1')
        self.edt_stemH1 = QtGui.QLineEdit('1')

        self.btn_refresh = QtGui.QPushButton('&Refresh')
        self.btn_set_axis = QtGui.QPushButton('Set &Axis')
        self.btn_getVstem = QtGui.QPushButton('Get &V Stems')
        self.btn_getHstem = QtGui.QPushButton('Get &H Stems')

        self.spb_compV = QtGui.QDoubleSpinBox()
        self.spb_compH = QtGui.QDoubleSpinBox()
        self.spb_compV.setValue(0.)
        self.spb_compH.setValue(0.)
        self.spb_compV.setSingleStep(.01)
        self.spb_compH.setSingleStep(.01)

        self.cmb_0 = QtGui.QComboBox()
        self.cmb_1 = QtGui.QComboBox()

        self.chk_italic = QtGui.QPushButton('Italic')
        self.chk_single = QtGui.QPushButton('Anisotropic')
        self.chk_preview = QtGui.QPushButton('Live Preview')

        self.chk_single.setToolTip(
            'Active: Use X and Y sliders to control interpolation.')
        self.chk_single.setCheckable(True)
        self.chk_italic.setCheckable(True)
        self.chk_preview.setCheckable(True)

        self.chk_single.setChecked(False)
        self.chk_italic.setChecked(False)
        self.chk_preview.setChecked(False)

        self.addWidget(QtGui.QLabel('Glyph:'), 0, 0, 1, 1)
        self.addWidget(self.edt_glyphName, 0, 1, 1, 6)
        self.addWidget(self.btn_refresh, 0, 7, 1, 1)
        self.addWidget(QtGui.QLabel('Axis:'), 1, 0, 1, 1)
        self.addWidget(self.cmb_0, 1, 1, 1, 3)
        self.addWidget(self.cmb_1, 1, 4, 1, 3)
        self.addWidget(self.btn_set_axis, 1, 7, 1, 1)
        self.addWidget(QtGui.QLabel('V Stems:'), 2, 0, 1, 1)
        self.addWidget(self.edt_stemV0, 2, 1, 1, 3)
        self.addWidget(self.edt_stemV1, 2, 4, 1, 3)
        self.addWidget(self.btn_getVstem, 2, 7, 1, 1)
        self.addWidget(QtGui.QLabel('H Stems:'), 3, 0, 1, 1)
        self.addWidget(self.edt_stemH0, 3, 1, 1, 3)
        self.addWidget(self.edt_stemH1, 3, 4, 1, 3)
        self.addWidget(self.btn_getHstem, 3, 7, 1, 1)
        self.addWidget(QtGui.QLabel('Adj.V/H:'), 4, 0, 1, 1)
        self.addWidget(self.spb_compV, 4, 1, 1, 3)
        self.addWidget(self.spb_compH, 4, 4, 1, 3)
        self.addWidget(self.chk_italic, 4, 7, 1, 1)
        self.addWidget(QtGui.QLabel('Control:'), 5, 0, 1, 1)
        self.addWidget(self.chk_single, 5, 1, 1, 4)
        self.addWidget(self.chk_preview, 5, 5, 1, 3)
示例#15
0
	def __build(self):
		# - Init
		self.sliders = []
		self.process_glyphs = []

		# - Buttons
		self.btn_capture = QtGui.QPushButton('Capture Smart Angles')
		self.btn_capture.clicked.connect(lambda: self.capture())

		# - Set layout
		self.addWidget(QtGui.QLabel('\nRound: Smart corner control'))
		self.addWidget(self.btn_capture)
示例#16
0
    def __init__(self):
        super(basicOps, self).__init__()

        # - Widgets
        self.edt_shapeName = MLineEdit()
        self.edt_shapeName.setPlaceholderText('Element name')

        self.btn_setShapeName = QtGui.QPushButton('&Set Name')
        self.btn_unlinkShape = QtGui.QPushButton('&Unlink References')
        self.btn_delShape = QtGui.QPushButton('&Remove')
        self.btn_resetShape = QtGui.QPushButton('&Reset transform')
        self.btn_lockShape = QtGui.QPushButton('&Lock')

        self.btn_setShapeName.clicked.connect(self.shape_setname)
        self.btn_unlinkShape.clicked.connect(self.shape_unlink)
        self.btn_delShape.clicked.connect(self.shape_delete)
        self.btn_resetShape.clicked.connect(self.shape_resetTransform)

        self.addWidget(self.edt_shapeName, 0, 0, 1, 6)
        self.addWidget(self.btn_setShapeName, 1, 0, 1, 3)
        self.addWidget(self.btn_unlinkShape, 1, 3, 1, 3)
        self.addWidget(self.btn_resetShape, 2, 0, 1, 3)
        self.addWidget(self.btn_delShape, 2, 3, 1, 3)
示例#17
0
文件: Node.py 项目: twardoch/TypeRig
	def __init__(self):
		super(basicOps, self).__init__()
		
		# - Basic operations
		self.btn_insert = QtGui.QPushButton('&Insert')
		self.btn_remove = QtGui.QPushButton('&Remove')
		self.btn_mitre = QtGui.QPushButton('&Mitre')
		self.btn_knot = QtGui.QPushButton('&Overlap')
		self.btn_trapA = QtGui.QPushButton('&Trap')
		self.btn_rebuild = QtGui.QPushButton('Rebuil&d')
						
		self.btn_insert.setMinimumWidth(80)
		self.btn_remove.setMinimumWidth(80)
		self.btn_mitre.setMinimumWidth(80)
		self.btn_knot.setMinimumWidth(80)
		self.btn_trapA.setMinimumWidth(80)
		self.btn_rebuild.setMinimumWidth(80)

		self.btn_insert.setToolTip('Insert Node after Selection\nat given time T.')
		self.btn_remove.setToolTip('Remove Selected Nodes!\nFor proper curve node deletion\nalso select the associated handles!')
		self.btn_mitre.setToolTip('Mitre corner using size X.')
		self.btn_knot.setToolTip('Overlap corner using radius -X.')
		self.btn_trapA.setToolTip('Insert Angular (generic) Ink Trap at node selected')
		self.btn_rebuild.setToolTip('Rebuild corner from nodes selected.')
		
		self.btn_insert.clicked.connect(self.insertNode)
		self.btn_remove.clicked.connect(self.removeNode)
		self.btn_mitre.clicked.connect(lambda: self.cornerMitre(False))
		self.btn_knot.clicked.connect(lambda: self.cornerMitre(True))
		self.btn_trapA.clicked.connect(lambda: self.cornerTrap())
		self.btn_rebuild.clicked.connect(lambda: self.cornerRebuild())

		# - Edit fields
		self.edt_time = QtGui.QLineEdit('0.5')
		self.edt_radius = QtGui.QLineEdit('5')
		self.edt_trap = QtGui.QLineEdit('5, 30, 2')
		
		self.edt_time.setToolTip('Insertion Time.')
		self.edt_radius.setToolTip('Mitre size/Overlap or Round Radius.')
		self.edt_trap.setToolTip('Ink trap: Incision into glyphs flesh, Side depth, Trap size')

		# -- Build: Basic Ops
		self.addWidget(self.btn_insert, 	0, 0)
		self.addWidget(QtGui.QLabel('T:'), 	0, 1)
		self.addWidget(self.edt_time, 		0, 2)
		self.addWidget(self.btn_remove, 	0, 3)

		self.addWidget(self.btn_mitre,		1, 0)
		self.addWidget(QtGui.QLabel('X:'), 	1, 1)
		self.addWidget(self.edt_radius,		1, 2)
		self.addWidget(self.btn_knot,		1, 3)

		self.addWidget(self.btn_trapA,		2, 0)
		self.addWidget(QtGui.QLabel('P:'),	2, 1)
		self.addWidget(self.edt_trap,		2, 2)
		self.addWidget(self.btn_rebuild,		2, 3)
示例#18
0
	def __init__(self, parentWidget):
		super(WFontMetrics, self).__init__()

		# - Init
		self.grid = QtGui.QGridLayout()
		self.upperWidget = parentWidget
		self.activeFont = pFont()
		self.metricData = {layer:self.activeFont.fontMetrics().asDict(layer) for layer in self.activeFont.masters()}

		# - Interface
		self.btn_apply = QtGui.QPushButton('Apply Changes')
		self.btn_reset = QtGui.QPushButton('Reset')
		self.btn_open = QtGui.QPushButton('Open')
		self.btn_save = QtGui.QPushButton('Save')

		self.btn_apply.clicked.connect(self.applyChanges)
		self.btn_reset.clicked.connect(self.resetChanges)
		self.btn_save.clicked.connect(self.exportMetrics)
		self.btn_open.clicked.connect(self.importMetrics)

		self.tab_fontMetrics = trTableView(self.metricData)

		# - Build
		lbl_name = QtGui.QLabel('Font Metrics (All Masters)')
		lbl_name.setMaximumHeight(20)
		self.grid.addWidget(lbl_name,		 		0, 0, 1, 24)
		self.grid.addWidget(self.tab_fontMetrics,	1, 0, 5, 21)
		self.grid.addWidget(self.btn_save,			1, 21, 1, 3)
		self.grid.addWidget(self.btn_open,			2, 21, 1, 3)
		self.grid.addWidget(self.btn_reset,			4, 21, 1, 3)
		self.grid.addWidget(self.btn_apply,			5, 21, 1, 3)

		for i in range(1,6):
			self.grid.setRowStretch(i,2)

		self.setLayout(self.grid)
示例#19
0
    def __init__(self):
        super(QlayerSelect, self).__init__()

        # - Init
        # -- Head
        self.columns = ('Glyph', 'Anchors')
        self.lay_head = QtGui.QHBoxLayout()
        self.btn_refresh = QtGui.QPushButton('&Refresh')
        self.btn_refresh.clicked.connect(self.refresh)

        # -- Layer List
        self.tree_anchors = trTreeView((self.columns, [('A', 'Dummy')]))
        self.addWidget(self.btn_refresh)
        self.addWidget(self.tree_anchors)

        self.refresh()
示例#20
0
    def __init__(self):
        super(QTextBlockSelect, self).__init__()

        # -- Head
        self.lay_head = QtGui.QHBoxLayout()
        self.btn_refresh = QtGui.QPushButton('&Refresh')
        self.btn_refresh.clicked.connect(self.refresh)

        self.lay_head.addWidget(self.btn_refresh)
        self.addLayout(self.lay_head)

        # -- TextBlock List
        self.lst_textBlocks = QtGui.QListWidget()
        self.lst_textBlocks.setAlternatingRowColors(True)
        self.lst_textBlocks.setMinimumHeight(100)
        self.lst_textBlocks.setSelectionMode(
            QtGui.QAbstractItemView.ExtendedSelection)
        self.addWidget(self.lst_textBlocks)
示例#21
0
文件: Guide.py 项目: twardoch/TypeRig
    def __init__(self):
        super(QGlyphTag, self).__init__()

        # - Widget & Layout
        self.edt_tagString = GLineEdit()
        self.edt_tagString.setPlaceholderText('Glyph tags')
        self.edt_tagString.setToolTip('A comma separated list of tags.')

        self.edt_tagStringNode = QtGui.QLineEdit()
        self.edt_tagStringNode.setPlaceholderText('Node name')
        self.edt_tagStringNode.setToolTip('A single node name.')

        self.btn_tagGlyph = QtGui.QPushButton('Glyph')
        self.btn_tagWindow = QtGui.QPushButton('Window')
        self.btn_tagSelection = QtGui.QPushButton('Selection')

        self.btn_tagNodes = QtGui.QPushButton('Glyph')
        self.btn_tagWindowNodes = QtGui.QPushButton('Window')
        self.btn_tagNodesClear = QtGui.QPushButton('Clear')

        self.btn_tagGlyph.clicked.connect(lambda: self.tag_glyphs('G'))
        self.btn_tagWindow.clicked.connect(lambda: self.tag_glyphs('W'))
        self.btn_tagSelection.clicked.connect(lambda: self.tag_glyphs('S'))
        self.btn_tagNodes.clicked.connect(lambda: self.tag_nodes('G'))
        self.btn_tagWindowNodes.clicked.connect(lambda: self.tag_nodes('W'))
        self.btn_tagNodesClear.clicked.connect(
            lambda: self.edt_tagStringNode.clear())

        self.btn_tagGlyph.setToolTip('Add tags to current glyph.')
        self.btn_tagWindow.setToolTip(
            'Add tags to all glyphs in current Glyph window.')
        self.btn_tagSelection.setToolTip(
            'Add tags to current selection in Font window.')
        self.btn_tagNodes.setToolTip(
            'Add name selected nodes at current glyph.')
        self.btn_tagWindowNodes.setToolTip(
            'Add name to selected nodes at all glyphs in current Glyph window.'
        )
        self.btn_tagNodesClear.setToolTip('Clear/Reset input filed.')

        # - Build
        self.addWidget(QtGui.QLabel('Glyph tagging:'), 1, 0, 1, 9)
        self.addWidget(self.edt_tagString, 2, 0, 1, 9)
        self.addWidget(self.btn_tagGlyph, 3, 0, 1, 3)
        self.addWidget(self.btn_tagWindow, 3, 3, 1, 3)
        self.addWidget(self.btn_tagSelection, 3, 6, 1, 3)
        self.addWidget(QtGui.QLabel('Node naming:'), 4, 0, 1, 9)
        self.addWidget(self.edt_tagStringNode, 5, 0, 1, 9)
        self.addWidget(self.btn_tagNodes, 6, 0, 1, 3)
        self.addWidget(self.btn_tagWindowNodes, 6, 3, 1, 3)
        self.addWidget(self.btn_tagNodesClear, 6, 6, 1, 3)
示例#22
0
文件: Node.py 项目: twardoch/TypeRig
	def __init__(self):
		super(convertHobby, self).__init__()

		# -- Convert button
		self.btn_convertNode = QtGui.QPushButton('C&onvert')
		self.btn_convertNode.setToolTip('Convert/Un-convert selected curve node to Hobby Knot')
		self.btn_convertNode.clicked.connect(self.convertHobby)

		#self.btn_convertNode.setFixedWidth(80)

		# -- Close contour checkbox
		#self.chk_Safe = QtGui.QCheckBox('Safe')

		# -- Tension value (not implemented yet)
		#self.edt_tension = QtGui.QLineEdit('0.0')
		#self.edt_tension.setDisabled(True)    
				
		# -- Build
		self.addWidget(self.btn_convertNode)
示例#23
0
文件: Node.py 项目: twardoch/TypeRig
	def __init__(self):
		super(tool_tab, self).__init__()

		# - Init
		layoutV = QtGui.QVBoxLayout()
		self.KeyboardOverride = False
		
		# - Build		
		layoutV.addWidget(QtGui.QLabel('Basic Operations'))
		layoutV.addLayout(basicOps())

		layoutV.addWidget(QtGui.QLabel('Align nodes'))
		self.alignNodes = alignNodes()
		layoutV.addLayout(self.alignNodes)

		#layoutV.addWidget(QtGui.QLabel('Break/Knot Contour'))
		#layoutV.addLayout(breakContour())

		layoutV.addWidget(QtGui.QLabel('Basic Contour Operations'))
		layoutV.addLayout(basicContour())

		layoutV.addWidget(QtGui.QLabel('Align Contours'))
		layoutV.addLayout(alignContours())

		#layoutV.addWidget(QtGui.QLabel('Convert to Hobby'))
		#layoutV.addLayout(convertHobby())    

		layoutV.addWidget(QtGui.QLabel('Movement'))
		self.advMovement = advMovement(self.alignNodes)
		layoutV.addLayout(self.advMovement)  

		# - Capture Kyaboard
		self.btn_capture = QtGui.QPushButton('Capture Keyboard')
		self.btn_capture.setCheckable(True)
		self.btn_capture.setToolTip('Click here to capture keyboard arrows input.\nNote:\n+10 SHIFT\n+100 CTRL\n Exit ESC')
		self.btn_capture.clicked.connect(self.captureKeyaboard)

		layoutV.addWidget(self.btn_capture)

		# - Build ---------------------------
		layoutV.addStretch()
		self.setLayout(layoutV)
示例#24
0
    def __init__(self, parent):
        super(glyphComposer, self).__init__()

        # - Init
        self.parentWgt = parent

        # - Widgets
        self.cmb_fontShapes = QtGui.QComboBox()
        self.btn_populateShapes = QtGui.QPushButton('Populate')
        self.btn_insertShape = QtGui.QPushButton('Insert')
        self.btn_replaceShape = QtGui.QPushButton('Replace')
        self.btn_help = QtGui.QPushButton('Help')
        self.btn_saveExpr = QtGui.QPushButton('Save')
        self.btn_loadExpr = QtGui.QPushButton('Load')
        self.btn_exec = QtGui.QPushButton('Execute')

        self.cmb_fontShapes.setEditable(True)

        self.btn_populateShapes.clicked.connect(self.populate_shapes)
        self.btn_insertShape.clicked.connect(self.shape_insert)
        self.btn_replaceShape.clicked.connect(self.shape_replace)
        self.btn_exec.clicked.connect(self.process_insert)
        self.btn_saveExpr.clicked.connect(self.expr_toFile)
        self.btn_loadExpr.clicked.connect(self.expr_fromFile)
        self.btn_help.clicked.connect(lambda: QtGui.QMessageBox.information(
            self.parentWgt, 'Help', str_help))

        self.txt_editor = TrPlainTextEdit()

        # - Build layouts
        self.addWidget(QtGui.QLabel('Insert elements:'), 0, 0, 1, 4)
        self.addWidget(self.cmb_fontShapes, 1, 0, 1, 6)
        self.addWidget(self.btn_populateShapes, 1, 6, 1, 2)
        self.addWidget(self.btn_insertShape, 2, 0, 1, 4)
        self.addWidget(self.btn_replaceShape, 2, 4, 1, 4)
        self.addWidget(QtGui.QLabel('Advanced Insert elements:'), 5, 0, 1, 4)
        self.addWidget(self.txt_editor, 7, 0, 30, 8)
        self.addWidget(self.btn_saveExpr, 37, 0, 1, 4)
        self.addWidget(self.btn_loadExpr, 37, 4, 1, 4)
        self.addWidget(self.btn_help, 38, 0, 1, 2)
        self.addWidget(self.btn_exec, 38, 2, 1, 6)
示例#25
0
    def __init__(self):
        super(metrics_font, self).__init__()

        self.btn_setAscender = QtGui.QPushButton('Asc.')
        self.btn_setCapsHeight = QtGui.QPushButton('Caps')
        self.btn_setDescender = QtGui.QPushButton('Desc.')
        self.btn_setXHeight = QtGui.QPushButton('X Hgt.')

        self.btn_togSelection = QtGui.QPushButton('Selection')
        self.btn_togBBOX = QtGui.QPushButton('Glyph BBOX')

        self.btn_togSelection.setCheckable(True)
        self.btn_togBBOX.setCheckable(True)
        #self.btn_togBBOX.setEnabled(False)

        self.btn_setAscender.setToolTip('Set Ascender height ')
        self.btn_setCapsHeight.setToolTip('Set Caps Height')
        self.btn_setDescender.setToolTip('Set Descender height')
        self.btn_setXHeight.setToolTip('Set X Height')

        self.btn_togSelection.setToolTip(
            'Set Font metrics using the selected node')
        self.btn_togBBOX.setToolTip(
            'Set Font metrics using the active glyph bounding box')

        self.btn_setAscender.setMinimumWidth(40)
        self.btn_setCapsHeight.setMinimumWidth(40)
        self.btn_setDescender.setMinimumWidth(40)
        self.btn_setXHeight.setMinimumWidth(40)

        self.btn_setAscender.clicked.connect(
            lambda: self.setFontMetrics('ascender'))
        self.btn_setCapsHeight.clicked.connect(
            lambda: self.setFontMetrics('capsHeight'))
        self.btn_setDescender.clicked.connect(
            lambda: self.setFontMetrics('descender'))
        self.btn_setXHeight.clicked.connect(
            lambda: self.setFontMetrics('xHeight'))

        self.addWidget(self.btn_togSelection, 0, 0, 1, 2)
        self.addWidget(self.btn_togBBOX, 0, 2, 1, 2)
        self.addWidget(self.btn_setAscender, 1, 0, 1, 1)
        self.addWidget(self.btn_setCapsHeight, 1, 1, 1, 1)
        self.addWidget(self.btn_setDescender, 1, 2, 1, 1)
        self.addWidget(self.btn_setXHeight, 1, 3, 1, 1)
示例#26
0
文件: Node.py 项目: twardoch/TypeRig
	def __init__(self):
		super(basicContour, self).__init__()
		self.btn_BL = QtGui.QPushButton('B L')
		self.btn_TL = QtGui.QPushButton('T L')
		self.btn_BR = QtGui.QPushButton('B R')
		self.btn_TR = QtGui.QPushButton('T R')
		self.btn_close= QtGui.QPushButton('C&lose')
		self.btn_CW = QtGui.QPushButton('CW')
		self.btn_CCW = QtGui.QPushButton('CCW')

		self.btn_BL.setMinimumWidth(40)
		self.btn_TL.setMinimumWidth(40)
		self.btn_BR.setMinimumWidth(40)
		self.btn_TR.setMinimumWidth(40)
		self.btn_CW.setMinimumWidth(40)
		self.btn_CCW.setMinimumWidth(40)

		self.btn_close.setToolTip('Close selected contour')
		self.btn_BL.setToolTip('Set start point:\nBottom Left Node') 
		self.btn_TL.setToolTip('Set start point:\nTop Left Node') 
		self.btn_BR.setToolTip('Set start point:\nBottom Right Node') 
		self.btn_TR.setToolTip('Set start point:\nTop Right Node') 
		self.btn_CW.setToolTip('Set direction:\nClockwise (TT)') 
		self.btn_CCW.setToolTip('Set direction::\nCounterclockwise (PS)') 
		
		self.btn_BL.clicked.connect(lambda : self.setStart((0,0)))
		self.btn_TL.clicked.connect(lambda : self.setStart((0,1)))
		self.btn_BR.clicked.connect(lambda : self.setStart((1,0)))
		self.btn_TR.clicked.connect(lambda : self.setStart((1,1)))
		self.btn_CW.clicked.connect(lambda : self.setDirection(False))
		self.btn_CCW.clicked.connect(lambda : self.setDirection(True))
		self.btn_close.clicked.connect(self.closeContour)

		self.addWidget(self.btn_BL, 0, 0, 1, 1)
		self.addWidget(self.btn_TL, 0, 1, 1, 1)
		self.addWidget(self.btn_BR, 0, 2, 1, 1)
		self.addWidget(self.btn_TR, 0, 3, 1, 1)
		self.addWidget(self.btn_close, 1, 0, 1, 2)
		self.addWidget(self.btn_CW, 1, 2, 1, 1)
		self.addWidget(self.btn_CCW, 1, 3, 1, 1)
示例#27
0
文件: Layer.py 项目: twardoch/TypeRig
    def __init__(self, aux):
        super(QlayerBasic, self).__init__()

        # - Init
        self.aux = aux

        # -- Basic Tool buttons
        self.lay_buttons = QtGui.QGridLayout()
        self.btn_add = QtGui.QPushButton('Add')
        self.btn_del = QtGui.QPushButton('Remove')
        self.btn_dup = QtGui.QPushButton('Duplicate')
        self.btn_setServ = QtGui.QPushButton('Service')
        self.btn_setMask = QtGui.QPushButton('Mask')
        self.btn_setWire = QtGui.QPushButton('Wireframe')
        #self.btn_dup.setEnabled(False)

        self.btn_add.setToolTip('Add new layer with name')
        self.btn_dup.setToolTip('Duplicate selected with suffix')
        self.btn_del.setToolTip('Delete selected layers')
        self.btn_setServ.setToolTip('Set selected layers as Service')
        self.btn_setWire.setToolTip('Set selected layers as Wireframe')

        self.edt_name = QtGui.QLineEdit('New')
        self.edt_name.setToolTip('Name or suffix')

        self.btn_add.clicked.connect(self.addLayer)
        self.btn_dup.clicked.connect(self.duplicateLayers)
        self.btn_del.clicked.connect(self.deleteLayers)
        self.btn_setMask.clicked.connect(self.addMaskLayers)

        self.btn_setServ.clicked.connect(lambda: self.setLayer('Service'))
        self.btn_setWire.clicked.connect(lambda: self.setLayer('Wireframe'))

        self.lay_buttons.addWidget(QtGui.QLabel('Suffix/Name:'), 0, 0, 1, 1)
        self.lay_buttons.addWidget(self.edt_name, 0, 1, 1, 2)
        self.lay_buttons.addWidget(self.btn_add, 1, 0, 1, 1)
        self.lay_buttons.addWidget(self.btn_del, 1, 1, 1, 1)
        self.lay_buttons.addWidget(self.btn_dup, 1, 2, 1, 1)
        self.lay_buttons.addWidget(self.btn_setServ, 2, 0, 1, 1)
        self.lay_buttons.addWidget(self.btn_setMask, 2, 1, 1, 1)
        self.lay_buttons.addWidget(self.btn_setWire, 2, 2, 1, 1)

        self.addLayout(self.lay_buttons)
示例#28
0
	def __init__(self, parentWidget):
		super(QSmartCorner, self).__init__()
		self.upper_widget = parentWidget

		# -- Init
		self.active_font = pFont()
		self.builder = None
		self.font_masters = self.active_font.masters()
		self.empty_preset = lambda row: OrderedDict([(row, OrderedDict([('Preset', 'Preset %s' %row)] + [(master, '0') for master in self.font_masters]))])
		self.table_dict = self.empty_preset(0)
		self.last_preset = 0

		# -- Widgets
		self.lay_head = QtGui.QGridLayout()

		self.edt_glyphName = QtGui.QLineEdit()
		self.edt_glyphName.setPlaceholderText('Glyph name')

		# -- Buttons
		self.btn_getBuilder = QtGui.QPushButton('Set &Builder')
		self.btn_findBuilder = QtGui.QPushButton('&From Font')
		self.btn_addPreset = QtGui.QPushButton('Add')
		self.btn_delPreset = QtGui.QPushButton('Remove')
		self.btn_resetPreset = QtGui.QPushButton('Reset')
		self.btn_loadPreset = QtGui.QPushButton('&Load Presets')
		self.btn_savePreset = QtGui.QPushButton('&Save Presets')
		self.btn_apply_smartCorner = QtGui.QPushButton('&Apply Smart Corner')
		self.btn_remove_smartCorner = QtGui.QPushButton('R&emove Smart Corner')
		self.btn_remove_presetCorner = QtGui.QPushButton('&Find and Remove')

		self.btn_apply_smartCorner.setToolTip('Apply Smart Corner preset on SELECTED nodes.')
		self.btn_remove_smartCorner.setToolTip('Remove Smart Corner on SELECTED nodes.')
		self.btn_remove_presetCorner.setToolTip('Find and remove all Smart Corners that equal the currently selected preset.')


		self.btn_apply_round = QtGui.QPushButton('&Round')
		self.btn_apply_mitre = QtGui.QPushButton('&Mitre')
		self.btn_apply_overlap = QtGui.QPushButton('&Overlap')
		self.btn_apply_trap = QtGui.QPushButton('&Trap')
		self.btn_rebuild = QtGui.QPushButton('Rebuild corner')

		self.btn_getBuilder.setMinimumWidth(70)
		self.btn_findBuilder.setMinimumWidth(70)
		self.btn_apply_round.setMinimumWidth(70)
		self.btn_apply_mitre.setMinimumWidth(70)
		self.btn_apply_overlap.setMinimumWidth(70)
		self.btn_apply_trap.setMinimumWidth(70)
		self.btn_rebuild.setMinimumWidth(70)

		self.btn_addPreset.setMinimumWidth(70)
		self.btn_delPreset.setMinimumWidth(70)
		self.btn_loadPreset.setMinimumWidth(140)
		self.btn_savePreset.setMinimumWidth(140)
		self.btn_apply_smartCorner.setMinimumWidth(140)
		self.btn_remove_smartCorner.setMinimumWidth(140)
		self.btn_remove_presetCorner.setMinimumWidth(140)

		self.btn_getBuilder.setCheckable(True)
		self.btn_getBuilder.setChecked(False)
		self.btn_findBuilder.setEnabled(False)
		self.btn_apply_round.setEnabled(False)

		self.btn_getBuilder.clicked.connect(lambda: self.getBuilder())
		self.btn_addPreset.clicked.connect(lambda: self.preset_modify(False))
		self.btn_delPreset.clicked.connect(lambda: self.preset_modify(True))
		self.btn_resetPreset.clicked.connect(lambda: self.preset_reset())
		self.btn_loadPreset.clicked.connect(lambda: self.preset_load())
		self.btn_savePreset.clicked.connect(lambda: self.preset_save())

		self.btn_apply_smartCorner.clicked.connect(lambda: self.apply_SmartCorner(False))
		self.btn_remove_smartCorner.clicked.connect(lambda: self.apply_SmartCorner(True))
		self.btn_remove_presetCorner.clicked.connect(lambda: self.remove_SmartCorner())
		
		#self.btn_apply_round.clicked.connect(lambda: self.apply_round())
		self.btn_apply_mitre.clicked.connect(lambda: self.apply_mitre(False))
		self.btn_apply_overlap.clicked.connect(lambda: self.apply_mitre(True))
		self.btn_apply_trap.clicked.connect(lambda: self.apply_trap())
		self.btn_rebuild.clicked.connect(lambda: self.rebuild())

		# -- Preset Table
		self.tab_presets = trTableView(None)
		self.preset_reset()			

		# -- Build Layout
		self.lay_head.addWidget(QtGui.QLabel('Value Presets:'), 0,0,1,8)
		self.lay_head.addWidget(self.btn_loadPreset,			1,0,1,4)
		self.lay_head.addWidget(self.btn_savePreset,			1,4,1,4)
		self.lay_head.addWidget(self.btn_addPreset,				2,0,1,2)
		self.lay_head.addWidget(self.btn_delPreset,				2,2,1,2)
		self.lay_head.addWidget(self.btn_resetPreset,			2,4,1,4)
		self.lay_head.addWidget(self.tab_presets,				3,0,5,8)

		self.lay_head.addWidget(QtGui.QLabel('Corner Actions:'),10, 0, 1, 8)
		self.lay_head.addWidget(self.btn_apply_round,			11, 0, 1, 2)
		self.lay_head.addWidget(self.btn_apply_mitre,			11, 2, 1, 2)
		self.lay_head.addWidget(self.btn_apply_overlap,			11, 4, 1, 2)
		self.lay_head.addWidget(self.btn_apply_trap,			11, 6, 1, 2)
		self.lay_head.addWidget(self.btn_rebuild,				12, 0, 1, 8)

		self.lay_head.addWidget(QtGui.QLabel('Smart Corner:'),	13,0,1,8)
		self.lay_head.addWidget(QtGui.QLabel('Builder: '),		14,0,1,1)
		self.lay_head.addWidget(self.edt_glyphName,				14,1,1,3)
		self.lay_head.addWidget(self.btn_getBuilder,			14,4,1,2)
		self.lay_head.addWidget(self.btn_findBuilder,			14,6,1,2)
		self.lay_head.addWidget(self.btn_remove_smartCorner,	15,0,1,4)
		self.lay_head.addWidget(self.btn_remove_presetCorner,	15,4,1,4)
		self.lay_head.addWidget(self.btn_apply_smartCorner,		16,0,1,8)

		self.addLayout(self.lay_head)
示例#29
0
    def __init__(self):
        super(typerig_filter, self).__init__()

        #self.setStyleSheet(ss_Toolbox_none)

        # - Layers --------------------------
        self.chk_ActiveLayer = QtGui.QCheckBox('Active')
        self.chk_Masters = QtGui.QCheckBox('Masters')
        self.chk_Masks = QtGui.QCheckBox('Masks')
        self.chk_Service = QtGui.QCheckBox('Services')

        self.chk_ActiveLayer.setCheckState(QtCore.Qt.Checked)
        #self.chk_ActiveLayer.setStyleSheet('QCheckBox::indicator:checked {background-color: limegreen; border: 1px Solid limegreen;}')

        self.chk_ActiveLayer.stateChanged.connect(self.refreshLayers)
        self.chk_Masters.stateChanged.connect(self.refreshLayers)
        self.chk_Masks.stateChanged.connect(self.refreshLayers)
        self.chk_Service.stateChanged.connect(self.refreshLayers)

        self.refreshLayers()

        # - Glyphs --------------------------
        self.rad_glyph = QtGui.QRadioButton('Glyph')
        self.rad_window = QtGui.QRadioButton('Window')
        self.rad_selection = QtGui.QRadioButton('Selection')
        self.rad_font = QtGui.QRadioButton('Font')

        self.rad_glyph.toggled.connect(self.refreshMode)
        self.rad_window.toggled.connect(self.refreshMode)
        self.rad_selection.toggled.connect(self.refreshMode)
        self.rad_font.toggled.connect(self.refreshMode)

        self.rad_glyph.setChecked(True)

        self.rad_glyph.setEnabled(True)
        self.rad_window.setEnabled(True)
        self.rad_selection.setEnabled(True)
        self.rad_font.setEnabled(False)

        self.rad_glyph.setToolTip('Affect current glyph')
        self.rad_window.setToolTip('Affect glyphs in active window')
        self.rad_selection.setToolTip('Affect selected glyphs')
        self.rad_font.setToolTip('Affect the entire font')

        # - Fold Button ---------------------
        self.btn_fold = QtGui.QPushButton('^')
        self.btn_unfold = QtGui.QPushButton('Restore Panel')

        self.btn_fold.setFixedHeight(self.chk_ActiveLayer.sizeHint.height() *
                                     2.5)
        self.btn_fold.setFixedWidth(self.chk_ActiveLayer.sizeHint.height())
        self.btn_unfold.setFixedHeight(self.chk_ActiveLayer.sizeHint.height() +
                                       5)

        self.btn_fold.setToolTip('Fold Panel')
        self.btn_unfold.setToolTip('Unfold Panel')

        self.btn_fold.clicked.connect(self.fold)
        self.btn_unfold.clicked.connect(self.fold)
        self.flag_fold = False

        # - Tabs --------------------------
        # -- Dynamically load all tabs
        self.tabs = QtGui.QTabWidget()
        self.tabs.setTabPosition(QtGui.QTabWidget.East)

        # --- Load all tabs from this directory as modules. Check __init__.py
        # --- <dirName>.modules tabs/modules manifest in list format
        for toolName in Panel.modules:
            if ignorePanel not in toolName:
                self.tabs.addTab(eval('Panel.%s.tool_tab()' % toolName),
                                 toolName)

        # - Layouts -------------------------------
        layoutV = QtGui.QVBoxLayout()
        layoutV.setContentsMargins(0, 0, 0, 0)

        self.lay_controller = QtGui.QGridLayout()
        self.fr_controller = QtGui.QFrame()
        self.lay_controller.setContentsMargins(15, 5, 5, 3)

        # -- Build layouts -------------------------------
        self.lay_controller.addWidget(self.chk_ActiveLayer, 0, 0, 1, 1)
        self.lay_controller.addWidget(self.chk_Masters, 0, 1, 1, 1)
        self.lay_controller.addWidget(self.chk_Masks, 0, 2, 1, 1)
        self.lay_controller.addWidget(self.chk_Service, 0, 3, 1, 1)
        self.lay_controller.addWidget(self.btn_fold, 0, 4, 2, 1)
        self.lay_controller.addWidget(self.rad_glyph, 1, 0, 1, 1)
        self.lay_controller.addWidget(self.rad_window, 1, 1, 1, 1)
        self.lay_controller.addWidget(self.rad_selection, 1, 2, 1, 1)
        self.lay_controller.addWidget(self.rad_font, 1, 3, 1, 1)

        layoutV.addWidget(self.btn_unfold)
        self.fr_controller.setLayout(self.lay_controller)

        layoutV.addWidget(self.fr_controller)
        layoutV.addWidget(self.tabs)

        self.btn_unfold.hide()

        # - Set Widget -------------------------------
        self.setLayout(layoutV)
        self.setWindowTitle('%s %s' % (app_name, app_version))
        self.setGeometry(300, 300, 240, 440)
        self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)  # Always on top!!
        #self.setMinimumWidth(300)

        self.show()
示例#30
0
文件: Mixer.py 项目: twardoch/TypeRig
    def __init__(self):
        super(tool_tab, self).__init__()

        # - Init
        layoutV = QtGui.QVBoxLayout()
        layoutH = QtGui.QHBoxLayout()

        # - Build panel
        if sysReady:
            self.head = mixerHead()
            self.tail = mixerTail()
            self.head.btn_refresh.clicked.connect(self.refresh)
            self.head.btn_set_axis.clicked.connect(self.set_axis)
            self.head.btn_getVstem.clicked.connect(self.get_v_stems)
            self.head.btn_getHstem.clicked.connect(self.get_h_stems)
            layoutV.addLayout(self.head)
            layoutV.addSpacing(15)

            # -- Set Sliders
            # --- Mixer
            layoutV.addWidget(QtGui.QLabel('Interpolate: X (Vertical Stems)'))
            self.mixer_dx = trSliderCtrl('1', '1000', '0', 10)
            self.mixer_dx.sld_axis.valueChanged.connect(
                lambda: self.process_scale(self.head.chk_single.isChecked(),
                                           self.head.chk_preview.isChecked()))
            layoutV.addLayout(self.mixer_dx)

            layoutV.addWidget(
                QtGui.QLabel('Interpolate: Y (Horizontal Stems)'))
            self.mixer_dy = trSliderCtrl('1', '1000', '0', 10)
            self.mixer_dy.sld_axis.valueChanged.connect(
                lambda: self.process_scale(self.head.chk_single.isChecked(),
                                           self.head.chk_preview.isChecked()))
            layoutV.addLayout(self.mixer_dy)

            # - Constant width Button
            #self.btn_revWidth = QtGui.QPushButton('Constant width for weight')
            #self.btn_revWidth.setCheckable(True)
            #layoutV.addWidget(self.btn_revWidth)
            layoutV.addSpacing(15)

            # --- Scaler
            layoutV.addWidget(QtGui.QLabel('Compensative scaler: Width'))
            self.scaler_dx = trSliderCtrl('1', '200', '100', 10)
            self.scaler_dx.sld_axis.valueChanged.connect(
                lambda: self.process_scale(self.head.chk_single.isChecked(),
                                           self.head.chk_preview.isChecked()))
            layoutV.addLayout(self.scaler_dx)
            layoutV.addSpacing(15)

            layoutV.addWidget(QtGui.QLabel('Compensative scaler: Height'))
            self.scaler_dy = trSliderCtrl('1', '200', '100', 10)
            self.scaler_dy.sld_axis.valueChanged.connect(
                lambda: self.process_scale(self.head.chk_single.isChecked(),
                                           self.head.chk_preview.isChecked()))
            layoutV.addLayout(self.scaler_dy)
            layoutV.addSpacing(25)

            layoutV.addLayout(self.tail)
            # - Process Button
            self.btn_process = QtGui.QPushButton('Process Transformation')
            self.btn_process.clicked.connect(lambda: self.process_scale(
                self.head.chk_single.isChecked(), True, True))
            layoutV.addWidget(self.btn_process)

            # -- Initialize
            self.refresh()

            # -- Finish
            layoutV.addStretch()

        else:
            # - Throw an error
            layoutV.addLayout(trMsgSimple(warnMessage))

        # - Set panel
        self.setLayout(layoutV)