Beispiel #1
0
	def __init__(self, title="", parent=None):
		super(TRCollapsibleBox, self).__init__(parent)

		self.toggle_button = QtGui.QToolButton()
		self.toggle_button.text = '  ' + title
		self.toggle_button.checkable = True
		self.toggle_button.checked = True
		self.toggle_button.setStyleSheet("QToolButton { border: none; font-weight: bold; color: #505050; vertical-align: middle }")
		self.toggle_button.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)
		self.toggle_button.setArrowType(QtCore.Qt.RightArrow)
		self.toggle_button.setIconSize(QtCore.QSize(5,5))
		self.toggle_button.clicked.connect(self.on_pressed)

		self.toggle_animation = QtCore.QParallelAnimationGroup(self)

		self.content_area = QtGui.QScrollArea()
		self.content_area.maximumHeight = 0
		self.content_area.minimumHeight = 0

		self.content_area.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
		self.content_area.setFrameShape(QtGui.QFrame.NoFrame)

		lay = QtGui.QVBoxLayout(self)
		lay.setSpacing(0)
		lay.setContentsMargins(0, 0, 0, 0)
		lay.addWidget(self.toggle_button)
		lay.addWidget(self.content_area)

		self.toggle_animation.addAnimation(QtCore.QPropertyAnimation(self, b"minimumHeight"))
		self.toggle_animation.addAnimation(QtCore.QPropertyAnimation(self, b"maximumHeight"))
		self.toggle_animation.addAnimation(QtCore.QPropertyAnimation(self.content_area, b"maximumHeight"))
Beispiel #2
0
	def update_table_format(self, clearTable=False):
		hidden_rows = 0
		formattig_list = parser_format(self.edt_formatting.text)
		self.tab_fontKerning.blockSignals(True)

		for row in xrange(self.tab_fontKerning.rowCount):
			for col in xrange(self.tab_fontKerning.columnCount):
				cell_item = self.tab_fontKerning.item(row, col)
				
				if cell_item is not None:	
					if not clearTable:
						for cell_rule, format_rule in formattig_list:
							if eval(cell_item.text() + cell_rule):
								if special_rule in format_rule:
									if format_rule[1:].upper() == 'HIDE':
										self.tab_fontKerning.hideRow(row)
										hidden_rows += 1
										break
									elif format_rule[1:].upper() == 'SHOW':
										self.tab_fontKerning.showRow(row)
										break
								else:
									color_rule = QtGui.QColor(format_rule)
									color_rule.setAlpha(50)
									cell_item.setBackground(color_rule)
					else:
						cell_item.setBackground(QtGui.QColor('white'))						

		self.tab_fontKerning.blockSignals(False)
		self.lbl_status_pairs_hidden.setText(hidden_rows)
Beispiel #3
0
	def __init__(self):
		super(typerig_Manager, self).__init__()
	
		#self.setStyleSheet(ss_Toolbox_none)
				
		# - Tabs --------------------------
		# -- Dynamically load all tabs
		self.tabs = TRHTabWidget()

		# --- Load all tabs from this directory as modules. Check __init__.py 
		# --- <dirName>.modules tabs/modules manifest in list format
		for toolName in Manager.modules:
			if ignorePanel not in toolName:
				self.tabs.addTab(eval('Manager.%s.tool_tab()' %toolName), toolName)
		
		# - Layouts -------------------------------
		layoutV = QtGui.QVBoxLayout() 
		layoutV.setContentsMargins(0,0,0,0)
		
		self.lay_layers = QtGui.QGridLayout()
		self.lay_layers.setContentsMargins(15,5,5,3)

		# -- Build layouts -------------------------------
		layoutV.addWidget(self.tabs)

		# - Set Widget -------------------------------
		self.setLayout(layoutV)
		self.setWindowTitle('%s %s' %(app_name, app_version))
		self.setGeometry(300, 300, 900, 440)
		self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # Always on top!!
		#self.setMinimumWidth(300)
		self.show()
