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