Пример #1
0
	def __init__(self, edt_0, edt_1, edt_pos, spb_step):
		super(TRSliderCtrl, self).__init__()
		
		# - Init
		self.initValues = (edt_0, edt_1, edt_pos, spb_step)

		self.edt_0 = QtGui.QLineEdit(edt_0)
		self.edt_1 = QtGui.QLineEdit(edt_1)
		self.edt_pos = QtGui.QLineEdit(edt_pos)

		self.spb_step = QtGui.QSpinBox()
		self.spb_step.setValue(spb_step)

		self.sld_axis = QtGui.QSlider(QtCore.Qt.Horizontal)
		self.sld_axis.valueChanged.connect(self.sliderChange)
		self.refreshSlider()
		
		self.edt_0.editingFinished.connect(self.refreshSlider)
		self.edt_1.editingFinished.connect(self.refreshSlider)
		self.spb_step.valueChanged.connect(self.refreshSlider)
		self.edt_pos.editingFinished.connect(self.refreshSlider)

		# - Layout		
		self.addWidget(self.sld_axis, 			0, 0, 1, 5)
		self.addWidget(self.edt_pos, 			0, 5, 1, 1)		
		self.addWidget(QtGui.QLabel('Min:'),	1, 0, 1, 1)
		self.addWidget(self.edt_0, 				1, 1, 1, 1)
		self.addWidget(QtGui.QLabel('Max:'), 	1, 2, 1, 1)
		self.addWidget(self.edt_1, 				1, 3, 1, 1)
		self.addWidget(QtGui.QLabel('Step:'),	1, 4, 1, 1)
		self.addWidget(self.spb_step, 			1, 5, 1, 1)
Пример #2
0
    def __init__(self):
        super(bbox_copy, self).__init__()

        # - Edit Fields
        self.edt_width = QtGui.QLineEdit()
        self.edt_height = QtGui.QLineEdit()

        self.edt_width.setPlaceholderText('Glyph Name')
        self.edt_height.setPlaceholderText('Glyph Name')

        # - Spin Box
        self.spb_bbox_percent = QtGui.QSpinBox()
        self.spb_bbox_units = QtGui.QSpinBox()

        self.spb_bbox_percent.setMaximum(200)
        self.spb_bbox_units.setMaximum(200)
        self.spb_bbox_units.setMinimum(-200)

        self.spb_bbox_percent.setSuffix('%')
        self.spb_bbox_units.setSuffix(' u')

        self.spb_bbox_percent.setMaximumWidth(50)
        self.spb_bbox_units.setMaximumWidth(50)

        self.reset_fileds()

        # - Buttons
        self.btn_copyBBox_width = QtGui.QPushButton('&Copy Width')
        self.btn_copyBBox_height = QtGui.QPushButton('&Copy Height')
        self.btn_copyBBox_width.clicked.connect(lambda: self.copy_bbox(False))
        self.btn_copyBBox_height.clicked.connect(lambda: self.copy_bbox(True))

        # - Build
        self.addWidget(QtGui.QLabel('SRC:'), 0, 0, 1, 1)
        self.addWidget(self.edt_width, 0, 1, 1, 3)
        self.addWidget(QtGui.QLabel('@'), 0, 4, 1, 1)
        self.addWidget(self.spb_bbox_percent, 0, 5, 1, 1)
        self.addWidget(QtGui.QLabel('+'), 0, 6, 1, 1)
        self.addWidget(self.spb_bbox_units, 0, 7, 1, 1)

        self.addWidget(self.btn_copyBBox_width, 2, 0, 1, 5)
        self.addWidget(self.btn_copyBBox_height, 2, 5, 1, 4)