Beispiel #4
0
    def __init__(self):
        super(tool_tab, self).__init__()

        # - Init
        layoutV = QtGui.QVBoxLayout()

        # - Build
        #layoutV.addWidget(QtGui.QLabel('Glyph: Adjust Metric data'))
        layoutV.addLayout(metrics_adjust())
        layoutV.addSpacing(10)
        layoutV.addWidget(QtGui.QLabel('Glyph: Copy Metric data'))
        layoutV.addLayout(metrics_copy())
        layoutV.addSpacing(10)
        layoutV.addWidget(QtGui.QLabel('Glyph: Copy BBox data'))
        layoutV.addLayout(bbox_copy())
        layoutV.addSpacing(10)
        layoutV.addWidget(QtGui.QLabel('Glyph: Set metric expressions'))
        layoutV.addLayout(metrics_expr())
        layoutV.addSpacing(10)
        layoutV.addWidget(QtGui.QLabel('\nFont: Set Font Metrics'))
        layoutV.addLayout(metrics_font())

        # - Build ---------------------------
        layoutV.addStretch()
        self.setLayout(layoutV)

        # !!! Hotfix FL7 7355
        self.setMinimumSize(300, self.sizeHint.height())
Beispiel #5
0
    def __init__(self, aux):
        super(TRLayerMultiEdit, self).__init__()

        # - Init
        self.aux = aux
        self.backup = {}
        self.contourClipboard = {}

        # -- Custom controls
        self.tr_trans_ctrl = TRTransformCtrl()

        # -- Quick Tool buttons
        self.lay_buttons = QtGui.QGridLayout()
        self.btn_transform = QtGui.QPushButton('Transform')
        self.btn_trans_res = QtGui.QPushButton('Reset')

        self.btn_transform.setToolTip('Affine transform selected layers.')
        self.btn_trans_res.setToolTip('Reset transformation fileds.')

        self.btn_transform.clicked.connect(self.layer_transform)
        self.btn_trans_res.clicked.connect(self.tr_trans_ctrl.reset)

        self.lay_buttons.addWidget(self.tr_trans_ctrl, 0, 0, 2, 8)
        self.lay_buttons.addWidget(self.btn_trans_res, 2, 0, 1, 4)
        self.lay_buttons.addWidget(self.btn_transform, 2, 4, 1, 4)

        self.tr_trans_ctrl.lay_controls.setMargin(0)

        self.addLayout(self.lay_buttons)
Beispiel #6
0
	def setTable(self, data, sortData=(True, True), indexColCheckable=None):
		name_row, name_column = [], []
		self.blockSignals(True)

		self.setColumnCount(max(map(len, data.values())))
		self.setRowCount(len(data.keys()))

		# - Populate
		for row, value in enumerate(sorted(data.keys()) if sortData[0] else data.keys()):
			name_row.append(value)
			
			for col, key in enumerate(sorted(data[value].keys()) if sortData[1] else data[value].keys()):
				name_column.append(key)
				rowData = data[value][key]
				
				if isinstance(rowData, basestring):
					newitem = QtGui.QTableWidgetItem(str(rowData))
				else:
					newitem = QtGui.QTableWidgetItem()
					newitem.setData(QtCore.Qt.EditRole, rowData)
									
				# - Make the columnt checkable
				if indexColCheckable is not None and col in indexColCheckable:
					newitem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
					newitem.setCheckState(QtCore.Qt.Unchecked) 

				self.setItem(row, col, newitem)

		self.setHorizontalHeaderLabels(name_column)
		self.setVerticalHeaderLabels(name_row)
		self.blockSignals(False)
