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(SGPreflight, self).__init__() # - Init temp = pGlyph() self.active_font = pFont() layer_names = [ layer.name for layer in temp.layers() if '#' not in layer.name ] # - Automat self.auto_fl = Automat() # - Widgets # - Combo Boxes self.cmb_select_color = QtGui.QComboBox() self.color_codes = { name: value for name, value, discard in fontMarkColors } for i in range(len(fontMarkColors)): self.cmb_select_color.addItem(fontMarkColors[i][0]) self.cmb_select_color.setItemData( i, QtGui.QColor(fontMarkColors[i][2]), QtCore.Qt.DecorationRole) # -- Boxes self.box_preflight = QtGui.QGroupBox('Font Preflight:') self.box_audit = QtGui.QGroupBox('Font Audit:') # -- 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) # -- Action Buttons # --- Preflight self.btn_preflight_info = QtGui.QPushButton('Edit Font Info') self.btn_preflight_audit = QtGui.QPushButton('Audit Font') self.btn_preflight_clean = QtGui.QPushButton( 'Cleanup auto layers, unused tags and labels') self.btn_preflight_clean_flag = QtGui.QPushButton( 'Remove glyphs marked with:') self.btn_preflight_actions = QtGui.QPushButton('Open Actions') self.btn_preflight_save = QtGui.QPushButton('Save Font') self.btn_preflight_export = QtGui.QPushButton('Export Font') self.btn_preflight_info.clicked.connect( lambda n: self.auto_fl.run('Font_Info')) self.btn_preflight_actions.clicked.connect( lambda n: self.auto_fl.run('Action')) self.btn_preflight_save.clicked.connect( lambda n: self.auto_fl.run('SaveFontAs')) self.btn_preflight_export.clicked.connect( lambda n: self.auto_fl.run('Export_Fonts')) self.btn_preflight_clean.clicked.connect( lambda: self.process_cleanup(mode='auto')) self.btn_preflight_clean_flag.clicked.connect( lambda: self.process_cleanup(mode='temp')) # --- Audit self.btn_audit_reset = QtGui.QPushButton('Reset Record') self.btn_audit_select = QtGui.QPushButton('Auto Select Glyphs') self.btn_audit_select.setCheckable(True) self.btn_audit_select.setChecked(False) self.btn_preflight_audit.clicked.connect(self.process_audit) self.btn_audit_reset.clicked.connect(self.reset) # - Build Layout lay_main = QtGui.QVBoxLayout() lay_preflight = QtGui.QGridLayout() lay_preflight.addWidget(QtGui.QLabel('1: Update font info: version.'), 0, 0, 1, 4) lay_preflight.addWidget(self.btn_preflight_info, 1, 0, 1, 4) lay_preflight.addWidget( QtGui.QLabel('2: Audit Font for known glyph problems.'), 2, 0, 1, 4) lay_preflight.addWidget(self.btn_preflight_audit, 3, 0, 1, 4) lay_preflight.addWidget(QtGui.QLabel('3: Cleanup Font:'), 4, 0, 1, 4) lay_preflight.addWidget(self.btn_preflight_clean, 5, 0, 1, 4) lay_preflight.addWidget(self.btn_preflight_clean_flag, 7, 0, 1, 2) lay_preflight.addWidget(self.cmb_select_color, 7, 2, 1, 2) lay_preflight.addWidget( QtGui.QLabel( '4: All glyphs/masters: Apply rounding; Decompose; Convert to TT curves.' ), 8, 0, 1, 4) lay_preflight.addWidget(self.btn_preflight_actions, 9, 0, 1, 4) lay_preflight.addWidget(QtGui.QLabel('5: Save your work.'), 10, 0, 1, 4) lay_preflight.addWidget(self.btn_preflight_save, 11, 0, 1, 4) lay_preflight.addWidget(QtGui.QLabel('6: Export fonts.'), 12, 0, 1, 4) lay_preflight.addWidget(self.btn_preflight_export, 13, 0, 1, 4) self.box_preflight.setLayout(lay_preflight) lay_audit = QtGui.QGridLayout() lay_audit.addWidget(self.btn_audit_select, 0, 6, 1, 3) lay_audit.addWidget(self.btn_audit_reset, 0, 9, 1, 3) lay_audit.addWidget(QtGui.QLabel('Audit Report:'), 1, 6, 1, 6) lay_audit.addWidget(self.audit_tree, 2, 6, 20, 6) self.box_audit.setLayout(lay_audit) lay_split = QtGui.QHBoxLayout() lay_split.addWidget(self.box_preflight) lay_split.addWidget(self.box_audit) lay_main.addLayout(lay_split) lay_main.addWidget(self.progress) self.setLayout(lay_main) # - Finish self.setMinimumSize(300, self.sizeHint.height())