Пример #3
0
    def __init__(self):
        super(metrics_expr, self).__init__()

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

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

        self.btn_setMetrics = QtGui.QPushButton('&Set')
        self.btn_getMetrics = QtGui.QPushButton('&Get')
        self.btn_getShapeParent = QtGui.QPushButton('&Reference')
        self.btn_delMetrics = QtGui.QPushButton('&Unlink')
        self.btn_autoBind = QtGui.QPushButton('&Auto Link')

        self.btn_getMetrics.setToolTip(
            'Get Metric expressions for current layer')
        self.btn_setMetrics.setToolTip(
            'Set Metric expressions.\n\n - Click: Set\n - SHIFT + Click: Set LSB with distance between selected two nodes removed from the expression.\n - Alt + Click: Set RSB with distance between selected two nodes removed from the expression.\n - All above + CTRL: - Negate operation (distance added)'
        )
        self.btn_autoBind.setToolTip(
            'Automatically bind metric expressions from available element references.'
        )

        self.btn_getMetrics.clicked.connect(lambda: self.getMetricEquations())
        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('ADV:'), 0, 0, 1, 1)
        self.addWidget(self.edt_adv, 0, 1, 1, 5)
        self.addWidget(QtGui.QLabel('LSB:'), 1, 0, 1, 1)
        self.addWidget(self.edt_lsb, 1, 1, 1, 5)
        self.addWidget(QtGui.QLabel('RSB:'), 2, 0, 1, 1)
        self.addWidget(self.edt_rsb, 2, 1, 1, 5)
        self.addWidget(self.btn_getMetrics, 3, 0, 1, 2)
        self.addWidget(self.btn_setMetrics, 3, 2, 1, 4)

        self.addWidget(QtGui.QLabel('Composite Glyph: Metric expressions'), 4,
                       0, 1, 5)
        self.addWidget(self.btn_getShapeParent, 5, 0, 1, 2)
        self.addWidget(self.spb_shapeIndex, 5, 2, 1, 1)
        self.addWidget(self.btn_autoBind, 5, 3, 1, 1)
        self.addWidget(self.btn_delMetrics, 5, 4, 1, 1)

        self.setColumnStretch(0, 0)
        self.setColumnStretch(1, 5)
Пример #4
0
	def __init__(self):
		super(TRTransformCtrl, self).__init__()

		# - Combos 
		self.rad_or = QtGui.QRadioButton('ORG')
		self.rad_bl = QtGui.QRadioButton('BL')
		self.rad_tl = QtGui.QRadioButton('TL')
		self.rad_br = QtGui.QRadioButton('BR')
		self.rad_tr = QtGui.QRadioButton('TR')
		self.rad_ce = QtGui.QRadioButton('CEN')

		# - Spinboxes
		self.spb_scale_x = QtGui.QSpinBox()
		self.spb_scale_y = QtGui.QSpinBox()
		self.spb_translate_x = QtGui.QSpinBox()
		self.spb_translate_y = QtGui.QSpinBox()
		self.spb_shear = QtGui.QSpinBox()
		self.spb_rotate = QtGui.QSpinBox()

		self.spb_scale_x.setMinimum(0)
		self.spb_scale_y.setMinimum(0)
		self.spb_translate_x.setMinimum(-9999)
		self.spb_translate_y.setMinimum(-9999)
		self.spb_shear.setMinimum(-90)
		self.spb_rotate.setMinimum(-360)

		self.spb_scale_x.setMaximum(999)
		self.spb_scale_y.setMaximum(999)
		self.spb_translate_x.setMaximum(9999)
		self.spb_translate_y.setMaximum(9999)
		self.spb_shear.setMaximum(90)
		self.spb_rotate.setMaximum(360)

		self.reset()

		# - Build
		self.lay_controls = QtGui.QGridLayout()
		self.lay_controls.addWidget(QtGui.QLabel('Scale X:'),			0, 0, 1, 1)
		self.lay_controls.addWidget(QtGui.QLabel('Scale Y:'),			0, 1, 1, 1)
		self.lay_controls.addWidget(QtGui.QLabel('Trans. X:'),			0, 2, 1, 1)
		self.lay_controls.addWidget(QtGui.QLabel('Trans. Y:'),			0, 3, 1, 1)
		self.lay_controls.addWidget(QtGui.QLabel('Shear:'),				0, 4, 1, 1)
		self.lay_controls.addWidget(QtGui.QLabel('Rotate:'),			0, 5, 1, 1)
		self.lay_controls.addWidget(self.spb_scale_x,					1, 0, 1, 1)
		self.lay_controls.addWidget(self.spb_scale_y,					1, 1, 1, 1)
		self.lay_controls.addWidget(self.spb_translate_x,				1, 2, 1, 1)
		self.lay_controls.addWidget(self.spb_translate_y,				1, 3, 1, 1)
		self.lay_controls.addWidget(self.spb_shear,						1, 4, 1, 1)
		self.lay_controls.addWidget(self.spb_rotate,					1, 5, 1, 1)
		self.lay_controls.addWidget(self.rad_or,						2, 0, 1, 1)
		self.lay_controls.addWidget(self.rad_bl,						2, 1, 1, 1)
		self.lay_controls.addWidget(self.rad_tl,						2, 2, 1, 1)
		self.lay_controls.addWidget(self.rad_br,						2, 3, 1, 1)
		self.lay_controls.addWidget(self.rad_tr,						2, 4, 1, 1)
		self.lay_controls.addWidget(self.rad_ce,						2, 5, 1, 2)
				
		self.setLayout(self.lay_controls)
