def __init__(self): super(TRImpEx, self).__init__() # - Interface # -- Layouts self.lay_base = QtGui.QGridLayout() self.plane_A = QtGui.QListWidget() self.plane_B = QtGui.QListWidget() self.plane_C = QtGui.QVBoxLayout() self.plane_A.setAlternatingRowColors(True) self.plane_B.setAlternatingRowColors(True) self.plane_A.addItems(sorted(impex_actions_db.keys())) self.plane_A.selectionModel().selectionChanged.connect( self.refresh_plane_B) self.plane_B.selectionModel().selectionChanged.connect(self.run_action) self.plane_C.addWidget( ImpexActions.action_empty()) # Set empty widget at start # - Build self.lay_base.addWidget(QtGui.QLabel('Import/Export type:'), 0, 1) self.lay_base.addWidget(QtGui.QLabel('Action:'), 0, 2) self.lay_base.addWidget(QtGui.QLabel('Options:'), 0, 3) self.lay_base.addWidget(self.plane_A, 1, 1) self.lay_base.addWidget(self.plane_B, 1, 2) self.lay_base.addLayout(self.plane_C, 1, 3) self.lay_base.setColumnStretch(1, 1) self.lay_base.setColumnStretch(2, 1) self.lay_base.setColumnStretch(3, 1) self.setLayout(self.lay_base)
def __init__(self): super(tool_tab, self).__init__() # - Init temp = pGlyph() self.active_font = pFont() layer_names = [layer.name for layer in temp.layers() if '#' not in layer.name] # - Widgets # -- Progress bar self.progress = QtGui.QProgressBar() self.progress.setMaximum(100) # -- Report Tree self.audit_report = OrderedDict(empty_record) self.header_names = ['Glyph', 'Layers'] self.audit_tree = TRWAuditTree(self.audit_report, self.header_names) self.audit_tree.selectionModel().selectionChanged.connect(self.auto_preview) # -- Test List temp_audit_glyph = auditGlyph(temp.fg, self.active_font.fg, self.audit_report) audit_tests = [test.replace('_', ' ').replace('audit', '').title() for test in temp_audit_glyph.get_all_tests()] self.audit_list = QtGui.QListWidget() self.audit_list.setAlternatingRowColors(True) self.audit_list.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.audit_list.addItems(audit_tests) # -- Audit Options self.cmb_layers = CheckableComboBox() self.cmb_layers.addItems(['All Masters'] + layer_names) self.cmb_reference = QtGui.QComboBox() self.cmb_reference.addItems(layer_names) if 'Regular' in layer_names: self.cmb_reference.setCurrentIndex(layer_names.index('Regular')) # -- Action Buttons self.btn_audit_run = QtGui.QPushButton('Process Entire Font') self.btn_audit_glyphs = QtGui.QPushButton('Process Glyph Selection') self.btn_audit_tests = QtGui.QPushButton('Selected tests only') self.btn_audit_reset = QtGui.QPushButton('Reset Record') self.btn_audit_save = QtGui.QPushButton('Save Record') self.btn_audit_select = QtGui.QPushButton('Auto Select Glyphs') self.btn_select_cheked = QtGui.QPushButton('Select Checked Glyphs') self.btn_audit_select.setCheckable(True) self.btn_audit_tests.setCheckable(True) self.btn_audit_select.setChecked(False) self.btn_audit_tests.setChecked(True) self.btn_audit_run.clicked.connect(lambda: self.process_audit(False)) self.btn_audit_glyphs.clicked.connect(lambda: self.process_audit(True)) self.btn_select_cheked.clicked.connect(lambda: self.selected_preview()) self.btn_audit_reset.clicked.connect(self.reset) self.btn_audit_save.clicked.connect(self.save_audit) # - Build Layout lay_main = QtGui.QVBoxLayout() lay_audit = QtGui.QGridLayout() lay_audit.addWidget(self.btn_audit_tests, 0, 0, 1, 2) lay_audit.addWidget(self.btn_audit_select, 0, 2, 1, 2) lay_audit.addWidget(self.btn_select_cheked, 0, 4, 1, 2) lay_audit.addWidget(self.btn_audit_save, 0, 6, 1, 2) lay_audit.addWidget(self.btn_audit_reset, 0, 8, 1, 2) lay_audit.addWidget(self.btn_audit_glyphs, 0, 10, 1, 2) lay_audit.addWidget(self.btn_audit_run, 0, 12, 1, 4) lay_audit.addWidget(QtGui.QLabel('Audit Tests:'), 1, 0, 1, 4) lay_audit.addWidget(self.audit_list, 2, 0, 21, 4) lay_audit.addWidget(QtGui.QLabel('Audit Report:'), 1, 4, 1, 12) lay_audit.addWidget(self.audit_tree, 2, 4, 23, 12) lay_audit.addWidget(QtGui.QLabel('Reference:'), 23, 0, 1, 1) lay_audit.addWidget(self.cmb_reference, 23, 1, 1, 3) lay_audit.addWidget(QtGui.QLabel('Audit on:'), 24, 0, 1, 1) lay_audit.addWidget(self.cmb_layers, 24, 1, 1, 3) lay_audit.addWidget(self.progress, 25, 0, 1, 16) # - Finish lay_main.addLayout(lay_audit) self.setLayout(lay_main) self.setMinimumSize(300, self.sizeHint.height())
def __init__(self): super(tool_tab, self).__init__() # - Init # - Widgets # - Glyph list self.lst_glyphName = QtGui.QListWidget() self.lst_glyphName.setMinimumHeight(50) self.lst_glyphName.setAlternatingRowColors(True) # -- Buttons self.btn_refresh = QtGui.QPushButton('&Refresh') self.btn_setAxis = QtGui.QPushButton('Set &Axis') self.btn_setAxis_c = QtGui.QPushButton('Set &Axis') self.btn_resetAxis = QtGui.QPushButton('Reset Axis') self.btn_getVstem = QtGui.QPushButton('Get &Vertical Stems') self.btn_getHstem = QtGui.QPushButton('Get &Horizontal Stems') self.btn_setLayer = QtGui.QPushButton('Layer changed') self.btn_execute = QtGui.QPushButton('Execute') self.btn_file_load_patchboard = QtGui.QPushButton('Load') self.btn_file_save_patchboard = QtGui.QPushButton('Save') # -- Options self.btn_opt_extrapolate = QtGui.QPushButton('Extrapolate') self.btn_opt_italic = QtGui.QPushButton('Italic') self.btn_opt_update_preview = QtGui.QPushButton('Live preview') self.btn_opt_keep_center = QtGui.QPushButton('Keep Center') self.btn_opt_metrics = QtGui.QPushButton('Metrics') self.btn_opt_anchors = QtGui.QPushButton('Anchors') self.btn_opt_target = QtGui.QPushButton('Use Target') self.btn_opt_extrapolate.setCheckable(True) self.btn_opt_italic.setCheckable(True) self.btn_opt_update_preview.setCheckable(True) self.btn_opt_keep_center.setCheckable(True) self.btn_opt_metrics.setCheckable(True) self.btn_opt_anchors.setCheckable(True) self.btn_opt_target.setCheckable(True) #self.btn_opt_extrapolate.setChecked(True) #self.btn_opt_keep_center.setChecked(True) #self.btn_opt_target.setChecked(True) self.btn_refresh.clicked.connect(self.refresh) self.btn_setAxis.clicked.connect(self.set_axis) self.btn_setAxis_c.clicked.connect(self.set_axis) self.btn_resetAxis.clicked.connect(self.reset_axis) self.btn_getVstem.clicked.connect(lambda: self.get_stem(False)) self.btn_getHstem.clicked.connect(lambda: self.get_stem(True)) self.btn_setLayer.clicked.connect(self.set_current_layer) self.btn_execute.clicked.connect(lambda: self.execute_scale(True)) self.btn_file_save_patchboard.clicked.connect(self.file_save_patchboard) self.btn_file_load_patchboard.clicked.connect(self.file_load_patchboard) # -- Layer selector self.tree_layer = TRWLayerTree() # -- Actions (Context Menu) self.tree_layer.menu = QtGui.QMenu(self) self.tree_layer.menu.setTitle('Actions:') act_addItem = QtGui.QAction('Add', self) act_delItem = QtGui.QAction('Remove', self) act_dupItem = QtGui.QAction('Duplicate', self) act_uneItem = QtGui.QAction('Unnest', self) act_setItem_mask = QtGui.QAction('Set mask', self) act_setItem_unmask = QtGui.QAction('Remove mask', self) act_setItem_value = QtGui.QAction('Set value', self) act_setAxis = QtGui.QAction('Set Axis', self) act_resetAxis = QtGui.QAction('Reset Axis', self) act_getVstem = QtGui.QAction('Get Vertical Stems', self) act_getHstem = QtGui.QAction('Get Horizontal Stems', self) self.tree_layer.menu.addAction(act_addItem) self.tree_layer.menu.addAction(act_dupItem) self.tree_layer.menu.addAction(act_uneItem) self.tree_layer.menu.addAction(act_delItem) self.tree_layer.menu.addSeparator() self.tree_layer.menu.addAction(act_setItem_mask ) self.tree_layer.menu.addAction(act_setItem_unmask ) self.tree_layer.menu.addAction(act_setItem_value ) self.tree_layer.menu.addSeparator() self.tree_layer.menu.addAction(act_getVstem) self.tree_layer.menu.addAction(act_getHstem) self.tree_layer.menu.addSeparator() self.tree_layer.menu.addAction(act_setAxis) self.tree_layer.menu.addAction(act_resetAxis) act_addItem.triggered.connect(lambda: self.tree_layer._addItem()) act_dupItem.triggered.connect(lambda: self.tree_layer._duplicateItems()) act_uneItem.triggered.connect(lambda: self.tree_layer._unnestItem()) act_delItem.triggered.connect(lambda: self.tree_layer._removeItems()) act_setItem_mask.triggered.connect(lambda: self.tree_layer._setItemData('mask.', 0, 0, False)) act_setItem_unmask.triggered.connect(lambda: self.tree_layer._setItemData('mask.', 0, 1, True)) act_setItem_value.triggered.connect(lambda: self.tree_layer._setItemData(*TR2ComboDLG('Delta Setup', 'Please enter new value for selected columns', 'Value:', 'Column:', tree_column_names).values)) act_setAxis.triggered.connect(lambda: self.set_axis()) act_resetAxis.triggered.connect(lambda: self.reset_axis()) act_getVstem.triggered.connect(lambda: self.get_stem(False)) act_getHstem.triggered.connect(lambda: self.get_stem(True)) # - Build Layout layoutV = QtGui.QVBoxLayout() # -- Layer selector layoutV.addWidget(self.tree_layer) # -- Set Glyph list self.fld_glyphs = TRCollapsibleBox('Process Glyphs') lay_glyphs = QtGui.QVBoxLayout() lay_glyphs_b = QtGui.QHBoxLayout() lay_glyphs.addWidget(self.lst_glyphName) lay_glyphs_b.addWidget(self.btn_refresh) lay_glyphs_b.addWidget(self.btn_setAxis_c) lay_glyphs.addLayout(lay_glyphs_b) self.fld_glyphs.setContentLayout(lay_glyphs) layoutV.addWidget(self.fld_glyphs) # -- Delta Setup controls self.fld_setup = TRCollapsibleBox('Delta Setup') layoutG = QtGui.QGridLayout() layoutG.addWidget(QtGui.QLabel('Axis Setup:'), 0, 0, 1, 10) layoutG.addWidget(self.btn_getVstem, 1, 0, 1, 5) layoutG.addWidget(self.btn_getHstem, 1, 5, 1, 5) layoutG.addWidget(self.btn_resetAxis, 2, 0, 1, 5) layoutG.addWidget(self.btn_setAxis, 2, 5, 1, 5) layoutG.addWidget(self.btn_file_save_patchboard, 3, 0, 1, 5) layoutG.addWidget(self.btn_file_load_patchboard, 3, 5, 1, 5) layoutG.addWidget(QtGui.QLabel('Options:'), 4, 0, 1, 10) layoutG.addWidget(self.btn_opt_extrapolate, 5, 0, 1, 5) layoutG.addWidget(self.btn_opt_italic, 5, 5, 1, 5) layoutG.addWidget(self.btn_opt_anchors, 6, 0, 1, 5) layoutG.addWidget(self.btn_opt_metrics, 6, 5, 1, 5) layoutG.addWidget(self.btn_opt_target, 8, 0, 1, 5) layoutG.addWidget(self.btn_opt_keep_center, 8, 5, 1, 5) layoutG.addWidget(self.btn_opt_update_preview, 9, 0, 1, 10) self.fld_setup.setContentLayout(layoutG) layoutV.addWidget(self.fld_setup) # -- Set Sliders self.fld_weight = TRCollapsibleBox('Stem Weight Control') self.fld_scale = TRCollapsibleBox('Compensative scaler') lay_weight = QtGui.QVBoxLayout() lay_scale = QtGui.QVBoxLayout() # --- Mixer lay_weight.addWidget(QtGui.QLabel('Vertical Stem Weight (X):')) self.mixer_dx = TRSliderCtrl('1', '1000', '0', 1) self.mixer_dx.sld_axis.valueChanged.connect(self.execute_scale) lay_weight.addLayout(self.mixer_dx) lay_weight.addSpacing(10) lay_weight.addWidget(QtGui.QLabel('Horizontal Stem Weight (Y):')) self.mixer_dy = TRSliderCtrl('1', '1000', '0', 1) self.mixer_dy.sld_axis.valueChanged.connect(self.execute_scale) lay_weight.addLayout(self.mixer_dy) self.fld_weight.setContentLayout(lay_weight) layoutV.addWidget(self.fld_weight) # --- Scaler lay_scale.addWidget(QtGui.QLabel('Width')) self.scalerX = TRSliderCtrl('1', '200', '100', 1) self.scalerX.sld_axis.valueChanged.connect(self.execute_scale) lay_scale.addLayout(self.scalerX) lay_scale.addSpacing(10) lay_scale.addWidget(QtGui.QLabel('Height')) self.scalerY = TRSliderCtrl('1', '200', '100', 1) self.scalerY.sld_axis.valueChanged.connect(self.execute_scale) lay_scale.addLayout(self.scalerY) self.fld_scale.setContentLayout(lay_scale) layoutV.addWidget(self.fld_scale) # -- Tail layoutE = QtGui.QHBoxLayout() layoutE.addWidget(self.btn_setLayer) layoutE.addWidget(self.btn_execute) layoutV.addLayout(layoutE) self.__lbl_warn = QtGui.QLabel('') layoutV.addWidget(self.__lbl_warn) self.__lbl_warn.hide() # -- Finish self.refresh() self.tree_layer.setTree(self.__init_tree(), tree_column_names) self.setLayout(layoutV) self.setMinimumSize(300, self.sizeHint.height())