Beispiel #7
0
	def getTransform(self, obj_rect=QtCore.QRectF(.0, .0, .0, .0)):
		# - Init
		origin_transform = QtGui.QTransform()
		rev_origin_transform = QtGui.QTransform()
		return_transform = QtGui.QTransform()
		
		m11 = float(self.spb_scale_x.value)/100.
		m13 = float(self.spb_translate_x.value)
		m22 = float(self.spb_scale_y.value)/100.
		m23 = float(self.spb_translate_y.value)

		# - Transform
		if self.rad_or.isChecked():	transform_origin = QtCore.QPointF(.0, .0)
		if self.rad_bl.isChecked():	transform_origin = obj_rect.topLeft()
		if self.rad_br.isChecked():	transform_origin = obj_rect.topRight()
		if self.rad_tl.isChecked():	transform_origin = obj_rect.bottomLeft()
		if self.rad_tr.isChecked():	transform_origin = obj_rect.bottomRight()
		if self.rad_ce.isChecked():	transform_origin = obj_rect.center()
		
		origin_transform.translate(-transform_origin.x(), -transform_origin.y())
		rev_origin_transform.translate(transform_origin.x(), transform_origin.y())

		return_transform.scale(m11, m22)
		return_transform.rotate(-float(self.spb_rotate.value))
		return_transform.shear(radians(float(self.spb_shear.value)), 0.)
		return_transform.translate(m13, m23)

		return return_transform, origin_transform, rev_origin_transform
Beispiel #8
0
	def refresh(self):
		# - Init
		self.model.removeRows(0, self.model.rowCount())
		self.data_glyphs = getProcessGlyphs(pMode)

		# - Set Items
		for glyph in self.data_glyphs:
			glyph_name = ''

			# - GlyphName
			if self.chk_glyphUnicode.isChecked():
				try:
					glyph_name += str(hex(glyph.unicode)).upper() + '\t'
				except TypeError:
					glyph_name += ' '*6 + '\t'

			if self.chk_glyphName.isChecked():
				glyph_name += glyph.name			
			
			item = QtGui.QStandardItem(glyph_name)

			# - Set Mark
			if self.chk_glyphMark.isChecked():
				new_color = QtGui.QColor(fontMarkColors[glyph.mark])
				new_color.setAlpha(30)
				item.setBackground(QtGui.QBrush(new_color))
			
			# - Set Check
			item.setCheckable(True)
			if self.chk_glyphChecked.isChecked():
				item.setChecked(True)

			self.model.appendRow(item)
		
		self.lst_glyphNames.setModel(self.model)
Beispiel #9
0
    def __init__(self, aux):
        super(TRNewLayerBlend, self).__init__()

        # - Init
        self.aux = aux
        self.process_array = []
        self.active_workspace = pWorkspace()
        self.active_canvas = self.active_workspace.getCanvas(True)

        # - Interface
        self.lay_buttons = QtGui.QGridLayout()

        self.chk_setAxis = QtGui.QPushButton('Set Axis')
        self.chk_swapAxis = QtGui.QPushButton('Swap')

        self.chk_setAxis.setCheckable(True)
        self.chk_swapAxis.setCheckable(True)

        self.chk_setAxis.clicked.connect(lambda: self.prepare_lerp())

        # -- Blend active layer to single selected layer
        self.mixer_dx = TRSliderCtrl('1', '1000', '0', 1)
        self.mixer_dx.sld_axis.valueChanged.connect(
            lambda: self.process_lerp())

        self.lay_buttons.addWidget(self.chk_setAxis, 0, 0, 1, 1)
        self.lay_buttons.addWidget(self.chk_swapAxis, 0, 1, 1, 1)

        self.addLayout(self.lay_buttons)
        self.addLayout(self.mixer_dx)