Пример #5
0
	def __init__(self):
		super(TRkernClean, self).__init__()
		# - Basic operations
		self.btn_font_refresh = QtGui.QPushButton('Refresh')
		self.btn_exceptions_report = QtGui.QPushButton('Report')
		self.btn_exceptions_remove = QtGui.QPushButton('Clear')
		self.btn_exceptions_flats = QtGui.QPushButton('Report Extendable Flat Pairs')
		self.btn_report_mismatch = QtGui.QPushButton('Report Pair Mis-match')

		self.cmb_all_fonts = QtGui.QComboBox()
		self.cmb_layers = QtGui.QComboBox()

		self.chk_exceptions_fix_groups = QtGui.QCheckBox('Fix Group Names')

		self.spn_exceptions_delta = QtGui.QSpinBox()
		self.spn_exceptions_delta.setValue(5)
		self.spn_exceptions_delta.setMaximum(1000)
		
		self.btn_exceptions_report.setToolTip('Report exceptions of class kerning within value given')
		self.btn_exceptions_remove.setToolTip('Remove exceptions of class kerning within value given')
		self.btn_report_mismatch.setToolTip('Report kerning pairs that are not present in all masters')

		self.btn_font_refresh.clicked.connect(lambda:self.fonts_refresh())
		self.cmb_all_fonts.currentIndexChanged.connect(lambda:self.fonts_changed())
		self.btn_exceptions_report.clicked.connect(lambda: self.kern_exceptions(False, False))
		self.btn_exceptions_remove.clicked.connect(lambda: self.kern_exceptions(True, False))
		self.btn_exceptions_flats.clicked.connect(lambda: self.kern_exceptions(False, True))
		self.btn_report_mismatch.clicked.connect(self.report_mismatch)

		# -- Build
		self.addWidget(QtGui.QLabel('Process Font:'),				0, 0, 1, 6)
		self.addWidget(self.cmb_all_fonts, 							1, 0, 1, 5)
		self.addWidget(self.btn_font_refresh, 						1, 5, 1, 1)
		self.addWidget(QtGui.QLabel('\nKerning: Owerview'), 		2, 0, 1, 6)
		self.addWidget(self.btn_exceptions_flats, 					3, 0, 1, 6)
		self.addWidget(self.btn_report_mismatch, 					4, 0, 1, 6)
		self.addWidget(QtGui.QLabel('\nKerning: Clean exceptions'), 6, 0, 1, 6)
		self.addWidget(QtGui.QLabel('Layer:'), 						7, 0, 1, 1)
		self.addWidget(self.cmb_layers, 							7, 1, 1, 5)
		self.addWidget(QtGui.QLabel('Delta:'),						8, 0, 1, 1)
		self.addWidget(self.spn_exceptions_delta, 					8, 1, 1, 2)
		self.addWidget(self.chk_exceptions_fix_groups, 				8, 3, 1, 3)
		self.addWidget(self.btn_exceptions_report, 					9, 0, 1, 3)
		self.addWidget(self.btn_exceptions_remove, 					9, 3, 1, 3)

		# - Init
		self.fonts_refresh()
