def __init__(self): super(typerig_filter, self).__init__() #self.setStyleSheet(ss_Toolbox_none) # - 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_ActiveLayer.setCheckState(QtCore.Qt.Checked) #self.chk_ActiveLayer.setStyleSheet('QCheckBox::indicator:checked {background-color: limegreen; border: 1px Solid limegreen;}') self.chk_ActiveLayer.stateChanged.connect(self.refreshLayers) self.chk_Masters.stateChanged.connect(self.refreshLayers) self.chk_Masks.stateChanged.connect(self.refreshLayers) self.chk_Service.stateChanged.connect(self.refreshLayers) self.refreshLayers() # - 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.refreshMode) self.rad_window.toggled.connect(self.refreshMode) self.rad_selection.toggled.connect(self.refreshMode) self.rad_font.toggled.connect(self.refreshMode) 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') # - Fold Button --------------------- 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_fold.clicked.connect(self.fold) self.btn_unfold.clicked.connect(self.fold) self.flag_fold = False # - Tabs -------------------------- # -- Dynamically load all tabs self.tabs = QtGui.QTabWidget() self.tabs.setTabPosition(QtGui.QTabWidget.East) # --- 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) # - 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) # -- 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.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(300, 300, 240, 440) self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint) # Always on top!! #self.setMinimumWidth(300) 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_coordArrays = {} self.data_stems = {} self.ratio_source = {} self.ratio_target = {} # - 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.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.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(self.get_coordArrays) 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_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(False) self.rad_selection.setEnabled(False) self.rad_font.setEnabled(False) 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.btn_tableSave, 0, 3, 1, 1) layoutV.addWidget(self.btn_tableLoad, 0, 4, 1, 4) 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, 2) layoutV.addWidget(self.btn_getArrays, 1, 3, 1, 6) 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!! self.show()