Beispiel #10
0
    def fold(self):
        # - Init
        width_all = self.width
        height_folded = self.btn_unfold.sizeHint.height()

        # - Do
        if not self.flag_fold:
            self.tabs.hide()
            self.fr_controller.hide()
            self.btn_unfold.show()
            self.setMinimumHeight(height_folded)
            self.repaint()
            self.resize(width_all, height_folded)
            self.flag_fold = True

        else:
            QtGui.uiRefresh(self)
            self.tabs.show()
            self.fr_controller.show()
            self.btn_unfold.hide()
            self.adjustSize()
            self.resize(width_all,
                        self.sizeHint.height())  # !!! Hotfix FL7 7355
            self.repaint()
            self.flag_fold = False
Beispiel #11
0
	def _addItem(self, data=None):
		new_item_data = ['New', '', '', default_sx, default_sy, _rand_hex()] if data is None else data

		root = self.selectedItems()[0].parent() if len(self.selectedItems()) else self.invisibleRootItem()
		new_item = QtGui.QTreeWidgetItem(root, new_item_data)
		color_decorator = QtGui.QColor(new_item_data[-1])
		new_item.setData(0, QtCore.Qt.DecorationRole, color_decorator)
		new_item.setFlags(new_item.flags() & ~QtCore.Qt.ItemIsDropEnabled | QtCore.Qt.ItemIsEditable)
Beispiel #12
0
    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)
Beispiel #13
0
    def __init__(self, parent, mode):
        super(dlg_LayerSelect, self).__init__()

        # - Init
        self.parent_widget = parent

        # - Basic Widgets
        self.tab_masters = TRTableView(table_dict)
        self.table_populate(mode)
        self.tab_masters.cellChanged.connect(
            lambda: self.parent_widget.layers_refresh())

        # -- Buttons
        self.btn_tableCheck = QtGui.QPushButton('Select All')
        self.btn_tableCheckMasters = QtGui.QPushButton('Masters')
        self.btn_tableCheckMasks = QtGui.QPushButton('Masks')
        self.btn_tableCheckServices = QtGui.QPushButton('Services')

        self.btn_tableCheck.setToolTip(
            'Click check all.\n<ALT> + Click uncheck all.')
        self.btn_tableCheckMasters.setToolTip(
            'Click check all.\n<ALT> + Click uncheck all.')
        self.btn_tableCheckMasks.setToolTip(
            'Click check all.\n<ALT> + Click uncheck all.')
        self.btn_tableCheckServices.setToolTip(
            'Click check all.\n<ALT> + Click uncheck all.')

        if mode != 0:
            self.btn_tableCheckMasters.setEnabled(False)
            self.btn_tableCheckMasks.setEnabled(False)
            self.btn_tableCheckServices.setEnabled(False)

        self.btn_tableCheck.clicked.connect(lambda: self.table_check_all())
        self.btn_tableCheckMasters.clicked.connect(
            lambda: self.table_check_all('Master'))
        self.btn_tableCheckMasks.clicked.connect(
            lambda: self.table_check_all('Mask'))
        self.btn_tableCheckServices.clicked.connect(
            lambda: self.table_check_all('Service'))

        # - Build layout
        layoutV = QtGui.QGridLayout()
        layoutV.addWidget(self.btn_tableCheck, 0, 0, 1, 2)
        layoutV.addWidget(self.btn_tableCheckMasters, 0, 2, 1, 2)
        layoutV.addWidget(self.btn_tableCheckMasks, 1, 0, 1, 2)
        layoutV.addWidget(self.btn_tableCheckServices, 1, 2, 1, 2)
        layoutV.addWidget(self.tab_masters, 2, 0, 20, 4)

        # - Set Widget
        self.setLayout(layoutV)
        self.setWindowTitle('%s %s | Select Layers' % (app_name, app_version))
        self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)  # Always on top!!
        self.setGeometry(500, 200, 300, 600)
Beispiel #14
0
    def __build(self):
        # - Init
        self.sliders = []
        self.process_glyphs = []

        # - Buttons
        self.btn_capture = QtGui.QPushButton('Capture Smart Angles')
        self.btn_capture.clicked.connect(lambda: self.capture())

        # - Set layout
        self.addWidget(QtGui.QLabel('\nRound: Smart corner control'))
        self.addWidget(self.btn_capture)