Пример #6
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)
Пример #7
0
    def __init__(self):
        super(TRGlyphCopyTools, self).__init__()

        # -- Edit Fields
        self.edt_glyphsuffix = TRGLineEdit()
        self.edt_glyphsuffix.setPlaceholderText('Glyph Suffix')
        self.edt_glyphsuffix.setToolTip(help_numeration)

        self.edt_sourceName = TRGLineEdit()
        self.edt_sourceName.setPlaceholderText('Source name / Current')
        self.edt_sourceName.setToolTip(
            'Source glyph name, or Active Glyph if Blank')

        # -- Buttons
        self.btn_duplicate = QtGui.QPushButton('Duplicate')
        self.chk_slot01 = QtGui.QPushButton('')
        self.chk_slot01.setCheckable(True)
        self.chk_slot02 = QtGui.QPushButton('')
        self.chk_slot02.setCheckable(True)
        self.chk_slot03 = QtGui.QPushButton('')
        self.chk_slot03.setCheckable(True)
        self.chk_slot04 = QtGui.QPushButton('')
        self.chk_slot04.setCheckable(True)

        self.btn_insert = QtGui.QPushButton('Insert')
        self.btn_insert.setToolTip(
            'Copy contents of source glyph and insert them to current active glyph(s)'
        )
        self.btn_insert.clicked.connect(lambda: self.glyph_insert(False))

        self.btn_insert_mask = QtGui.QPushButton('Mask')
        self.btn_insert_mask.setToolTip(
            'Copy contents of source glyph and insert them as MASK to current active glyph(s)'
        )
        self.btn_insert_mask.clicked.connect(lambda: self.glyph_insert(True))

        self.btn_duplicate.setToolTip(help_duplicate)
        self.btn_duplicate.clicked.connect(self.glyph_duplicate)

        # -- Spin boxes
        self.spb_duplicate = QtGui.QSpinBox()
        self.spb_duplicate.setMaximum(20)
        self.spb_duplicate.setMinimum(1)

        # -- Mode checks
        self.chk_outline = QtGui.QCheckBox('Contours')
        self.chk_references = QtGui.QCheckBox('References')
        self.chk_guides = QtGui.QCheckBox('Guides')
        self.chk_anchors = QtGui.QCheckBox('Anchors')
        self.chk_lsb = QtGui.QCheckBox('LSB')
        self.chk_adv = QtGui.QCheckBox('Advance')
        self.chk_rsb = QtGui.QCheckBox('RSB')
        self.chk_links = QtGui.QCheckBox('Links')
        self.chk_tags = QtGui.QCheckBox('Tags')
        self.chk_flag = QtGui.QCheckBox('Flag')

        # -- Set States
        self.chk_outline.setCheckState(QtCore.Qt.Checked)
        #self.chk_references.setCheckState(QtCore.Qt.Checked)
        self.chk_guides.setCheckState(QtCore.Qt.Checked)
        self.chk_anchors.setCheckState(QtCore.Qt.Checked)
        self.chk_lsb.setCheckState(QtCore.Qt.Checked)
        self.chk_adv.setCheckState(QtCore.Qt.Checked)
        self.chk_rsb.setCheckState(QtCore.Qt.Checked)
        self.chk_links.setCheckState(QtCore.Qt.Checked)
        self.chk_tags.setCheckState(QtCore.Qt.Checked)
        self.chk_flag.setCheckState(QtCore.Qt.Checked)

        # -- Custom controls
        self.tr_trans_ctrl = TRTransformCtrl()

        # -- Build
        self.addWidget(
            QtGui.QLabel('\nCopy and Duplicate Glyph(s) (Options): '), 0, 0, 1,
            4)
        #self.addWidget(self.chk_slot01, 				1, 0, 1, 1)
        #self.addWidget(self.chk_slot02, 				1, 1, 1, 1)
        #self.addWidget(self.chk_slot03, 				1, 2, 1, 1)
        #self.addWidget(self.chk_slot04, 				1, 3, 1, 1)
        self.addWidget(self.chk_outline, 2, 0, 1, 2)
        self.addWidget(self.chk_references, 2, 2, 1, 2)
        self.addWidget(self.chk_lsb, 3, 0, 1, 1)
        self.addWidget(self.chk_adv, 3, 1, 1, 1)
        self.addWidget(self.chk_rsb, 3, 2, 1, 1)
        self.addWidget(self.chk_links, 3, 3, 1, 1)
        self.addWidget(self.chk_anchors, 4, 0, 1, 1)
        self.addWidget(self.chk_guides, 4, 1, 1, 1)
        self.addWidget(self.chk_tags, 4, 2, 1, 1)
        self.addWidget(self.chk_flag, 4, 3, 1, 1)
        self.addWidget(self.tr_trans_ctrl, 5, 0, 1, 4)
        self.addWidget(QtGui.QLabel('\nDuplicate Glyph(s) with suffix:'), 6, 0,
                       1, 4)
        self.addWidget(self.edt_glyphsuffix, 7, 0, 1, 2)
        self.addWidget(self.spb_duplicate, 7, 2, 1, 1)
        self.addWidget(self.btn_duplicate, 7, 3, 1, 1)
        self.addWidget(QtGui.QLabel('\nInsert contents from glyph source:'), 8,
                       0, 1, 4)
        self.addWidget(self.edt_sourceName, 9, 0, 1, 2)
        self.addWidget(self.btn_insert, 9, 2, 1, 1)
        self.addWidget(self.btn_insert_mask, 9, 3, 1, 1)

        self.tr_trans_ctrl.lay_controls.setMargin(0)
