def __init__(self): super(TRTransformCtrl, self).__init__() # - Combos self.rad_or = QtGui.QRadioButton('ORG') self.rad_bl = QtGui.QRadioButton('BL') self.rad_tl = QtGui.QRadioButton('TL') self.rad_br = QtGui.QRadioButton('BR') self.rad_tr = QtGui.QRadioButton('TR') self.rad_ce = QtGui.QRadioButton('CEN') # - Spinboxes self.spb_scale_x = QtGui.QSpinBox() self.spb_scale_y = QtGui.QSpinBox() self.spb_translate_x = QtGui.QSpinBox() self.spb_translate_y = QtGui.QSpinBox() self.spb_shear = QtGui.QSpinBox() self.spb_rotate = QtGui.QSpinBox() self.spb_scale_x.setMinimum(0) self.spb_scale_y.setMinimum(0) self.spb_translate_x.setMinimum(-9999) self.spb_translate_y.setMinimum(-9999) self.spb_shear.setMinimum(-90) self.spb_rotate.setMinimum(-360) self.spb_scale_x.setMaximum(999) self.spb_scale_y.setMaximum(999) self.spb_translate_x.setMaximum(9999) self.spb_translate_y.setMaximum(9999) self.spb_shear.setMaximum(90) self.spb_rotate.setMaximum(360) self.reset() # - Build self.lay_controls = QtGui.QGridLayout() self.lay_controls.addWidget(QtGui.QLabel('Scale X:'), 0, 0, 1, 1) self.lay_controls.addWidget(QtGui.QLabel('Scale Y:'), 0, 1, 1, 1) self.lay_controls.addWidget(QtGui.QLabel('Trans. X:'), 0, 2, 1, 1) self.lay_controls.addWidget(QtGui.QLabel('Trans. Y:'), 0, 3, 1, 1) self.lay_controls.addWidget(QtGui.QLabel('Shear:'), 0, 4, 1, 1) self.lay_controls.addWidget(QtGui.QLabel('Rotate:'), 0, 5, 1, 1) self.lay_controls.addWidget(self.spb_scale_x, 1, 0, 1, 1) self.lay_controls.addWidget(self.spb_scale_y, 1, 1, 1, 1) self.lay_controls.addWidget(self.spb_translate_x, 1, 2, 1, 1) self.lay_controls.addWidget(self.spb_translate_y, 1, 3, 1, 1) self.lay_controls.addWidget(self.spb_shear, 1, 4, 1, 1) self.lay_controls.addWidget(self.spb_rotate, 1, 5, 1, 1) self.lay_controls.addWidget(self.rad_or, 2, 0, 1, 1) self.lay_controls.addWidget(self.rad_bl, 2, 1, 1, 1) self.lay_controls.addWidget(self.rad_tl, 2, 2, 1, 1) self.lay_controls.addWidget(self.rad_br, 2, 3, 1, 1) self.lay_controls.addWidget(self.rad_tr, 2, 4, 1, 1) self.lay_controls.addWidget(self.rad_ce, 2, 5, 1, 2) self.setLayout(self.lay_controls)
def __init__(self): super(typerig_Panel, self).__init__() # - Init ---------------------------- #self.setStyleSheet(ss_Toolbox_none) self.layers_selected = [] # - Dialogs ------------------------- self.layer_dialog = dlg_LayerSelect(self, pMode) # - Layers -------------------------- self.chk_ActiveLayer = QtGui.QCheckBox('Active') self.chk_Masters = QtGui.QCheckBox('Masters') self.chk_Masks = QtGui.QCheckBox('Masks') self.chk_Service = QtGui.QCheckBox('Services') self.chk_Selected = QtGui.QCheckBox('Selected') self.chk_ActiveLayer.setCheckState(QtCore.Qt.Checked) self.chk_ActiveLayer.stateChanged.connect(self.layers_refresh) self.chk_Masters.stateChanged.connect(self.layers_refresh) self.chk_Masks.stateChanged.connect(self.layers_refresh) self.chk_Service.stateChanged.connect(self.layers_refresh) self.chk_Selected.stateChanged.connect(self.layers_refresh) self.layers_refresh() # - Glyphs -------------------------- self.rad_glyph = QtGui.QRadioButton('Glyph') self.rad_window = QtGui.QRadioButton('Window') self.rad_selection = QtGui.QRadioButton('Selection') self.rad_font = QtGui.QRadioButton('Font') self.rad_glyph.toggled.connect(self.mode_refresh) self.rad_window.toggled.connect(self.mode_refresh) self.rad_selection.toggled.connect(self.mode_refresh) self.rad_font.toggled.connect(self.mode_refresh) self.rad_glyph.setChecked(True) self.rad_glyph.setEnabled(True) self.rad_window.setEnabled(True) self.rad_selection.setEnabled(True) self.rad_font.setEnabled(False) self.rad_glyph.setToolTip('Affect current glyph') self.rad_window.setToolTip('Affect glyphs in active window') self.rad_selection.setToolTip('Affect selected glyphs') self.rad_font.setToolTip('Affect the entire font') # - Buttons ------------------------ self.btn_layersSelect = QtGui.QPushButton('Layers') self.btn_fold = QtGui.QPushButton('^') self.btn_unfold = QtGui.QPushButton('Restore Panel') self.btn_fold.setFixedHeight(self.chk_ActiveLayer.sizeHint.height() * 2.5) self.btn_fold.setFixedWidth(self.chk_ActiveLayer.sizeHint.height()) self.btn_unfold.setFixedHeight(self.chk_ActiveLayer.sizeHint.height() + 5) self.btn_fold.setToolTip('Fold Panel.') self.btn_unfold.setToolTip('Unfold Panel.') self.btn_layersSelect.setToolTip('Select layers for processing.') self.btn_fold.clicked.connect(self.fold) self.btn_unfold.clicked.connect(self.fold) self.flag_fold = False # - Tabs -------------------------- panel_vers = { n: OrderedDict([('Panel', toolName), ('Version', eval('Panel.%s.app_version' % toolName))]) for n, toolName in enumerate(Panel.modules) } self.options = TRTableView(panel_vers) self.options.verticalHeader().hide() # -- Dynamically load all tabs self.tabs = TRVTabWidget() # --- Load all tabs from this directory as modules. Check __init__.py # --- <dirName>.modules tabs/modules manifest in list format for toolName in Panel.modules: if ignorePanel not in toolName: self.tabs.addTab(eval('Panel.%s.tool_tab()' % toolName), toolName) # --- Add options tab self.tabs.addTab(self.options, '...') # - Layouts ------------------------------- layoutV = QtGui.QVBoxLayout() layoutV.setContentsMargins(0, 0, 0, 0) self.lay_controller = QtGui.QGridLayout() self.fr_controller = QtGui.QFrame() self.lay_controller.setContentsMargins(15, 5, 5, 3) self.lay_controller.setSpacing(5) # -- Build layouts ------------------------------- self.lay_controller.addWidget(self.chk_ActiveLayer, 0, 0, 1, 1) self.lay_controller.addWidget(self.chk_Masters, 0, 1, 1, 1) self.lay_controller.addWidget(self.chk_Masks, 0, 2, 1, 1) #self.lay_controller.addWidget(self.chk_Service, 0, 3, 1, 1) self.lay_controller.addWidget(self.chk_Selected, 0, 3, 1, 1) self.lay_controller.addWidget(self.btn_fold, 0, 4, 2, 1) self.lay_controller.addWidget(self.rad_glyph, 1, 0, 1, 1) self.lay_controller.addWidget(self.rad_window, 1, 1, 1, 1) self.lay_controller.addWidget(self.rad_selection, 1, 2, 1, 1) self.lay_controller.addWidget(self.rad_font, 1, 3, 1, 1) layoutV.addWidget(self.btn_unfold) self.fr_controller.setLayout(self.lay_controller) layoutV.addWidget(self.fr_controller) layoutV.addWidget(self.tabs) self.btn_unfold.hide() # - Set Widget ------------------------------- self.setLayout(layoutV) self.setWindowTitle('%s %s' % (app_name, app_version)) self.setGeometry(100, 100, 300, 600) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # Always on top!! # !!! Hotfix FL7 7355 self.setMinimumSize(330, self.sizeHint.height()) self.show()
def __init__(self): super(dlg_DeltaMachine, self).__init__() # - Init #self.setStyleSheet(ss_controls) self.pMode = 0 self.active_font = pFont() #self.data_glyphs = getProcessGlyphs(self.pMode) self.data_PointArrays = {} self.data_stems = {} self.ratio_source = {} self.ratio_target = {} self.italic_angle = 0 # - Basic Widgets # -- Master table self.tab_masters = WTableView(table_dict) self.table_populate() self.tab_masters.selectionModel().selectionChanged.connect( self.set_sliders) # -- Combos self.cmb_infoArrays = QtGui.QComboBox() # -- Buttons self.btn_execute = QtGui.QPushButton('Execute transformation') self.btn_tableRefresh = QtGui.QPushButton('Reset') self.chk_tableLock = QtGui.QPushButton('Lock') self.btn_tableSave = QtGui.QPushButton('Save') self.btn_tableLoad = QtGui.QPushButton('Load') self.btn_getVstems = QtGui.QPushButton('Get V-stems') self.btn_getHstems = QtGui.QPushButton('Get H-stems') self.btn_tableCheck = QtGui.QPushButton('Check All') self.btn_resetT = QtGui.QPushButton('Reset dX dY') self.btn_getTx = QtGui.QPushButton('Get V[dX]') self.btn_getTy = QtGui.QPushButton('Get H[dY]') self.btn_getArrays = QtGui.QPushButton('Get Master Sources') self.btn_getPart = QtGui.QPushButton('Get Part') self.btn_getWhole = QtGui.QPushButton('Get Whole') self.btn_pushWidthPW = QtGui.QPushButton('Eval Width') self.btn_pushHeightPW = QtGui.QPushButton('Eval Height') self.btn_pushWidth = QtGui.QPushButton('Set Width Ratio') self.btn_pushHeight = QtGui.QPushButton('Set Height Ratio') self.btn_tableCheck.clicked.connect(self.table_check_all) self.btn_tableRefresh.clicked.connect(self.table_populate) self.btn_tableSave.clicked.connect(self.file_save_deltas) self.btn_tableLoad.clicked.connect(self.file_load_deltas) self.btn_execute.clicked.connect(self.table_execute) self.chk_tableLock.clicked.connect( lambda: self.tab_masters.lockTable()) self.btn_getPart.clicked.connect(lambda: self.get_ratio(True)) self.btn_getWhole.clicked.connect(lambda: self.get_ratio(False)) self.btn_pushWidthPW.clicked.connect( lambda: self.push_ratio(False, True)) self.btn_pushHeightPW.clicked.connect( lambda: self.push_ratio(True, True)) self.btn_pushWidth.clicked.connect( lambda: self.push_ratio(False, False)) self.btn_pushHeight.clicked.connect( lambda: self.push_ratio(True, False)) self.btn_getArrays.clicked.connect(lambda: self.get_PointArrays(None)) self.btn_getVstems.clicked.connect(lambda: self.get_Stems(True)) self.btn_getHstems.clicked.connect(lambda: self.get_Stems(False)) self.btn_getTx.clicked.connect(lambda: self.get_Stems(True, False)) self.btn_getTy.clicked.connect(lambda: self.get_Stems(False, False)) # -- Check buttons self.chk_italic = QtGui.QPushButton('Italic') self.chk_single = QtGui.QPushButton('Anisotropic') self.chk_preview = QtGui.QPushButton('Live Preview') self.chk_boundry = QtGui.QPushButton('Fix Boundry') self.chk_single.setToolTip( 'Active: Use X and Y to control interpolation.') self.chk_tableLock.setCheckable(True) self.chk_single.setCheckable(True) self.chk_italic.setCheckable(True) self.chk_preview.setCheckable(True) self.chk_boundry.setCheckable(True) self.chk_single.setChecked(False) self.chk_italic.setChecked(False) self.chk_preview.setChecked(False) self.chk_boundry.setChecked(True) # -- Radio self.rad_glyph = QtGui.QRadioButton('Glyph') self.rad_window = QtGui.QRadioButton('Window') self.rad_selection = QtGui.QRadioButton('Selection') self.rad_font = QtGui.QRadioButton('Font') self.rad_glyph.setChecked(True) self.rad_glyph.setEnabled(True) self.rad_window.setEnabled(True) self.rad_selection.setEnabled(True) self.rad_font.setEnabled(True) self.rad_glyph.toggled.connect(self.table_refresh) self.rad_window.toggled.connect(self.table_refresh) self.rad_selection.toggled.connect(self.table_refresh) self.rad_font.toggled.connect(self.table_refresh) # -- Sliders self.mixer_dx = TRSliderCtrl('1', '1000', '0', 1) self.mixer_dy = TRSliderCtrl('1', '1000', '0', 1) self.scaler_dx = TRSliderCtrl('1', '200', '100', 1) self.scaler_dy = TRSliderCtrl('1', '200', '100', 1) self.mixer_dx.sld_axis.valueChanged.connect(lambda: self.process_scale( eGlyph(), anisotropic=self.chk_single.isChecked(), live_update=self.chk_preview.isChecked())) self.mixer_dy.sld_axis.valueChanged.connect(lambda: self.process_scale( eGlyph(), anisotropic=self.chk_single.isChecked(), live_update=self.chk_preview.isChecked())) self.scaler_dx.sld_axis.valueChanged.connect( lambda: self.process_scale(eGlyph(), anisotropic=self.chk_single.isChecked(), live_update=self.chk_preview.isChecked( ))) self.scaler_dy.sld_axis.valueChanged.connect( lambda: self.process_scale(eGlyph(), anisotropic=self.chk_single.isChecked(), live_update=self.chk_preview.isChecked( ))) # - Build layout layoutV = QtGui.QGridLayout() layoutV.addWidget(QtGui.QLabel('Preferences:'), 0, 0, 1, 1) layoutV.addWidget(self.btn_tableCheck, 0, 1, 1, 2) layoutV.addWidget(self.chk_tableLock, 0, 3, 1, 2) layoutV.addWidget(self.btn_tableSave, 0, 5, 1, 1) layoutV.addWidget(self.btn_tableLoad, 0, 6, 1, 2) layoutV.addWidget(self.btn_tableRefresh, 0, 8, 1, 1) layoutV.addWidget(QtGui.QLabel('Source:'), 0, 10, 1, 1, QtCore.Qt.AlignRight) layoutV.addWidget(self.btn_getVstems, 0, 11, 1, 2) layoutV.addWidget(self.btn_getHstems, 0, 13, 1, 2) layoutV.addWidget(QtGui.QLabel('Ratio BBOX:'), 0, 15, 1, 1, QtCore.Qt.AlignRight) layoutV.addWidget(self.btn_getPart, 0, 16, 1, 1) layoutV.addWidget(self.btn_getWhole, 0, 17, 1, 1) layoutV.addWidget(self.btn_pushWidthPW, 0, 18, 1, 1) layoutV.addWidget(self.btn_pushHeightPW, 0, 19, 1, 1) layoutV.addWidget(QtGui.QLabel('Master data:'), 1, 0, 1, 1) layoutV.addWidget(self.cmb_infoArrays, 1, 1, 1, 4) layoutV.addWidget(self.btn_getArrays, 1, 5, 1, 4) layoutV.addWidget(QtGui.QLabel('Target:'), 1, 10, 1, 1, QtCore.Qt.AlignRight) layoutV.addWidget(self.btn_getTx, 1, 11, 1, 2) layoutV.addWidget(self.btn_getTy, 1, 13, 1, 2) layoutV.addWidget(QtGui.QLabel('Populate:'), 1, 15, 1, 1, QtCore.Qt.AlignRight) layoutV.addWidget(self.btn_pushWidth, 1, 16, 1, 2) layoutV.addWidget(self.btn_pushHeight, 1, 18, 1, 2) layoutV.addWidget(self.tab_masters, 2, 0, 15, 20) layoutV.addWidget(QtGui.QLabel('LERP [dX]:'), 23, 0, 1, 1, QtCore.Qt.AlignTop) layoutV.addLayout(self.mixer_dx, 23, 1, 1, 4) layoutV.addWidget(QtGui.QLabel('[dY]:'), 23, 5, 1, 1, QtCore.Qt.AlignTop | QtCore.Qt.AlignRight) layoutV.addLayout(self.mixer_dy, 23, 6, 1, 4) layoutV.addWidget(QtGui.QLabel('Width:'), 23, 10, 1, 1, QtCore.Qt.AlignTop | QtCore.Qt.AlignRight) layoutV.addLayout(self.scaler_dx, 23, 11, 1, 4) layoutV.addWidget(QtGui.QLabel('Height:'), 23, 15, 1, 1, QtCore.Qt.AlignTop | QtCore.Qt.AlignRight) layoutV.addLayout(self.scaler_dy, 23, 16, 1, 4) layoutV.addWidget(QtGui.QLabel('Process:'), 25, 0, 1, 1) layoutV.addWidget(self.rad_glyph, 25, 1, 1, 1) layoutV.addWidget(self.rad_window, 25, 2, 1, 1) layoutV.addWidget(self.rad_selection, 25, 3, 1, 1) layoutV.addWidget(self.rad_font, 25, 4, 1, 1) layoutV.addWidget(QtGui.QLabel('Mode:'), 25, 5, 1, 1) layoutV.addWidget(self.chk_single, 25, 6, 1, 2) layoutV.addWidget(self.chk_italic, 25, 8, 1, 2) layoutV.addWidget(self.chk_boundry, 25, 10, 1, 2) layoutV.addWidget(self.chk_preview, 25, 12, 1, 3) layoutV.addWidget(self.btn_execute, 25, 15, 1, 5) # - Set Widget self.setLayout(layoutV) self.setWindowTitle('%s %s' % (app_name, app_version)) self.setGeometry(300, 300, 1150, 700) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # Always on top!! # !!! Hotfix FL7 7355 self.setMinimumSize(980, self.sizeHint.height()) self.show()