Beispiel #15
0
	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)
Beispiel #16
0
	def __init__(self, dlg_name, dlg_msg, dlg_field_t, dlg_field_b, dlg_size=(300, 300, 300, 100)):
		super(TR2FieldDLG, self).__init__()
		# - Init
		self.values = (None, None)
		
		# - Widgets
		self.lbl_main = QtGui.QLabel(dlg_msg)
		self.lbl_field_t = QtGui.QLabel(dlg_field_t)
		self.lbl_field_b = QtGui.QLabel(dlg_field_b)
		
		self.edt_field_t = QtGui.QLineEdit() # Top field
		self.edt_field_b = QtGui.QLineEdit() # Bottom field

		self.btn_ok = QtGui.QPushButton('OK', self)
		self.btn_cancel = QtGui.QPushButton('Cancel', self)

		self.btn_ok.clicked.connect(self.return_values)
		self.btn_cancel.clicked.connect(self.reject)
		
		# - Build 
		main_layout = QtGui.QGridLayout() 
		main_layout.addWidget(self.lbl_main, 	0, 0, 1, 4)
		main_layout.addWidget(self.lbl_field_t,	1, 0, 1, 2)
		main_layout.addWidget(self.edt_field_t,	1, 2, 1, 2)
		main_layout.addWidget(self.lbl_field_b,	2, 0, 1, 2)
		main_layout.addWidget(self.edt_field_b,	2, 2, 1, 2)
		main_layout.addWidget(self.btn_ok,		3, 0, 1, 2)
		main_layout.addWidget(self.btn_cancel,	3, 2, 1, 2)

		# - Set 
		self.setLayout(main_layout)
		self.setWindowTitle(dlg_name)
		self.setGeometry(*dlg_size)
		self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
		self.exec_()
Beispiel #17
0
    def class_add_new(self):
        if self.tab_groupKern.rowCount > 0:
            self.tab_groupKern.insertRow(0)
            item_groupName = QtGui.QTableWidgetItem(
                'Class_%s' % self.tab_groupKern.rowCount)
            item_groupPos = QtGui.QTableWidgetItem('KernLeft')
            item_groupMem = QtGui.QTableWidgetItem('')

            self.tab_groupKern.setItem(0, 0, item_groupName)
            self.tab_groupKern.setItem(0, 1, item_groupPos)
            self.tab_groupKern.setItem(0, 2, item_groupMem)
        else:
            layer = self.cmb_layer.currentText
            empty_table = {layer: {'Class_1': [[''], 'KernLeft']}}
            self.update_data(empty_table)
Beispiel #18
0
	def setTable(self, data):
		# - Init
		font_layers, font_kerning, all_pairs = data
				
		self.blockSignals(True)

		self.setColumnCount(len(font_layers))
		self.setRowCount(len(all_pairs))
		#self.setSortingEnabled(False) # Great solution from: https://stackoverflow.com/questions/7960505/strange-qtablewidget-behavior-not-all-cells-populated-after-sorting-followed-b

		# - Headers 
		self.setHorizontalHeaderLabels(font_layers)
		self.setVerticalHeaderLabels([pair_delimiter.join(pair) for pair in all_pairs])
		self.horizontalHeader().setDefaultAlignment(QtCore.Qt.AlignLeft)
		self.verticalHeader().setDefaultAlignment(QtCore.Qt.AlignLeft)

		# - Populate
		for row, pair in enumerate(all_pairs):
			for col, layer in enumerate(font_layers):
				kern_value = font_kerning[col][pair]
				
				if kern_value is None:
					kern_value = NOVAL
				else:
					kern_value = int(kern_value)

				new_item = QtGui.QTableWidgetItem(str(kern_value))
				self.setItem(row, col, new_item)

		self.blockSignals(False)
		#self.setSortingEnabled(True)
		self.resizeRowsToContents()
