Ejemplo n.º 1
0
	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())
Ejemplo n.º 2
0
    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())