Пример #8
0
    def __init__(self):
        super(TRDropGuide, self).__init__()

        # -- Editing fields
        self.edt_guideName = QtGui.QLineEdit()
        self.edt_guideName.setPlaceholderText('New Guideline')

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

        self.edt_sourceName = QtGui.QLineEdit()
        self.edt_sourceName.setPlaceholderText('Source name / Current')
        self.edt_sourceName.setToolTip(
            'Source glyph name, or Active Glyph if Blank')

        # -- 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(300)
        self.spb_prc_V.setSuffix('%')
        self.spb_prc_V.setMinimumWidth(45)

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

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

        self.spb_unit_H = QtGui.QSpinBox()
        self.spb_unit_H.setMaximum(300)
        self.spb_unit_H.setMinimum(-300)
        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_getName = QtGui.QPushButton('Get &Name')

        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_getName.setToolTip('Get the name of the current active glyph')

        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_getName.clicked.connect(
            lambda: self.edt_sourceName.setText(pGlyph().name))
        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, 4)
        self.addWidget(self.edt_sourceName, 6, 0, 1, 8)
        self.addWidget(self.btn_getName, 6, 8, 1, 4)
        self.addWidget(self.cmb_select_V, 7, 0, 1, 4)
        self.addWidget(self.spb_prc_V, 7, 4, 1, 2)
        self.addWidget(self.spb_unit_V, 7, 6, 1, 2)
        self.addWidget(self.btn_dropLayer_V, 7, 8, 1, 4)
        self.addWidget(self.cmb_select_H, 8, 0, 1, 4)
        self.addWidget(self.spb_prc_H, 8, 4, 1, 2)
        self.addWidget(self.spb_unit_H, 8, 6, 1, 2)
        self.addWidget(self.btn_dropLayer_H, 8, 8, 1, 4)