Beispiel #19
0
    def __init__(self):
        super(tool_tab, self).__init__()

        # - Init
        layoutV = QtGui.QVBoxLayout()

        # - Build
        layoutV.addWidget(QtGui.QLabel('Curve: Basic tools'))
        layoutV.addLayout(curveEq())

        # - Build ---------------------------
        layoutV.addStretch()
        self.setLayout(layoutV)

        # !!! Hotfix FL7 7355
        self.setMinimumSize(300, self.sizeHint.height())
Beispiel #20
0
    def __init__(self):
        super(tool_tab, self).__init__()

        # - Init
        layoutV = QtGui.QVBoxLayout()
        self.strGenerator = TRStringGen()

        # - Build ---------------------------
        layoutV.addWidget(QtGui.QLabel('Pairs generator:'))
        layoutV.addLayout(self.strGenerator)

        layoutV.addStretch()
        self.setLayout(layoutV)

        # !!! Hotfix FL7 7355
        self.setMinimumSize(300, self.sizeHint.height())
Beispiel #21
0
    def __init__(self):
        super(shapeMovement, self).__init__()

        # - Init
        self.methodList = ['Shift', 'Scale', 'Shear']

        # - Methods
        self.cmb_methodSelector = QtGui.QComboBox()
        self.cmb_methodSelector.addItems(self.methodList)
        self.cmb_methodSelector.setToolTip('Select transformation method')

        # - Arrow buttons
        self.btn_up = QtGui.QPushButton('Up')
        self.btn_down = QtGui.QPushButton('Down')
        self.btn_left = QtGui.QPushButton('Left')
        self.btn_right = QtGui.QPushButton('Right')

        self.btn_up.setMinimumWidth(80)
        self.btn_down.setMinimumWidth(80)
        self.btn_left.setMinimumWidth(80)
        self.btn_right.setMinimumWidth(80)

        self.btn_up.clicked.connect(self.onUp)
        self.btn_down.clicked.connect(self.onDown)
        self.btn_left.clicked.connect(self.onLeft)
        self.btn_right.clicked.connect(self.onRight)

        self.edt_offX = QtGui.QLineEdit('1.0')
        self.edt_offY = QtGui.QLineEdit('1.0')
        self.edt_offX.setToolTip('X offset')
        self.edt_offY.setToolTip('Y offset')

        # - Layout
        self.lay_btn = QtGui.QGridLayout()

        self.lay_btn.addWidget(self.cmb_methodSelector, 0, 0, 1, 6)
        self.lay_btn.addWidget(QtGui.QLabel('X:'), 1, 0, 1, 1)
        self.lay_btn.addWidget(self.edt_offX, 1, 1, 1, 1)
        self.lay_btn.addWidget(self.btn_up, 1, 2, 1, 2)
        self.lay_btn.addWidget(QtGui.QLabel('Y:'), 1, 4, 1, 1)
        self.lay_btn.addWidget(self.edt_offY, 1, 5, 1, 1)
        self.lay_btn.addWidget(self.btn_left, 2, 0, 1, 2)
        self.lay_btn.addWidget(self.btn_down, 2, 2, 1, 2)
        self.lay_btn.addWidget(self.btn_right, 2, 4, 1, 2)

        self.addLayout(self.lay_btn)
