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)
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)
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)
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)
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()
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)
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)
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)
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)
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()
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)
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)