Пример #9
0
    def __init__(self):
        super(curveEq, self).__init__()

        # - Basic operations
        self.btn_toLine = QtGui.QPushButton('To &Line')
        self.btn_toCurve = QtGui.QPushButton('To &Curve')

        self.btn_tunni = QtGui.QPushButton('&Tunni')

        self.btn_prop = QtGui.QPushButton('Set &Handles')
        self.btn_prop_30 = QtGui.QPushButton('30%')
        self.btn_prop_50 = QtGui.QPushButton('50%')
        self.btn_prop_00 = QtGui.QPushButton('Retract')

        self.btn_hobby = QtGui.QPushButton('&Set Curvature')
        self.btn_hobby_get = QtGui.QPushButton('Get')
        self.btn_hobby_swap = QtGui.QPushButton('Swap')
        self.btn_hobby_90 = QtGui.QPushButton('.90')
        self.btn_hobby_80 = QtGui.QPushButton('.80')
        self.btn_hobby_85 = QtGui.QPushButton('.85')

        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.QSpinBox()
        self.spn_prop.setValue(30)
        self.spn_prop.setSuffix(' %')
        self.spn_prop.setMaximum(100)

        self.btn_tunni.setToolTip('Apply Tunni curve optimization')
        self.btn_hobby.setToolTip('Set Hobby spline curvature')
        self.btn_hobby_swap.setToolTip('Swap START, END 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.setToolTip('Curvature at the START of Bezier segment.')
        self.spn_hobby1.setToolTip('Curvature at the END of Bezier segment.')
        self.spn_prop.setToolTip(
            'Handle length in proportion to curve length.')

        self.btn_toLine.clicked.connect(lambda: self.convert_segment(False))
        self.btn_toCurve.clicked.connect(lambda: self.convert_segment(True))
        self.btn_tunni.clicked.connect(lambda: self.eqContour('tunni'))
        self.btn_prop.clicked.connect(lambda: self.eqContour('prop'))
        self.btn_prop_00.clicked.connect(
            lambda: self.eqContour('prop_value', value=0))
        self.btn_prop_30.clicked.connect(
            lambda: self.eqContour('prop_value', value=.30))
        self.btn_prop_50.clicked.connect(
            lambda: self.eqContour('prop_value', value=.50))

        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_hobby_90.clicked.connect(
            lambda: self.eqContour('hobby_value', value=.90))
        self.btn_hobby_80.clicked.connect(
            lambda: self.eqContour('hobby_value', value=.80))
        self.btn_hobby_85.clicked.connect(
            lambda: self.eqContour('hobby_value', value=.85))

        # -- Build: Curve optimization
        self.addWidget(self.btn_toLine, 0, 0, 1, 2)
        self.addWidget(self.btn_tunni, 0, 2, 1, 2)
        self.addWidget(self.btn_toCurve, 0, 4, 1, 2)
        self.addWidget(QtGui.QLabel('Curve: Handles proportion (BCP length)'),
                       2, 0, 1, 6)
        self.addWidget(self.spn_prop, 3, 0, 1, 2)
        self.addWidget(self.btn_prop, 3, 2, 1, 4)
        self.addWidget(self.btn_prop_50, 4, 0, 1, 2)
        self.addWidget(self.btn_prop_00, 4, 2, 1, 2)
        self.addWidget(self.btn_prop_30, 4, 4, 1, 2)
        self.addWidget(QtGui.QLabel('Curve: Hobby curvature (Curve tension)'),
                       5, 0, 1, 6)
        self.addWidget(self.btn_hobby_get, 6, 0, 1, 2)
        self.addWidget(self.spn_hobby0, 6, 2, 1, 1)
        self.addWidget(self.spn_hobby1, 6, 3, 1, 1)
        self.addWidget(self.btn_hobby_swap, 6, 4, 1, 2)
        self.addWidget(self.btn_hobby, 7, 0, 1, 6)
        self.addWidget(self.btn_hobby_90, 8, 0, 1, 2)
        self.addWidget(self.btn_hobby_85, 8, 2, 1, 2)
        self.addWidget(self.btn_hobby_80, 8, 4, 1, 2)
Пример #10
0
	def __init__(self):
		super(dlg_BuildAxis, self).__init__()
	
		# - Init
		self.active_font = pFont()
		self.exclude_list = []
		
		# - Widgets
		self.cmb_master_name = QtGui.QComboBox()
		self.cmb_axis_name = QtGui.QComboBox()
		self.cmb_axis_short = QtGui.QComboBox()
		self.cmb_axis_tag = QtGui.QComboBox()
		
		self.spb_italic_angle = QtGui.QSpinBox()
		self.spb_italic_shift = QtGui.QSpinBox()
		
		self.tab_masters = WTableView(table_dict)

		self.btn_exclude_file = QtGui.QPushButton('Select glyph exclude list')	
		self.btn_populate = QtGui.QPushButton('Populate Master Table')
		self.btn_execute = QtGui.QPushButton('Execute')

		self.cmb_master_name.setEditable(True)
		self.cmb_axis_name.setEditable(True)
		self.cmb_axis_short.setEditable(True)
		self.cmb_axis_tag.setEditable(True)

		self.spb_italic_angle.setMinimum(spinbox_range[0])
		self.spb_italic_shift.setMinimum(spinbox_range[0])

		self.spb_italic_angle.setMaximum(spinbox_range[1])
		self.spb_italic_shift.setMaximum(spinbox_range[1])
		
		self.cmb_master_name.addItems(italic_axis_names_T[0])
		self.cmb_axis_name.addItems(italic_axis_names_T[0])
		self.cmb_axis_short.addItems(italic_axis_names_T[1])
		self.cmb_axis_tag.addItems(italic_axis_names_T[2])

		self.spb_italic_angle.setValue(italic_transform_angle)
		self.spb_italic_shift.setValue(italic_transform_shift)

				
		self.cmb_axis_name.currentIndexChanged.connect(self.change_axis_name)	
		self.btn_exclude_file.clicked.connect(self.load_exclude_list)
		self.btn_populate.clicked.connect(self.table_populate)
		self.btn_execute.clicked.connect(self.table_execute)
		
		# - Build layouts 
		layoutV = QtGui.QGridLayout() 
		layoutV.addWidget(QtGui.QLabel('Build Axis:'),		0, 0, 1, 9, QtCore.Qt.AlignBottom)
		layoutV.addWidget(QtGui.QLabel('Name:'),			1, 0, 1, 1)
		layoutV.addWidget(self.cmb_axis_name,				1, 1, 1, 2)
		layoutV.addWidget(QtGui.QLabel('Short:'),			1, 3, 1, 1)
		layoutV.addWidget(self.cmb_axis_short,				1, 4, 1, 2)
		layoutV.addWidget(QtGui.QLabel('Tag:'),				1, 6, 1, 1)
		layoutV.addWidget(self.cmb_axis_tag,				1, 7, 1, 2)
		layoutV.addWidget(QtGui.QLabel('Masters:'),			2, 0, 1, 2, QtCore.Qt.AlignBottom)
		layoutV.addWidget(QtGui.QLabel('Transformation:'),	2, 2, 1, 3, QtCore.Qt.AlignBottom)
		layoutV.addWidget(QtGui.QLabel('Suffix:'),			3, 0, 1, 1)
		layoutV.addWidget(self.cmb_master_name,				3, 1, 1, 2)
		layoutV.addWidget(QtGui.QLabel('Angle:'),			3, 3, 1, 1)
		layoutV.addWidget(self.spb_italic_angle,			3, 4, 1, 2)
		layoutV.addWidget(QtGui.QLabel('Shift:'),			3, 6, 1, 1)
		layoutV.addWidget(self.spb_italic_shift,			3, 7, 1, 2)
		layoutV.addWidget(QtGui.QLabel('Glyph processing:'),5, 0, 1, 9, QtCore.Qt.AlignBottom)
		layoutV.addWidget(self.btn_exclude_file, 			6, 0, 1, 9)
		layoutV.addWidget(QtGui.QLabel('Overview:'),		7, 0, 1, 9, QtCore.Qt.AlignBottom)
		layoutV.addWidget(self.btn_populate, 				8, 0, 1, 9)
		layoutV.addWidget(self.tab_masters, 				9, 0, 25,9)
		layoutV.addWidget(self.btn_execute, 				34, 0, 1,9)

		# - Set Widget
		self.setLayout(layoutV)
		self.setWindowTitle('%s %s' %(app_name, app_version))
		self.setGeometry(300, 300, 400, 600)
		self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # Always on top!!
		self.show()
Пример #11
0
    def __init__(self):
        super(metrics_copy, self).__init__()

        # - Edit Fields
        self.edt_lsb = QtGui.QLineEdit()
        self.edt_adv = QtGui.QLineEdit()
        self.edt_rsb = QtGui.QLineEdit()

        self.edt_lsb.setPlaceholderText('Glyph Name')
        self.edt_adv.setPlaceholderText('Glyph Name')
        self.edt_rsb.setPlaceholderText('Glyph Name')

        # - Spin Box
        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.spb_lsb_percent.setMaximumWidth(50)
        self.spb_adv_percent.setMaximumWidth(50)
        self.spb_rsb_percent.setMaximumWidth(50)
        self.spb_lsb_units.setMaximumWidth(50)
        self.spb_adv_units.setMaximumWidth(50)
        self.spb_rsb_units.setMaximumWidth(50)

        self.reset_fileds()

        # - Buttons
        self.btn_copyMetrics = QtGui.QPushButton('&Copy Metrics')
        self.btn_copyMetrics.clicked.connect(self.copyMetrics)

        # - Build
        self.addWidget(QtGui.QLabel('ADV:'), 0, 0, 1, 1)
        self.addWidget(self.edt_adv, 0, 1, 1, 3)
        self.addWidget(QtGui.QLabel('@'), 0, 4, 1, 1)
        self.addWidget(self.spb_adv_percent, 0, 5, 1, 1)
        self.addWidget(QtGui.QLabel('+'), 0, 6, 1, 1)
        self.addWidget(self.spb_adv_units, 0, 7, 1, 1)

        self.addWidget(QtGui.QLabel('LSB:'), 1, 0, 1, 1)
        self.addWidget(self.edt_lsb, 1, 1, 1, 3)
        self.addWidget(QtGui.QLabel('@'), 1, 4, 1, 1)
        self.addWidget(self.spb_lsb_percent, 1, 5, 1, 1)
        self.addWidget(QtGui.QLabel('+'), 1, 6, 1, 1)
        self.addWidget(self.spb_lsb_units, 1, 7, 1, 1)

        self.addWidget(QtGui.QLabel('RSB:'), 2, 0, 1, 1)
        self.addWidget(self.edt_rsb, 2, 1, 1, 3)
        self.addWidget(QtGui.QLabel('@'), 2, 4, 1, 1)
        self.addWidget(self.spb_rsb_percent, 2, 5, 1, 1)
        self.addWidget(QtGui.QLabel('+'), 2, 6, 1, 1)
        self.addWidget(self.spb_rsb_units, 2, 7, 1, 1)

        self.addWidget(self.btn_copyMetrics, 3, 0, 1, 8)
Пример #12
0
	def __init__(self, parentWidget):
		super(TRAutoMetrics, self).__init__()
		self.upper_widget = parentWidget

		# -- Init
		self.active_font = pFont()
		self.active_sampler = MetricSampler(self.active_font)
		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.__max_value = 10000

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

		# -- Buttons
		self.btn_addPreset = QtGui.QPushButton('Add')
		self.btn_delPreset = QtGui.QPushButton('Remove')
		self.btn_resetPreset = QtGui.QPushButton('Reset')
		self.btn_loadPreset = QtGui.QPushButton('Load')
		self.btn_savePreset = QtGui.QPushButton('Save')
		self.btn_get_lsb = QtGui.QPushButton('LSB')
		self.btn_get_rsb = QtGui.QPushButton('RSB')
		self.btn_get_both = QtGui.QPushButton('Set Metrics')
		self.btn_advanced = QtGui.QPushButton('Use Advanced options')

		self.btn_advanced.setCheckable(True)
		self.btn_advanced.setChecked(False)
		self.btn_advanced.setEnabled(False)

		self.btn_get_lsb.clicked.connect(lambda: self.set_sidebearings('lsb'))
		self.btn_get_rsb.clicked.connect(lambda: self.set_sidebearings('rsb'))
		self.btn_get_both.clicked.connect(lambda: self.set_sidebearings('bth'))

		# -- Checkbox
		self.chk_area_draw = QtGui.QCheckBox('Draw sampled area')
		self.chk_area_cache = QtGui.QCheckBox('Cache sampled area')

		# -- Spinbox
		self.spb_window_min = QtGui.QSpinBox()
		self.spb_window_max = QtGui.QSpinBox()
		self.spb_depth = QtGui.QSpinBox()
		self.spb_mul_area = QtGui.QDoubleSpinBox()

		self.spb_window_min.setMaximum(self.__max_value)
		self.spb_window_max.setMaximum(self.__max_value)
		self.spb_window_min.setMinimum(-self.__max_value)
		self.spb_window_max.setMinimum(-self.__max_value)
		self.spb_depth.setMaximum(self.__max_value)
		self.spb_mul_area.setMaximum(20.)
		self.spb_mul_area.setMinimum(-20.)
		
		self.spb_mul_area.setSingleStep(0.01)
		
		self.spb_window_min.setSuffix(' u')
		self.spb_window_max.setSuffix(' u')
		self.spb_depth.setSuffix(' u')

		self.spb_window_min.setValue(self.active_sampler.sample_window[0])
		self.spb_window_max.setValue(self.active_sampler.sample_window[1])
		
		self.spb_depth.setValue(self.active_sampler.cutout_x)
		self.spb_mul_area.setValue(0.5)

		self.spb_window_min.valueChanged.connect(lambda: self.update_sampler_config())
		self.spb_window_max.valueChanged.connect(lambda: self.update_sampler_config())
		self.spb_depth.valueChanged.connect(lambda: self.update_sampler_config())

		# -- Preset Table
		self.tab_presets = TRTableView(None)

		# -- Build Layout
		self.lay_head = QtGui.QGridLayout()
		self.frame_advanced = QtGui.QFrame()
		self.lay_advanced = QtGui.QGridLayout()

		self.lay_head.addWidget(QtGui.QLabel('Sampling Options:'),	0, 0, 1, 8)
		self.lay_head.addWidget(QtGui.QLabel('Min (Y):'),		 	1, 0, 1, 2)
		self.lay_head.addWidget(self.spb_window_min, 				1, 2, 1, 2)
		self.lay_head.addWidget(QtGui.QLabel('Max (Y):'), 			1, 4, 1, 2)
		self.lay_head.addWidget(self.spb_window_max, 				1, 6, 1, 2)
		self.lay_head.addWidget(QtGui.QLabel('Depth (X):'), 		2, 0, 1, 2)
		self.lay_head.addWidget(self.spb_depth, 					2, 2, 1, 2)
		self.lay_head.addWidget(QtGui.QLabel('Area (mult.):'),	 	2, 4, 1, 2)
		self.lay_head.addWidget(self.spb_mul_area,					2, 6, 1, 2)
		self.lay_head.addWidget(self.chk_area_draw,					3, 0, 1, 4)
		self.lay_head.addWidget(self.chk_area_cache,				3, 4, 1, 4)
		self.lay_head.addWidget(self.btn_get_lsb,					4, 0, 1, 2)
		self.lay_head.addWidget(self.btn_get_both,					4, 2, 1, 4)
		self.lay_head.addWidget(self.btn_get_rsb,					4, 6, 1, 2)
		self.lay_head.addWidget(self.btn_advanced,					5, 0, 1, 8)
		self.lay_head.addWidget(self.frame_advanced,				6, 0, 15, 8)
		
		self.frame_advanced.setLayout(self.lay_advanced)
		#self.lay_advanced.addWidget(QtGui.QLabel('Advanced configuration:'), 0, 0, 1, 6)
		self.lay_advanced.addWidget(self.btn_addPreset,				1, 0, 1, 2)
		self.lay_advanced.addWidget(self.btn_delPreset,				1, 2, 1, 2)
		self.lay_advanced.addWidget(self.btn_resetPreset,			1, 4, 1, 2)
		self.lay_advanced.addWidget(self.tab_presets,				2, 0, 5, 6)
		self.lay_advanced.addWidget(self.btn_loadPreset,			10, 0, 1, 3)
		self.lay_advanced.addWidget(self.btn_savePreset,			10, 3, 1, 3)
		
		self.frame_advanced.setFrameStyle(1)
		self.frame_advanced.hide()
		self.btn_advanced.clicked.connect(lambda: self.frame_advanced.show() if self.btn_advanced.isChecked() else self.frame_advanced.hide())

		self.addLayout(self.lay_head)