Beispiel #22
0
    def __init__(self):
        super(TRGlyphTag, self).__init__()

        # - Widget & Layout
        self.edt_tagString = TRGLineEdit()
        self.edt_tagString.setPlaceholderText('Glyph tags')
        self.edt_tagString.setToolTip('A comma separated list of tags.')

        self.edt_tagStringNode = QtGui.QLineEdit()
        self.edt_tagStringNode.setPlaceholderText('Node name')
        self.edt_tagStringNode.setToolTip('A single node name.')

        self.btn_tagGlyph = QtGui.QPushButton('Glyph')
        self.btn_tagWindow = QtGui.QPushButton('Window')
        self.btn_tagSelection = QtGui.QPushButton('Selection')

        self.btn_tagNodes = QtGui.QPushButton('Glyph')
        self.btn_tagWindowNodes = QtGui.QPushButton('Window')
        self.btn_tagNodesClear = QtGui.QPushButton('Clear')

        self.btn_tagGlyph.clicked.connect(lambda: self.tag_glyphs('G'))
        self.btn_tagWindow.clicked.connect(lambda: self.tag_glyphs('W'))
        self.btn_tagSelection.clicked.connect(lambda: self.tag_glyphs('S'))
        self.btn_tagNodes.clicked.connect(lambda: self.tag_nodes('G'))
        self.btn_tagWindowNodes.clicked.connect(lambda: self.tag_nodes('W'))
        self.btn_tagNodesClear.clicked.connect(
            lambda: self.edt_tagStringNode.clear())

        self.btn_tagGlyph.setToolTip('Add tags to current glyph.')
        self.btn_tagWindow.setToolTip(
            'Add tags to all glyphs in current Glyph window.')
        self.btn_tagSelection.setToolTip(
            'Add tags to current selection in Font window.')
        self.btn_tagNodes.setToolTip(
            'Add name selected nodes at current glyph.')
        self.btn_tagWindowNodes.setToolTip(
            'Add name to selected nodes at all glyphs in current Glyph window.'
        )
        self.btn_tagNodesClear.setToolTip('Clear/Reset input filed.')

        # - Build
        self.addWidget(QtGui.QLabel('Glyph tagging:'), 1, 0, 1, 9)
        self.addWidget(self.edt_tagString, 2, 0, 1, 9)
        self.addWidget(self.btn_tagGlyph, 3, 0, 1, 3)
        self.addWidget(self.btn_tagWindow, 3, 3, 1, 3)
        self.addWidget(self.btn_tagSelection, 3, 6, 1, 3)
        self.addWidget(QtGui.QLabel('Node naming:'), 4, 0, 1, 9)
        self.addWidget(self.edt_tagStringNode, 5, 0, 1, 9)
        self.addWidget(self.btn_tagNodes, 6, 0, 1, 3)
        self.addWidget(self.btn_tagWindowNodes, 6, 3, 1, 3)
        self.addWidget(self.btn_tagNodesClear, 6, 6, 1, 3)
Beispiel #23
0
    def setTree(self, data, reset=False):
        self.blockSignals(True)
        self.clear()
        header_row = ['Layer/Zone', 'Position', 'Width', 'Type']
        self.setHeaderLabels(header_row)

        for key, value in data.iteritems():
            master = QtGui.QTreeWidgetItem(self, [key])

            for zoneTuple in value:
                zoneData = QtGui.QTreeWidgetItem(master, [
                    zoneTuple[2], zoneTuple[0], zoneTuple[1],
                    ('B: %s', 'T: %s')[zoneTuple[1] > 0] % zoneTuple[0]
                ])
                zoneData.setFlags(zoneData.flags() | QtCore.Qt.ItemIsEditable)

        self.blockSignals(False)
Beispiel #24
0
    def __init__(self):
        super(tool_tab, self).__init__()

        layoutV = QtGui.QVBoxLayout()
        splitter = QtGui.QSplitter(QtCore.Qt.Vertical)

        self.fontMetrics = WFontMetrics(self)
        self.fontZones = WFontZones(self)

        splitter.addWidget(self.fontMetrics)
        splitter.addWidget(self.fontZones)

        splitter.setStretchFactor(0, 1)
        splitter.setStretchFactor(1, 2)

        layoutV.addWidget(splitter)
        self.setLayout(layoutV)
Beispiel #25
0
	def __init__(self, aux):
		super(KernTableWidget, self).__init__()

		# - Init
		self.aux = aux
		
		self.flag_valueDefault = QtGui.QColor('black')
		self.flag_valueChanged = QtGui.QColor('red')
		
		self.values_changed = []
		self.itemChanged.connect(self.kern_value_changed)
		self.selectionModel().selectionChanged.connect(self.selection_status_changed)


		# - Styling
		self.header = self.horizontalHeader()
		self.setShowGrid(True)
Beispiel #26
0
    def __init__(self):
        super(basicOps, self).__init__()

        # - Widgets
        self.edt_shapeName = MLineEdit()
        self.edt_shapeName.setPlaceholderText('Element name')

        self.btn_setShapeName = QtGui.QPushButton('&Set Name')
        self.btn_unlinkShape = QtGui.QPushButton('&Unlink References')
        self.btn_delShape = QtGui.QPushButton('&Remove')
        self.btn_resetShape = QtGui.QPushButton('Reset &transform')
        self.btn_reorderShape = QtGui.QPushButton('&Auto Reorder Layer')
        self.btn_roundShape = QtGui.QPushButton('R&ound transform')
        self.btn_ungroupAllShapes = QtGui.QPushButton('Un&group All')

        self.btn_setShapeName.clicked.connect(self.shape_setname)
        self.btn_unlinkShape.clicked.connect(self.shape_unlink)
        self.btn_delShape.clicked.connect(self.shape_delete)
        self.btn_resetShape.clicked.connect(self.shape_resetTransform)
        self.btn_roundShape.clicked.connect(self.shape_roundTransform)
        self.btn_reorderShape.clicked.connect(self.shape_autoReorder)
        self.btn_ungroupAllShapes.clicked.connect(self.shape_ungroupAll)

        self.addWidget(self.edt_shapeName, 0, 0, 1, 6)
        self.addWidget(self.btn_setShapeName, 1, 0, 1, 3)
        self.addWidget(self.btn_unlinkShape, 1, 3, 1, 3)
        self.addWidget(self.btn_delShape, 2, 0, 1, 3)
        self.addWidget(self.btn_resetShape, 2, 3, 1, 3)

        self.addWidget(self.btn_reorderShape, 3, 0, 1, 6)
        self.addWidget(self.btn_roundShape, 4, 0, 1, 3)
        self.addWidget(self.btn_ungroupAllShapes, 4, 3, 1, 3)
Beispiel #27
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)
Beispiel #28
0
    def setTree(self, data, headers):
        self.blockSignals(True)
        self.clear()
        self.setHeaderLabels(headers)

        # - Insert
        for key, value in data.items():
            master = QtGui.QTreeWidgetItem(self, [key])

            for sub in value:
                new_item = QtGui.QTreeWidgetItem(master, sub)

        # - Fit data
        for c in range(self.columnCount):
            self.resizeColumnToContents(c)

        self.expandAll()
        self.blockSignals(False)
Beispiel #29
0
    def __init__(self):
        super(tool_tab, self).__init__()
        layoutV = QtGui.QVBoxLayout()

        self.kernGroups = WKernGroups(self)

        if system() != 'Darwin':  # - Menubar only on Windows
            self.ActionsMenu = QtGui.QMenuBar(self)
            self.ActionsMenu.addMenu(self.kernGroups.menu_data)
            self.ActionsMenu.addMenu(self.kernGroups.menu_class)
            self.ActionsMenu.addMenu(self.kernGroups.menu_type)
            self.ActionsMenu.addMenu(self.kernGroups.menu_memb)
            layoutV.setMenuBar(self.ActionsMenu)

        layoutV.addWidget(self.kernGroups)

        # - Build ---------------------------
        self.setLayout(layoutV)
Beispiel #30
0
    def __init__(self):
        super(tool_tab, self).__init__()
        layoutV = QtGui.QVBoxLayout()

        self.Importer = TRImpEx()
        layoutV.addWidget(self.Importer)

        # - Build ---------------------------
        self.setLayout(layoutV)