def createWidget(self, menu): """ Overrides base QWidgetAction createWidget function :param menu: QMenu :return: QWidget """ widget = QFrame(self.parent()) widget.setObjectName('filterByAction') facet = self._facet name = facet.get('name', '') count = str(facet.get('count', 0)) title = name.replace('.', '').title() cbx = checkbox.BaseCheckBox(parent=widget) cbx.setAttribute(Qt.WA_TransparentForMouseEvents) cbx.setText(title) cbx.installEventFilter(self) cbx.setChecked(self._checked) label2 = label.BaseLabel(parent=widget) label2.setObjectName('actionCounter') label2.setText(count) layout = layouts.HorizontalLayout(spacing=0, margins=(0, 0, 0, 0)) layout.addWidget(cbx, stretch=1) layout.addWidget(label2) widget.setLayout(layout) cbx.toggled.connect(self._on_triggered) return widget
def ui(self): super(RenamerView, self).ui() renamer_widget = QWidget() renamer_widget.setLayout( layouts.VerticalLayout(spacing=0, margins=(0, 0, 0, 0))) renamer_widget.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) self.main_layout.addWidget(renamer_widget) rename_layout = layouts.HorizontalLayout(spacing=2, margins=(0, 0, 0, 0)) rename_layout.setAlignment(Qt.AlignLeft) renamer_widget.layout().addLayout(rename_layout) self._base_name_cbx = checkbox.BaseCheckBox(parent=self) rename_layout.addWidget(self._base_name_cbx) self._renamer_line = lineedit.BaseLineEdit(parent=self) self._renamer_line.setPlaceholderText('New Name') rename_layout.addWidget(self._renamer_line) reg_ex = QRegExp("^(?!^_)[a-zA-Z_]+") text_validator = QRegExpValidator(reg_ex, self._renamer_line) self._renamer_line.setValidator(text_validator) self._renamer_btn = buttons.BaseButton(parent=self) self._renamer_btn.setIcon(resources.icon('rename')) rename_layout.addWidget(self._renamer_btn)
def ui(self): super(RotationAxisView, self).ui() set_rot_top_layout = layouts.HorizontalLayout(spacing=5) self._set_rot_axis_box = combobox.BaseComboBox(parent=self) set_rot_top_layout.addWidget(self._set_rot_axis_box) for rotAxis in ROTATION_AXES: self._set_rot_axis_box.addItem(rotAxis) set_rot_axis_common_btn = buttons.BaseButton(' <', parent=self) set_rot_axis_common_btn.setMaximumWidth(45) set_rot_axis_common_btn.setStyleSheet( "QPushButton::menu-indicator{image:url(none.jpg);}") self._set_rot_axis_common_btn_menu = QMenu(self) # self._set_common_rotation_axis() set_rot_axis_common_btn.setMenu(self._set_rot_axis_common_btn_menu) set_rot_top_layout.addWidget(set_rot_axis_common_btn) set_rot_axis_btn_layout = layouts.HorizontalLayout() set_rot_axis_btn_layout.setAlignment(Qt.AlignCenter) self._set_rot_axis_btn = buttons.BaseButton('Apply', parent=self) self._set_rot_axis_btn.setIcon(resources.icon('ok')) self._affect_children_cbx = checkbox.BaseCheckBox('Affect Children', parent=self) self._set_rot_axis_btn.setMaximumWidth(100) set_rot_axis_btn_layout.addWidget(self._set_rot_axis_btn) set_rot_axis_btn_layout.addWidget(self._affect_children_cbx) self.main_layout.addLayout(set_rot_top_layout) self.main_layout.addLayout(set_rot_axis_btn_layout)
def ui(self): super(ReplacerView, self).ui() replace_layout = layouts.HorizontalLayout(spacing=2, margins=(0, 0, 0, 0)) replace_layout.setAlignment(Qt.AlignLeft) self.main_layout.addLayout(replace_layout) self._find_replace_cbx = checkbox.BaseCheckBox(parent=self) replace_layout.addWidget(self._find_replace_cbx) self._replace_line = lineedit.BaseLineEdit(parent=self) self._replace_line.setPlaceholderText('Search') self._with_line = lineedit.BaseLineEdit(parent=self) self._with_line.setPlaceholderText('Replace') reg_ex = QRegExp("[a-zA-Z_0-9]+") text_validator = QRegExpValidator(reg_ex, self._replace_line) self._replace_line.setValidator(text_validator) self._with_line.setValidator(text_validator) self._search_replace_btn = buttons.BaseButton(parent=self) self._search_replace_btn.setIcon(resources.icon('find_replace')) replace_layout.addWidget(self._replace_line) replace_layout.addStretch() replace_layout.addWidget(self._with_line) replace_layout.addWidget(self._search_replace_btn) self._replace_line.setEnabled(False) self._with_line.setEnabled(False)
def ui(self): super(FallofCurveWidget, self).ui() base_rect = QRect(0, 0, self._base_size, self._base_size) self._scene = CurveNodeScene(base_rect) self._scene.base_size = self._base_size self._view = CurveNodeView(parent=self) self._view.setScene(self._scene) self._view.setGeometry(base_rect) self._menu_bar = QMenuBar(self) self._menu_bar.addAction(self._scene.undo_action) self._menu_bar.addAction(self._scene.redo_action) bottom_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) self._bezier_type_combo = combobox.BaseComboBox(parent=self) self._snap_cbx = checkbox.BaseCheckBox('Snap', parent=self) bottom_layout.addWidget(self._bezier_type_combo) bottom_layout.addWidget(self._snap_cbx) self.main_layout.addWidget(self._menu_bar) self.main_layout.addWidget(dividers.Divider(parent=self)) self.main_layout.addWidget(self._view) self.main_layout.addWidget(dividers.Divider(parent=self)) self.main_layout.addLayout(bottom_layout)
def createWidget(self, menu): """ Overrides base QWidgetAction createWidget function :param menu: QMenu """ widget = QFrame(self.parent()) widget.setObjectName('filterByAction') title = self._name label = checkbox.BaseCheckBox(parent=widget) label.setText(title) label.setAttribute(Qt.WA_TransparentForMouseEvents) label.toggled.connect(self._on_triggered) label.setStyleSheet(""" #QCheckBox::indicator:checked { image: url(none.png) } QCheckBox::indicator:unchecked { image: url(none.png) } """) action_layout = layouts.HorizontalLayout(margins=(0, 0, 0, 0)) action_layout.addWidget(label, stretch=1) widget.setLayout(action_layout) return widget
def ui(self): super(AutoRenameWidget, self).ui() top_layout = layouts.HorizontalLayout(spacing=2, margins=(0, 0, 0, 0)) self._unique_id_cbx = checkbox.BaseCheckBox('Unique Id') self._last_joint_end_cbx = checkbox.BaseCheckBox('Make Last Joint End') top_layout.addStretch() top_layout.addWidget(self._unique_id_cbx) top_layout.addWidget(self._last_joint_end_cbx) self.main_layout.addLayout(top_layout) main_splitter = QSplitter(Qt.Horizontal) main_splitter.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) self.main_layout.addWidget(main_splitter) auto_widget = QWidget() auto_layout = layouts.VerticalLayout(spacing=0, margins=(0, 0, 0, 0)) auto_widget.setLayout(auto_layout) main_splitter.addWidget(auto_widget) self._rules_list = QTreeWidget(self) self._rules_list.setHeaderHidden(True) self._rules_list.setSortingEnabled(True) self._rules_list.setRootIsDecorated(False) self._rules_list.setSelectionMode(QAbstractItemView.SingleSelection) self._rules_list.sortByColumn(0, Qt.AscendingOrder) self._rules_list.setUniformRowHeights(True) self._rules_list.setAlternatingRowColors(True) auto_layout.addWidget(self._rules_list) auto_w = QWidget() self.auto_l = layouts.VerticalLayout(spacing=0, margins=(0, 0, 0, 0)) auto_w.setLayout(self.auto_l) auto_w.setMinimumWidth(200) main_splitter.addWidget(auto_w) self.main_auto_layout = QFormLayout() self.auto_l.addLayout(self.main_auto_layout) self._rename_btn = buttons.BaseButton('Rename') self._rename_btn.setIcon(resources.icon('rename')) self.main_layout.addLayout(dividers.DividerLayout()) self.main_layout.addWidget(self._rename_btn)
def ui(self): super(CheckBoxExample, self).ui() maya_icon = tpDcc.ResourcesMgr().icon('maya') nuke_icon = tpDcc.ResourcesMgr().icon('nuke') houdini_icon = tpDcc.ResourcesMgr().icon('houdini') grid_lyt = layouts.GridLayout() for index, (text, state) in enumerate( [('Unchecked', Qt.Unchecked), ('Checked', Qt.Checked), ('Partially', Qt.PartiallyChecked)]): normal_cbx = checkbox.BaseCheckBox(text) normal_cbx.setCheckState(state) disabled_cbx = checkbox.BaseCheckBox(text) disabled_cbx.setCheckState(state) disabled_cbx.setEnabled(False) grid_lyt.addWidget(normal_cbx, 0, index) grid_lyt.addWidget(disabled_cbx, 1, index) icon_lyt = layouts.HorizontalLayout() for text, icon in [('maya', maya_icon), ('Nuke', nuke_icon), ('Houdini', houdini_icon)]: cbx_icon = checkbox.BaseCheckBox(text) cbx_icon.setIcon(icon) icon_lyt.addWidget(cbx_icon) bind_cbx = checkbox.BaseCheckBox('Data Bind') lbl = label.BaseLabel() btn = buttons.BaseButton('Change State') btn.clicked.connect(lambda: self.set_field('checked', not self.field('checked'))) self.register_field('checked', True) self.register_field('checked_text', lambda: 'Yes!' if self.field('checked') else 'No!!') self.bind('checked', bind_cbx, 'checked', signal='stateChanged') self.bind('checked_text', lbl, 'text') self.main_layout.addWidget(dividers.Divider('Basic')) self.main_layout.addLayout(grid_lyt) self.main_layout.addWidget(dividers.Divider('Icon')) self.main_layout.addLayout(icon_lyt) self.main_layout.addWidget(dividers.Divider('Data Bind')) self.main_layout.addWidget(bind_cbx) self.main_layout.addWidget(lbl) self.main_layout.addWidget(btn) self.main_layout.addStretch()
def ui(self): super(SkinningWidget, self).ui() self._average_falloff_widget = QWidget() average_falloff_layout = layouts.VerticalLayout(spacing=2, margins=(5, 5, 5, 5)) self._average_falloff_widget.setLayout(average_falloff_layout) self._average_falloff_curve = fallofcurve.FallofCurveWidget( parent=self) average_falloff_layout.addWidget(self._average_falloff_curve) self._mirror_auto_assign_joints_labels_cbx = checkbox.BaseCheckBox( 'Auto Assign Labels', self) self._copy_skin_weights_auto_assign_joints_labels_cbx = checkbox.BaseCheckBox( 'Auto Assign Labels', self) self._transfer_skin_uvs_auto_assign_joints_labels_cbx = checkbox.BaseCheckBox( 'Auto Assign Labels', self) self._clean_skin_mesh_auto_assign_joints_labels_cbx = checkbox.BaseCheckBox( 'Auto Assign Labels', self) self._extract_skin_faces_auto_assign_joints_labels_cbx = checkbox.BaseCheckBox( 'Auto Assign Labels', self) self._distance_widget = QWidget() distance_layout = layouts.VerticalLayout(spacing=2, margins=(5, 5, 5, 5)) self._distance_widget.setLayout(distance_layout) self._distance_average_cbx = checkbox.BaseCheckBox('On Distance', self) self._average_falloff_curve = fallofcurve.FallofCurveWidget( parent=self) distance_layout.addWidget(self._distance_average_cbx) distance_layout.addWidget(self._average_falloff_curve) self._fast_delete_cbx = checkbox.BaseCheckBox('Fast Delete', self) self._average_falloff_widget.setVisible(False) self._mirror_auto_assign_joints_labels_cbx.setVisible(False) self._copy_skin_weights_auto_assign_joints_labels_cbx.setVisible(False) self._transfer_skin_uvs_auto_assign_joints_labels_cbx.setVisible(False) self._clean_skin_mesh_auto_assign_joints_labels_cbx.setVisible(False) self._extract_skin_faces_auto_assign_joints_labels_cbx.setVisible( False) self._distance_widget.setVisible(False) self._fast_delete_cbx.setVisible(False) self.main_layout.addWidget(self._average_falloff_widget) self.main_layout.addWidget(self._mirror_auto_assign_joints_labels_cbx) self.main_layout.addWidget( self._copy_skin_weights_auto_assign_joints_labels_cbx) self.main_layout.addWidget( self._transfer_skin_uvs_auto_assign_joints_labels_cbx) self.main_layout.addWidget( self._clean_skin_mesh_auto_assign_joints_labels_cbx) self.main_layout.addWidget( self._extract_skin_faces_auto_assign_joints_labels_cbx) self.main_layout.addWidget(self._distance_widget) self.main_layout.addWidget(self._fast_delete_cbx)
def ui(self): super(NamespaceView, self).ui() namespace_layout = layouts.HorizontalLayout(spacing=5, margins=(0, 0, 0, 0)) namespace_layout.setAlignment(Qt.AlignLeft) self.main_layout.addLayout(namespace_layout) self._namespace_cbx = checkbox.BaseCheckBox(parent=self) self._namespace_line = lineedit.BaseLineEdit(parent=self) self._namespace_line.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self._namespace_line.setPlaceholderText('Namespace') self._namespace_combo = combobox.BaseComboBox(parent=self) self._namespace_combo.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self._combo_icons = [resources.icon('add'), resources.icon('trash')] self._namespace_btn = buttons.BaseButton(parent=self) self._namespace_btn.setIcon(self._combo_icons[0]) namespace_layout.addWidget(self._namespace_cbx) namespace_layout.addWidget(self._namespace_line) namespace_layout.addWidget(self._namespace_combo) namespace_layout.addWidget(self._namespace_btn)
def ui(self): super(SymmeshView, self).ui() top_layout = layouts.GridLayout() mirror_axis_lbl = label.BaseLabel('Mirror Axis: ', parent=self) self._axis_radio_grp = QButtonGroup() self._yz_radio = buttons.BaseRadioButton(consts.AXIS[0], parent=self) self._xz_radio = buttons.BaseRadioButton(consts.AXIS[1], parent=self) self._xy_radio = buttons.BaseRadioButton(consts.AXIS[2], parent=self) self._radios = [self._yz_radio, self._xz_radio, self._xy_radio] self._axis_radio_grp.addButton(self._yz_radio) self._axis_radio_grp.addButton(self._xz_radio) self._axis_radio_grp.addButton(self._xy_radio) axis_radio_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) axis_radio_layout.addWidget(self._yz_radio) axis_radio_layout.addWidget(self._xz_radio) axis_radio_layout.addWidget(self._xy_radio) axis_radio_layout.addStretch() global_tolerance_lbl = label.BaseLabel('Global Tolerance: ', parent=self) self._global_tolerance_spn = spinbox.BaseDoubleSpinBox(parent=self) self._global_tolerance_spn.setDecimals(4) self._global_tolerance_spn.setValue(0.0010) top_layout.addWidget(mirror_axis_lbl, 0, 0, Qt.AlignRight) top_layout.addLayout(axis_radio_layout, 0, 1) top_layout.addWidget(global_tolerance_lbl, 1, 0) top_layout.addWidget(self._global_tolerance_spn, 1, 1) options_cbx_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) self._neg_to_pos_cbx = checkbox.BaseCheckBox('Operate -X to +X', parent=self) self._use_pivot_as_origin_cbx = checkbox.BaseCheckBox('Use Pivot as Origin', parent=self) self._use_pivot_as_origin_cbx.setChecked(True) options_cbx_layout.addWidget(self._neg_to_pos_cbx) options_cbx_layout.addItem(QSpacerItem(10, 0, QSizePolicy.Fixed, QSizePolicy.Fixed)) options_cbx_layout.addWidget(self._use_pivot_as_origin_cbx) options_cbx_layout.addStretch() select_geo_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) self._select_geo_line = lineedit.BaseLineEdit(parent=self) self._select_geo_line.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self._select_geo_line.setReadOnly(True) self._select_base_geo_btn = buttons.BaseButton('Select Base Geo', parent=self) self._select_base_geo_btn.setIcon(resources.icon('cursor')) select_geo_layout.addWidget(self._select_geo_line) select_geo_layout.addWidget(self._select_base_geo_btn) self._symmetry_message = message.BaseMessage('', parent=self).small() selection_widget = QWidget(parent=self) selection_layout = layouts.FlowLayout() selection_widget.setLayout(selection_layout) mirror_flip_widget = QWidget(parent=self) mirror_flip_layout = layouts.FlowLayout() mirror_flip_widget.setLayout(mirror_flip_layout) revert_widget = QWidget(parent=self) revert_layout = layouts.FlowLayout() revert_widget.setLayout(revert_layout) self._check_symmetry_btn = buttons.BaseButton('Check Symmetry', parent=self) self._selection_mirror_btn = buttons.BaseButton('Selection Mirror', parent=self) self._select_moved_vertices_btn = buttons.BaseButton('Select Moved Vertices', parent=self) self._mirror_selected_btn = buttons.BaseButton('Mirror Selected', parent=self) self._flip_selected_btn = buttons.BaseButton('Flip Selected', parent=self) self._revert_selected_to_base = buttons.BaseButton('Revert Selected to Base', parent=self) self._revert_bias_slider = sliders.HoudiniDoubleSlider(parent=self, slider_range=[0.0, 1.0]) # TODO: Implement this feature self._live_revert_bias_cbx = checkbox.BaseCheckBox('Live', parent=self) self._live_revert_bias_cbx.setVisible(False) self._check_symmetry_btn.setIcon(resources.icon('refresh')) self._selection_mirror_btn.setIcon(resources.icon('vertex')) self._select_moved_vertices_btn.setIcon(resources.icon('cursor')) self._mirror_selected_btn.setIcon(resources.icon('mirror')) self._flip_selected_btn.setIcon(resources.icon('flip_vertical')) self._revert_selected_to_base.setIcon(resources.icon('rollback')) selection_layout.addWidget(self._check_symmetry_btn) selection_layout.addWidget(self._selection_mirror_btn) selection_layout.addWidget(self._select_moved_vertices_btn) mirror_flip_layout.addWidget(self._mirror_selected_btn) mirror_flip_layout.addWidget(self._flip_selected_btn) revert_layout.addWidget(self._revert_selected_to_base) revert_layout.addWidget(self._revert_bias_slider) revert_layout.addWidget(self._live_revert_bias_cbx) self.main_layout.addLayout(top_layout) self.main_layout.addLayout(options_cbx_layout) self.main_layout.addWidget(dividers.Divider()) self.main_layout.addLayout(select_geo_layout) self.main_layout.addWidget(dividers.Divider()) self.main_layout.addWidget(self._symmetry_message) self.main_layout.addWidget(dividers.Divider()) self.main_layout.addWidget(selection_widget) self.main_layout.addWidget(dividers.Divider()) self.main_layout.addWidget(mirror_flip_widget) self.main_layout.addWidget(dividers.Divider()) self.main_layout.addWidget(revert_widget) self.main_layout.addStretch()
def ui(self): super(InterpolatorWidget, self).ui() self.setFixedHeight(self.INTERP_HEIGHT) main_frame = base.BaseFrame(parent=self) main_frame.setFixedHeight(self.INTERP_HEIGHT) self.main_layout.addWidget(main_frame) main_widget = QWidget() main_widget.setLayout( layouts.VerticalLayout(spacing=5, margins=(5, 5, 5, 5))) main_widget.setFixedHeight(150) main_widget.setFixedWidth(400) graphics_scene = QGraphicsScene() graphics_view = QGraphicsView() graphics_view.setScene(graphics_scene) graphics_view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) graphics_view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) graphics_view.setFocusPolicy(Qt.NoFocus) graphics_view.setStyleSheet('QGraphicsView {border-style: none;}') graphics_view.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) main_frame.main_layout.addWidget(graphics_view) self._main_widget_proxy = graphics_scene.addWidget(main_widget) main_widget.setParent(graphics_view) title_layout = layouts.HorizontalLayout() select_layout = layouts.HorizontalLayout() button_layout = layouts.HorizontalLayout() slider_layout = layouts.HorizontalLayout() check_layout = layouts.HorizontalLayout() self._title_line = lineedit.BaseLineEdit(parent=self) self._close_btn = buttons.CloseButton('X', parent=self) title_layout.addWidget(self._title_line) title_layout.addWidget(self._close_btn) self._store_items_btn = buttons.BaseButton('Store Items', parent=self) self._clear_items_btn = buttons.BaseButton('Clear Items', parent=self) select_layout.addStretch() select_layout.addWidget(self._store_items_btn) select_layout.addWidget(self._clear_items_btn) select_layout.addStretch() self._store_start_btn = buttons.BaseButton('Store Start', parent=self) self._reset_item_btn = buttons.BaseButton('Reset', parent=self) self._store_end_btn = buttons.BaseButton('Store End', parent=self) button_layout.addWidget(self._store_start_btn) button_layout.addWidget(self._reset_item_btn) button_layout.addWidget(self._store_end_btn) self._start_label = label.BaseLabel('Start', parent=self) self._slider = sliders.BaseSlider(parent=self) self._slider.setRange(0, 49) self._slider.setOrientation(Qt.Horizontal) self._end_label = label.BaseLabel('End', parent=self) slider_layout.addWidget(self._start_label) slider_layout.addWidget(self._slider) slider_layout.addWidget(self._end_label) self._transforms_cbx = checkbox.BaseCheckBox('Transform', parent=self) self._user_attributes_cbx = checkbox.BaseCheckBox('UD Attributes', parent=self) check_layout.addStretch() check_layout.addWidget(self._transforms_cbx) check_layout.addWidget(self._user_attributes_cbx) check_layout.addStretch() main_widget.layout().addLayout(title_layout) main_widget.layout().addLayout(select_layout) main_widget.layout().addLayout(button_layout) main_widget.layout().addLayout(slider_layout) main_widget.layout().addLayout(check_layout)
def ui(self): super(PrefixSuffixView, self).ui() prefix_layout = layouts.HorizontalLayout(spacing=5, margins=(0, 0, 0, 0)) prefix_layout.setAlignment(Qt.AlignLeft) self.main_layout.addLayout(prefix_layout) self._prefix_cbx = checkbox.BaseCheckBox(parent=self) prefix_layout.addWidget(self._prefix_cbx) self._prefix_line = lineedit.BaseLineEdit(parent=self) self._prefix_line.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self._prefix_line.setPlaceholderText('Prefix') prefix_reg_exp = QRegExp("^(?!^_)[a-zA-Z_]+") prefix_validator = QRegExpValidator(prefix_reg_exp, self._prefix_line) self._prefix_line.setValidator(prefix_validator) self._prefix_combo = combobox.BaseComboBox(parent=self) self._prefix_combo.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) prefix_layout.addWidget(self._prefix_line) prefix_layout.addWidget(self._prefix_combo) self._prefix_btn = buttons.BaseButton(parent=self) self._prefix_btn.setIcon(resources.icon('prefix')) self._remove_prefix_btn = buttons.BaseButton(parent=self) self._remove_prefix_btn.setIcon(resources.icon('trash')) prefix_layout.addWidget(self._prefix_btn) prefix_layout.addWidget(self._remove_prefix_btn) remove_first_layout = layouts.HorizontalLayout(spacing=2, margins=(0, 0, 0, 0)) remove_first_layout.setAlignment(Qt.AlignLeft) self.main_layout.addLayout(remove_first_layout) self._remove_first_cbx = checkbox.BaseCheckBox(parent=self) remove_first_layout.addWidget(self._remove_first_cbx) self._remove_first_lbl = label.BaseLabel('Remove first: ') self._remove_first_spn = spinbox.BaseSpinBox(parent=self) self._remove_first_spn.setFocusPolicy(Qt.NoFocus) self._remove_first_spn.setMinimum(0) self._remove_first_spn.setMaximum(99) last_digits_lbl = label.BaseLabel(' digits', parent=self) remove_first_layout.addWidget(self._remove_first_lbl) remove_first_layout.addWidget(self._remove_first_spn) remove_first_layout.addWidget(last_digits_lbl) self._remove_first_btn = buttons.BaseButton(parent=self) self._remove_first_btn.setIcon(resources.icon('trash')) remove_first_layout.addStretch() remove_first_layout.addWidget(self._remove_first_btn) self.main_layout.addWidget(dividers.Divider(parent=self)) suffix_layout = layouts.HorizontalLayout(spacing=5, margins=(0, 0, 0, 0)) suffix_layout.setAlignment(Qt.AlignLeft) self.main_layout.addLayout(suffix_layout) self._suffix_cbx = checkbox.BaseCheckBox(parent=self) suffix_layout.addWidget(self._suffix_cbx) self._suffix_line = lineedit.BaseLineEdit(parent=self) self._suffix_line.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) suffix_reg_exp = QRegExp("^[a-zA-Z_0-9]+") suffix_validator = QRegExpValidator(suffix_reg_exp, self._suffix_line) self._suffix_line.setValidator(suffix_validator) self._suffix_line.setPlaceholderText('Suffix') self._suffix_combo = combobox.BaseComboBox(parent=self) self._suffix_combo.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) suffix_layout.addWidget(self._suffix_line) suffix_layout.addWidget(self._suffix_combo) self._suffix_btn = buttons.BaseButton(parent=self) self._suffix_btn.setIcon(resources.icon('suffix')) self._remove_suffix_btn = buttons.BaseButton(parent=self) self._remove_suffix_btn.setIcon(resources.icon('trash')) suffix_layout.addWidget(self._suffix_btn) suffix_layout.addWidget(self._remove_suffix_btn) remove_last_layout = layouts.HorizontalLayout(spacing=5, margins=(0, 0, 0, 0)) remove_last_layout.setAlignment(Qt.AlignLeft) self.main_layout.addLayout(remove_last_layout) self._remove_last_cbx = checkbox.BaseCheckBox(parent=self) remove_last_layout.addWidget(self._remove_last_cbx) self._remove_last_lbl = label.BaseLabel('Remove last: ', parent=self) self._remove_last_spn = spinbox.BaseSpinBox(parent=self) self._remove_last_spn.setFocusPolicy(Qt.NoFocus) self._remove_last_spn.setMinimum(0) self._remove_last_spn.setMaximum(99) last_digits_lbl2 = label.BaseLabel(' digits', parent=None) remove_last_layout.addWidget(self._remove_last_lbl) remove_last_layout.addWidget(self._remove_last_spn) remove_last_layout.addWidget(last_digits_lbl2) self._remove_last_btn = buttons.BaseButton() self._remove_last_btn.setIcon(resources.icon('trash')) remove_last_layout.addStretch() remove_last_layout.addWidget(self._remove_last_btn)
def ui(self): super(RenamerView, self).ui() top_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) top_layout.setAlignment(Qt.AlignLeft) self._buttons_grp = QButtonGroup(self) self._buttons_grp.setExclusive(True) self.main_layout.addLayout(top_layout) self.main_layout.addLayout(dividers.DividerLayout()) self._categories_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) self._categories_layout.setAlignment(Qt.AlignLeft) selection_layout = layouts.HorizontalLayout(spacing=2, margins=(4, 0, 4, 0)) top_layout.addLayout(selection_layout) self._all_radio = buttons.BaseRadioButton('All', parent=self) self._all_radio.setFixedHeight(19) self._all_radio.setAutoExclusive(True) self._selected_radio = buttons.BaseRadioButton('Selected', parent=self) self._selected_radio.setFixedHeight(19) self._selected_radio.setChecked(True) self._selected_radio.setAutoExclusive(True) self._hierarchy_cbx = checkbox.BaseCheckBox('Hierarchy', parent=self) self._hierarchy_cbx.setFixedHeight(19) self._node_types_combo = combobox.BaseComboBox(parent=self) self._auto_rename_shapes_cbx = None self._auto_rename_shapes_cbx = checkbox.BaseCheckBox( 'Auto Rename Shapes', parent=self) self._auto_rename_shapes_cbx.setChecked(True) if not dcc.client().is_maya(): self._auto_rename_shapes_cbx.setVisible(False) selection_layout.addWidget(self._selected_radio) selection_layout.addWidget(self._all_radio) selection_layout.addItem( QSpacerItem(10, 0, QSizePolicy.Fixed, QSizePolicy.Fixed)) selection_layout.addWidget(self._hierarchy_cbx) selection_layout.addItem( QSpacerItem(10, 0, QSizePolicy.Fixed, QSizePolicy.Fixed)) selection_layout.addWidget(self._node_types_combo) if self._auto_rename_shapes_cbx: selection_layout.addItem( QSpacerItem(10, 0, QSizePolicy.Fixed, QSizePolicy.Fixed)) selection_layout.addWidget(self._auto_rename_shapes_cbx) self._splitter = splitter.CollapsibleSplitter(parent=self) self._splitter.setOrientation(Qt.Horizontal) self._splitter.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding) self._splitter.setMinimumHeight(750) self.main_layout.addWidget(self._splitter) self._rename_tab = tabs.BaseTabWidget(parent=self) self._splitter.addWidget(self._rename_tab) self._manual_rename_widget = manualrenamewidget.ManualRenameWidget( model=self._model, controller=self._controller, parent=self) self._auto_rename_widget = autorenamewidget.AutoRenameWidget( model=self._model, controller=self._controller, parent=self) self._rename_tab.addTab(self._manual_rename_widget, 'Manual') self._rename_tab.addTab(self._auto_rename_widget, 'Auto') self._stack = stack.SlidingStackedWidget() # splitter_right_widget = QWidget() # splitter_right_layout = layouts.VerticalLayout(spacing=0, margins=(0, 0, 0, 0)) # splitter_right_layout.addLayout(self._categories_layout) # splitter_right_layout.addWidget(self._stack) # splitter_right_widget.setLayout(splitter_right_layout) # self._splitter.addWidget(splitter_right_widget) # # no_items_widget = QFrame() # no_items_widget.setFrameShape(QFrame.StyledPanel) # no_items_widget.setFrameShadow(QFrame.Sunken) # no_items_widget.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) # no_items_layout = layouts.VerticalLayout(spacing=0, margins=(0, 0, 0, 0)) # no_items_widget.setLayout(no_items_layout) # no_items_lbl = label.BaseLabel() # no_items_pixmap = tp.ResourcesMgr().pixmap('no_items') # no_items_lbl.setPixmap(no_items_pixmap) # no_items_lbl.setAlignment(Qt.AlignCenter) # no_items_layout.addItem(QSpacerItem(0, 10, QSizePolicy.Preferred, QSizePolicy.Expanding)) # no_items_layout.addWidget(no_items_lbl) # no_items_layout.addItem(QSpacerItem(0, 10, QSizePolicy.Preferred, QSizePolicy.Expanding)) # # self._stack.addWidget(no_items_widget) self._splitter.handle(0).collapse() self._splitter.setSizes([1, 0])
def ui(self): super(BaseAlembicExporter, self).ui() self._stack = stack.SlidingStackedWidget() self.main_layout.addWidget(self._stack) exporter_widget = QWidget() exporter_layout = layouts.VerticalLayout(spacing=0, margins=(0, 0, 0, 0)) exporter_widget.setLayout(exporter_layout) self._stack.addWidget(exporter_widget) self._waiter = waiter.ArtellaWaiter( spinner_type=spinner.SpinnerType.Thumb) self._stack.addWidget(self._waiter) buttons_layout = layouts.GridLayout() exporter_layout.addLayout(buttons_layout) name_lbl = label.BaseLabel('Alembic Name: ', parent=self) self._name_line = lineedit.BaseLineEdit(parent=self) buttons_layout.addWidget(name_lbl, 0, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(self._name_line, 0, 1) shot_name_lbl = label.BaseLabel('Shot Name: ', parent=self) self._shot_line = lineedit.BaseLineEdit(parent=self) buttons_layout.addWidget(shot_name_lbl, 1, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(self._shot_line, 1, 1) frame_range_lbl = label.BaseLabel('Frame Range: ', parent=self) self._start = spinbox.BaseSpinBox(parent=self) self._start.setRange(-sys.maxint, sys.maxint) self._start.setFixedHeight(20) self._start.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self._end = spinbox.BaseSpinBox(parent=self) self._end.setRange(-sys.maxint, sys.maxint) self._end.setFixedHeight(20) self._end.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) frame_range_widget = QWidget() frame_range_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) frame_range_widget.setLayout(frame_range_layout) for widget in [frame_range_lbl, self._start, self._end]: frame_range_layout.addWidget(widget) buttons_layout.addWidget(frame_range_lbl, 2, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(frame_range_widget, 2, 1) folder_icon = resources.icon('folder') export_path_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) export_path_widget = QWidget() export_path_widget.setLayout(export_path_layout) export_path_lbl = label.BaseLabel('Export Path: ', parent=self) self._export_path_line = lineedit.BaseLineEdit(parent=self) self._export_path_line.setReadOnly(True) self._export_path_line.setText(self._project.get_path()) self._export_path_btn = buttons.BaseButton(parent=self) self._export_path_btn.setIcon(folder_icon) self._export_path_btn.setIconSize(QSize(18, 18)) self._export_path_btn.setStyleSheet( "background-color: rgba(255, 255, 255, 0); border: 0px solid rgba(255,255,255,0);" ) export_path_layout.addWidget(self._export_path_line) export_path_layout.addWidget(self._export_path_btn) buttons_layout.addWidget(export_path_lbl, 3, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(export_path_widget, 3, 1) exporter_layout.addLayout(dividers.DividerLayout()) checkboxes_layout = layouts.VerticalLayout(spacing=2, margins=(2, 2, 2, 2)) exporter_layout.addLayout(checkboxes_layout) self._open_folder_after_export_cbx = checkbox.BaseCheckBox( 'Open Folder After Export?', parent=self) self._open_folder_after_export_cbx.setChecked(True) checkboxes_layout.addWidget(self._open_folder_after_export_cbx) self._export_all_alembics_together_cbx = checkbox.BaseCheckBox( 'Export All Selected Geometry in One Alembic?', parent=self) self._export_all_alembics_together_cbx.setChecked(True) checkboxes_layout.addWidget(self._export_all_alembics_together_cbx) exporter_layout.addLayout(dividers.DividerLayout()) self._export_btn = buttons.BaseButton('Export', parent=self) self._export_btn.setIcon(resources.icon('export')) self._export_btn.setEnabled(False) self.main_layout.addWidget(self._export_btn) exporter_layout.addStretch() self.refresh()
def ui(self): super(CategoryWidget, self).ui() filter_layout = layouts.HorizontalLayout(spacing=2, margins=(10, 0, 10, 0)) self.main_layout.addLayout(filter_layout) refresh_icon = resources.icon('refresh') self._refresh_list_btn = buttons.IconButton( icon=refresh_icon, icon_padding=2, button_style=buttons.ButtonStyles.FlatStyle) self._names_filter = search.SearchFindWidget() self._search_lbl = QLabel('0 found') filter_layout.addWidget(self._refresh_list_btn) filter_layout.addWidget(self._names_filter) filter_layout.addWidget(self._search_lbl) self._types_layout = layouts.HorizontalLayout(spacing=2, margins=(0, 0, 0, 0)) self.main_layout.addLayout(self._types_layout) self._names_list = QTreeWidget(self) self._names_list.setHeaderHidden(True) self._names_list.setSortingEnabled(False) self._names_list.setRootIsDecorated(False) self._names_list.setSelectionMode(QAbstractItemView.ExtendedSelection) self._names_list.sortByColumn(0, Qt.AscendingOrder) self._names_list.setUniformRowHeights(True) self._names_list.setAlternatingRowColors(True) self.main_layout.addWidget(self._names_list) bottom_buttons_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) bottom_buttons_layout.setAlignment(Qt.AlignLeft) self.main_layout.addLayout(bottom_buttons_layout) preview_icon = resources.icon('preview') self._sort_btn = buttons.BaseButton('Sort', parent=self) self._sort_btn.setMinimumWidth(40) self._all_btn = buttons.BaseButton('All', parent=self) self._all_btn.setMinimumWidth(40) self._none_btn = buttons.BaseButton('None', parent=self) self._none_btn.setMinimumWidth(40) bottom_buttons_layout.addWidget(self._sort_btn) bottom_buttons_layout.addWidget(self._all_btn) bottom_buttons_layout.addWidget(self._none_btn) bottom_buttons_layout.addWidget( dividers.get_horizontal_separator_widget()) self._hide_default_scene_nodes_cbx = checkbox.BaseCheckBox( 'Hide Default Scene Objects', parent=self) self._hide_default_scene_nodes_cbx.setChecked(True) bottom_buttons_layout.addWidget(self._hide_default_scene_nodes_cbx) self.main_layout.addLayout(dividers.DividerLayout()) preview_layout = layouts.HorizontalLayout(spacing=2, margins=(0, 0, 0, 0)) self.main_layout.addLayout(preview_layout) self._preview_btn = buttons.BaseButton('Preview', parent=self) self._preview_btn.setIcon(preview_icon) self._preview_btn.setCheckable(True) self._preview_btn.setChecked(True) self._preview_btn.setMinimumWidth(100) self._preview_btn.setMaximumWidth(100) self._rename_btn = buttons.BaseButton( 'Select objects in the list to rename ...', parent=self) self._rename_btn.setEnabled(False) preview_layout.addWidget(self._preview_btn) preview_layout.addWidget(self._rename_btn) self._setup_types() self.refresh()
def ui(self): super(JointWidget, self).ui() self._joints_to_insert_widget = QWidget() joints_to_insert_layout = layouts.HorizontalLayout(spacing=0, margins=(0, 0, 0, 0)) self._joints_to_insert_widget.setLayout(joints_to_insert_layout) joints_to_insert_lbl = label.BaseLabel('Num. Joints: ', parent=self) self._joints_to_insert_spn = spinbox.BaseSpinBox(parent=self) self._joints_to_insert_spn.setMinimum(1) self._joints_to_insert_spn.setMaximum(99999999) joints_to_insert_layout.addWidget(joints_to_insert_lbl) joints_to_insert_layout.addWidget(self._joints_to_insert_spn) self._create_joints_on_curve_widget = QWidget() create_joints_on_curve_layout = layouts.HorizontalLayout(spacing=0, margins=(0, 0, 0, 0)) self._create_joints_on_curve_widget.setLayout( create_joints_on_curve_layout) create_joints_on_curve_lbl = label.BaseLabel('Num. Joints: ', parent=self) self._create_joints_on_curve_spn = spinbox.BaseSpinBox(parent=self) self._create_joints_on_curve_spn.setMinimum(1) self._create_joints_on_curve_spn.setMaximum(99999999) create_joints_on_curve_layout.addWidget(create_joints_on_curve_lbl) create_joints_on_curve_layout.addWidget( self._create_joints_on_curve_spn) self._snap_joints_to_curve_widget = QWidget() snap_joints_to_curve_layout = layouts.HorizontalLayout(spacing=0, margins=(0, 0, 0, 0)) self._snap_joints_to_curve_widget.setLayout( snap_joints_to_curve_layout) snap_joints_to_curve_lbl = label.BaseLabel('Num. Joints: ', parent=self) self._snap_joints_to_curve_spn = spinbox.BaseSpinBox(parent=self) self._snap_joints_to_curve_spn.setMinimum(0) self._snap_joints_to_curve_spn.setMaximum(99999999) snap_joints_to_curve_layout.addWidget(snap_joints_to_curve_lbl) snap_joints_to_curve_layout.addWidget(self._snap_joints_to_curve_spn) self._joints_display_size_widget = QWidget() joint_display_size_layout = layouts.HorizontalLayout(spacing=0, margins=(0, 0, 0, 0)) self._joints_display_size_widget.setLayout(joint_display_size_layout) joint_display_size_lbl = label.BaseLabel('Joints Size: ', parent=self) self._joints_display_size_spn = spinbox.BaseDoubleSpinBox(parent=self) self._joints_display_size_spn.setSingleStep(0.5) self._joints_display_size_spn.setMinimum(0.1) self._joints_display_size_spn.setMaximum(999) self._joints_display_live_cbx = checkbox.BaseCheckBox('Live', parent=self) joint_display_size_layout.addWidget(joint_display_size_lbl) joint_display_size_layout.addWidget(self._joints_display_size_spn) joint_display_size_layout.addWidget(self._joints_display_live_cbx) self._joints_to_insert_widget.setVisible(False) self._create_joints_on_curve_widget.setVisible(False) self._snap_joints_to_curve_widget.setVisible(False) self._joints_display_size_widget.setVisible(False) self.main_layout.addWidget(self._joints_to_insert_widget) self.main_layout.addWidget(self._create_joints_on_curve_widget) self.main_layout.addWidget(self._snap_joints_to_curve_widget) self.main_layout.addWidget(self._joints_display_size_widget)
def ui(self): super(BaseAlembicImporter, self).ui() buttons_layout = layouts.GridLayout() self.main_layout.addLayout(buttons_layout) shot_name_lbl = label.BaseLabel('Shot Name: ', parent=self) self._shot_line = lineedit.BaseLineEdit(parent=self) buttons_layout.addWidget(shot_name_lbl, 1, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(self._shot_line, 1, 1) shot_name_lbl.setVisible(False) self._shot_line.setVisible(False) folder_icon = resources.icon('folder') alembic_path_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) alembic_path_widget = QWidget() alembic_path_widget.setLayout(alembic_path_layout) alembic_path_lbl = label.BaseLabel('Alembic File: ', parent=self) self._alembic_path_line = lineedit.BaseLineEdit(parent=self) self._alembic_path_line.setReadOnly(True) self._alembic_path_btn = buttons.BaseButton(parent=self) self._alembic_path_btn.setIcon(folder_icon) self._alembic_path_btn.setIconSize(QSize(18, 18)) self._alembic_path_btn.setStyleSheet( "background-color: rgba(255, 255, 255, 0); border: 0px solid rgba(255,255,255,0);" ) alembic_path_layout.addWidget(self._alembic_path_line) alembic_path_layout.addWidget(self._alembic_path_btn) buttons_layout.addWidget(alembic_path_lbl, 2, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(alembic_path_widget, 2, 1) import_mode_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) import_mode_layout.setContentsMargins(2, 2, 2, 2) import_mode_layout.setSpacing(2) import_mode_widget = QWidget() import_mode_widget.setLayout(import_mode_layout) import_mode_lbl = label.BaseLabel('Import mode: ', parent=self) self._create_radio = buttons.BaseRadioButton('Create', parent=self) self._add_radio = buttons.BaseRadioButton('Add', parent=self) self._merge_radio = buttons.BaseRadioButton('Merge', parent=self) self._create_radio.setChecked(True) import_mode_layout.addWidget(self._create_radio) import_mode_layout.addWidget(self._add_radio) import_mode_layout.addWidget(self._merge_radio) buttons_layout.addWidget(import_mode_lbl, 3, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(import_mode_widget, 3, 1) import_mode_lbl.setVisible(False) import_mode_widget.setVisible(False) self._auto_display_lbl = label.BaseLabel('Auto Display Smooth?: ', parent=self) self._auto_smooth_display = checkbox.BaseCheckBox(parent=self) self._auto_smooth_display.setChecked(True) buttons_layout.addWidget(self._auto_display_lbl, 4, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(self._auto_smooth_display, 4, 1) if dcc.client().is_maya(): maya_gpu_cache_lbl = label.BaseLabel( 'Import Alembic as GPU Cache?', parent=self) self._maya_gpu_cache_cbx = checkbox.BaseCheckBox(parent=self) self._maya_gpu_cache_cbx.setChecked(True) buttons_layout.addWidget(maya_gpu_cache_lbl, 5, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(self._maya_gpu_cache_cbx, 5, 1) elif dcc.client().is_houdini(): hou_archive_abc_node_lbl = label.BaseLabel( 'Import Alembic as Archive?', parent=self) self._hou_archive_abc_node_cbx = checkbox.BaseCheckBox(parent=self) buttons_layout.addWidget(hou_archive_abc_node_lbl, 5, 0, 1, 1, Qt.AlignRight) buttons_layout.addWidget(self._hou_archive_abc_node_cbx, 5, 1) self.main_layout.addStretch() self.main_layout.addLayout(dividers.DividerLayout()) buttons_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) self.main_layout.addLayout(buttons_layout) self._import_btn = buttons.BaseButton('Import', parent=self) self._import_btn.setIcon(resources.icon('import')) self._import_btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) self._reference_btn = buttons.BaseButton('Reference', parent=self) self._reference_btn.setIcon(resources.icon('reference')) self._reference_btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) buttons_layout.addWidget(self._import_btn) buttons_layout.addWidget(self._reference_btn) if dcc.client().is_houdini(): self._reference_btn.setEnabled(False)
def __init__(self, *args, **kwargs): super(BoolFieldWidget, self).__init__(*args, **kwargs) widget = checkbox.BaseCheckBox(parent=self) widget.stateChanged.connect(self._on_emit_value_changed) self.set_widget(widget)
def __init__(self, name='messageBox', width=None, height=None, enable_input_edit=False, enable_dont_show_checkbox=False, parent=None): super(MessageBox, self).__init__(parent=parent) self._frame = None self._animation = None self._dont_show_checkbox = False self._clicked_button = None self._clicked_standard_button = None self.setMinimumWidth(width or self.MAX_WIDTH) self.setMinimumHeight(height or self.MAX_HEIGHT) self.setObjectName(name) self.setWindowFlags(self.windowFlags() | Qt.FramelessWindowHint) self.setAttribute(Qt.WA_TranslucentBackground) # self.setStyleSheet('background-color: rgb(68, 68, 68, 255);') parent = self.parent() self._frame = None if parent and parent != dcc.get_main_window(): parent.installEventFilter(self) self._frame = QFrame(parent) self._frame.setStyleSheet( 'background-color: rgba(25, 25, 25, 150);') self._frame.setObjectName('messageBoxFrame') self._frame.show() self.setParent(self._frame) self.main_layout = layouts.VerticalLayout(spacing=0, margins=(0, 0, 0, 0)) self.setLayout(self.main_layout) self._header = QFrame(self) self._header.setFixedHeight(46) self._header.setObjectName('messageBoxHeaderFrame') self._header.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self._icon = label.BaseLabel(parent=self._header) self._icon.hide() self._icon.setFixedHeight(32) self._icon.setFixedHeight(32) self._icon.setScaledContents(True) self._icon.setAlignment(Qt.AlignTop) self._icon.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) self._title = label.BaseLabel(parent=self._header) self._title.setObjectName('messageBoxHeaderLabel') self._title.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) hlayout = layouts.HorizontalLayout(spacing=10, margins=(15, 7, 15, 10)) hlayout.addWidget(self._icon) hlayout.addWidget(self._title) self._header.setLayout(hlayout) body_layout = layouts.VerticalLayout() self._body = QFrame(self) self._body.setObjectName('messageBoxBody') self._body.setLayout(body_layout) self._message = label.BaseLabel(parent=self._body) self._message.setWordWrap(True) self._message.setMinimumHeight(15) self._message.setAlignment(Qt.AlignLeft) self._message.setTextInteractionFlags(Qt.TextSelectableByMouse) self._message.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) body_layout.addWidget(self._message) body_layout.setContentsMargins(15, 15, 15, 15) if enable_input_edit: self._input_edit = lineedit.BaseLineEdit(parent=self._body) self._input_edit.setObjectName('messageBoxInputEdit') self._input_edit.setMinimumHeight(32) self._input_edit.setFocus() body_layout.addStretch(1) body_layout.addWidget(self._input_edit) body_layout.addStretch(10) if enable_dont_show_checkbox: msg = 'Do not show this message again' self._dont_show_checkbox = checkbox.BaseCheckBox(msg, parent=self._body) body_layout.addStretch(10) body_layout.addWidget(self._dont_show_checkbox) body_layout.addStretch(2) self._button_box = QDialogButtonBox(None, Qt.Horizontal, self) self._button_box.clicked.connect(self._on_clicked) self._button_box.accepted.connect(self._on_accept) self._button_box.rejected.connect(self._on_reject) self.main_layout.addWidget(self._header) self.main_layout.addWidget(self._body) body_layout.addWidget(self._button_box) self.updateGeometry()
def ui(self): super(MuscleSplineView, self).ui() expander = expandables.ExpanderWidget() muscle_setup_widget = QWidget() muscle_setup_layout = layouts.VerticalLayout(spacing=2, margins=(2, 2, 2, 2)) muscle_setup_widget.setLayout(muscle_setup_layout) muscle_setup_base_layout = layouts.GridLayout(spacing=5, margins=(2, 2, 2, 2)) name_label = label.BaseLabel('Name:', parent=self) self._name_line = lineedit.BaseLineEdit(parent=self) size_label = label.BaseLabel('Size:') self._size_spn = spinbox.BaseDoubleSpinBox(parent=self) self._size_spn.setMinimum(1.0) insertion_ctrls_lbl = label.BaseLabel('N. Controls:', parent=self) insertion_ctrls_lbl.setToolTip('Number Insertion Controls') self._insertion_ctrls_spn = spinbox.BaseSpinBox(parent=self) self._insertion_ctrls_spn.setMinimum(2) self._insertion_ctrls_spn.setMaximum(24) insertion_type_lbl = label.BaseLabel('Type:', parent=self) self._insertion_type_combo = combobox.BaseComboBox(parent=self) num_driven_lbl = label.BaseLabel('N. Driven:', parent=self) num_driven_lbl.setToolTip('Number Driven Joints') self._num_driven_spn = spinbox.BaseSpinBox(parent=self) self._num_driven_spn.setMinimum(1) self._num_driven_spn.setMaximum(64) num_driven_type_lbl = label.BaseLabel('Type:') self._num_driven_type_combo = combobox.BaseComboBox(parent=self) extras_layout = layouts.HorizontalLayout(spacing=2, margins=(2, 2, 2, 2)) self._cns_mid_ctrls_cbx = checkbox.BaseCheckBox( 'Constraint Mid Controls', parent=self) self._lock_ctrls_scale_cbx = checkbox.BaseCheckBox( 'Lock Controls Scale', parent=self) self._lock_jiggle_attrs_cbx = checkbox.BaseCheckBox( 'Lock Jiggle Attributes', parent=self) extras_layout.addStretch() extras_layout.addWidget(self._cns_mid_ctrls_cbx) extras_layout.addWidget(self._lock_ctrls_scale_cbx) extras_layout.addWidget(self._lock_jiggle_attrs_cbx) extras_layout.addStretch() muscle_setup_layout.addLayout(muscle_setup_base_layout) muscle_setup_layout.addWidget(dividers.Divider()) muscle_setup_layout.addLayout(extras_layout) muscle_setup_base_layout.addWidget(name_label, 0, 0, Qt.AlignRight) muscle_setup_base_layout.addWidget(self._name_line, 0, 1) muscle_setup_base_layout.addWidget(size_label, 1, 0, Qt.AlignRight) muscle_setup_base_layout.addWidget(self._size_spn, 1, 1) muscle_setup_base_layout.addWidget(dividers.Divider(), 2, 0, 1, 2) muscle_setup_base_layout.addWidget(insertion_ctrls_lbl, 3, 0, Qt.AlignRight) muscle_setup_base_layout.addWidget(self._insertion_ctrls_spn, 3, 1) muscle_setup_base_layout.addWidget(insertion_type_lbl, 4, 0, Qt.AlignRight) muscle_setup_base_layout.addWidget(self._insertion_type_combo, 4, 1) muscle_setup_base_layout.addWidget(dividers.Divider(), 5, 0, 1, 2) muscle_setup_base_layout.addWidget(num_driven_lbl, 6, 0, Qt.AlignRight) muscle_setup_base_layout.addWidget(self._num_driven_spn, 6, 1) muscle_setup_base_layout.addWidget(num_driven_type_lbl, 7, 0, Qt.AlignRight) muscle_setup_base_layout.addWidget(self._num_driven_type_combo, 7, 1) advanced_setup_widget = QWidget() advanced_setup_layout = layouts.VerticalLayout(spacing=2, margins=(2, 2, 2, 2)) advanced_setup_widget.setLayout(advanced_setup_layout) self._advanced_widgets_widget = QWidget() advanced_widgets_layout = layouts.VerticalLayout(spacing=0, margins=(0, 0, 0, 0)) self._advanced_widgets_widget.setLayout(advanced_widgets_layout) advanced_setup_base_layout = layouts.GridLayout(spacing=5, margins=(2, 2, 2, 2)) self._advanced_enable_cbx = checkbox.BaseCheckBox('Enable', parent=self) ctrl_suffix_lbl = label.BaseLabel('Control Suffix:', parent=self) self._ctrl_suffix_line = lineedit.BaseLineEdit(parent=self) joint_suffix_lbl = label.BaseLabel('Joint Suffix:', parent=self) self._joint_suffix_line = lineedit.BaseLineEdit(parent=self) grp_suffix_lbl = label.BaseLabel('Group Suffix:', parent=self) self._grp_suffix_line = lineedit.BaseLineEdit(parent=self) drv_suffix_lbl = label.BaseLabel('Driven Suffix:', parent=self) self._drv_suffix_line = lineedit.BaseLineEdit(parent=self) advanced_setup_set_layout = layouts.GridLayout(spacing=5, margins=(2, 2, 2, 2)) self._create_sets_cbx = checkbox.BaseCheckBox('Create Sets', parent=self) muscle_set_lbl = label.BaseLabel('Main Muscle Set Name:', parent=self) self._main_muscle_set_name_line = lineedit.BaseLineEdit(parent=self) set_suffix_lbl = label.BaseLabel('Muscle Set Suffix:', parent=self) self._muscle_set_suffix_line = lineedit.BaseLineEdit(parent=self) muscle_spline_name_lbl = label.BaseLabel('Muscle Spline Name:', parent=self) self._muscle_spline_name_line = lineedit.BaseLineEdit(parent=self) controls_group_suffix_lbl = label.BaseLabel('Controls Group Suffix:', parent=self) self._controls_group_suffix_line = lineedit.BaseLineEdit(parent=self) joints_group_suffix_lbl = label.BaseLabel('Joints Group Suffix:') self._joints_group_suffix_line = lineedit.BaseLineEdit(parent=self) root_group_suffix_lbl = label.BaseLabel('Root Group Suffix:', parent=self) self._root_group_suffix_line = lineedit.BaseLineEdit(parent=self) auto_group_suffix_lbl = label.BaseLabel('Auto Group Suffix:', parent=self) self._auto_group_suffix_line = lineedit.BaseLineEdit(parent=self) create_layout = layouts.HorizontalLayout(spacing=0, margins=(0, 0, 0, 0)) self._create_btn = buttons.BaseButton('Create', parent=self) create_layout.addStretch() create_layout.addWidget(self._create_btn) create_layout.addStretch() advanced_setup_layout.addWidget(self._advanced_enable_cbx) advanced_setup_layout.addWidget(dividers.Divider()) advanced_setup_layout.addWidget(self._advanced_widgets_widget) advanced_widgets_layout.addLayout(advanced_setup_base_layout) advanced_widgets_layout.addLayout(advanced_setup_set_layout) advanced_setup_base_layout.addWidget(ctrl_suffix_lbl, 0, 0, Qt.AlignRight) advanced_setup_base_layout.addWidget(self._ctrl_suffix_line, 0, 1) advanced_setup_base_layout.addWidget(joint_suffix_lbl, 1, 0, Qt.AlignRight) advanced_setup_base_layout.addWidget(self._joint_suffix_line, 1, 1) advanced_setup_base_layout.addWidget(grp_suffix_lbl, 2, 0, Qt.AlignRight) advanced_setup_base_layout.addWidget(self._grp_suffix_line, 2, 1) advanced_setup_base_layout.addWidget(drv_suffix_lbl, 3, 0, Qt.AlignRight) advanced_setup_base_layout.addWidget(self._drv_suffix_line, 3, 1) advanced_setup_base_layout.addWidget(dividers.Divider(), 4, 0, 1, 2) advanced_setup_set_layout.addWidget(self._create_sets_cbx, 0, 0) advanced_setup_set_layout.addWidget(muscle_set_lbl, 1, 0, Qt.AlignRight) advanced_setup_set_layout.addWidget(self._main_muscle_set_name_line, 1, 1) advanced_setup_set_layout.addWidget(set_suffix_lbl, 2, 0, Qt.AlignRight) advanced_setup_set_layout.addWidget(self._muscle_set_suffix_line, 2, 1) advanced_setup_set_layout.addWidget(dividers.Divider(), 3, 0, 1, 2) advanced_setup_set_layout.addWidget(muscle_spline_name_lbl, 4, 0, Qt.AlignRight) advanced_setup_set_layout.addWidget(self._muscle_spline_name_line, 4, 1) advanced_setup_set_layout.addWidget(dividers.Divider(), 5, 0, 1, 2) advanced_setup_set_layout.addWidget(controls_group_suffix_lbl, 6, 0, Qt.AlignRight) advanced_setup_set_layout.addWidget(self._controls_group_suffix_line, 6, 1) advanced_setup_set_layout.addWidget(joints_group_suffix_lbl, 7, 0, Qt.AlignRight) advanced_setup_set_layout.addWidget(self._joints_group_suffix_line, 7, 1) advanced_setup_set_layout.addWidget(root_group_suffix_lbl, 8, 0, Qt.AlignRight) advanced_setup_set_layout.addWidget(self._root_group_suffix_line, 8, 1) advanced_setup_set_layout.addWidget(auto_group_suffix_lbl, 9, 0, Qt.AlignRight) advanced_setup_set_layout.addWidget(self._auto_group_suffix_line, 9, 1) expander.addItem('Advanced Setup', advanced_setup_widget) expander.addItem('Muscle Setup', muscle_setup_widget) self.main_layout.addWidget(expander) self.main_layout.addWidget(dividers.Divider()) self.main_layout.addLayout(create_layout)
def ui(self): super(JointOrientView, self).ui() aim_axis_box = group.BaseGroup(layout_orientation=Qt.Horizontal, layout_spacing=8, parent=self) aim_axis_box.setTitle('Aim Axis') self._aim_x_radio = buttons.BaseRadioButton(' X ', parent=self) self._aim_y_radio = buttons.BaseRadioButton(' Y ', parent=self) self._aim_z_radio = buttons.BaseRadioButton(' Z ', parent=self) self._aim_rev_cbx = checkbox.BaseCheckBox('Reverse', parent=self) aim_axis_box.addWidget(self._aim_x_radio) aim_axis_box.addWidget(self._aim_y_radio) aim_axis_box.addWidget(self._aim_z_radio) aim_axis_box.addWidget(self._aim_rev_cbx) self._aim_axis_boxes = [ self._aim_x_radio, self._aim_y_radio, self._aim_z_radio ] up_axis_box = group.BaseGroup(layout_orientation=Qt.Horizontal, layout_spacing=8, parent=self) up_axis_box.setTitle('Up Axis') self._up_x_radio = buttons.BaseRadioButton(' X ', parent=self) self._up_y_radio = buttons.BaseRadioButton(' Y ', parent=self) self._up_z_radio = buttons.BaseRadioButton(' Z ', parent=self) self._up_rev_cbx = checkbox.BaseCheckBox('Reverse', parent=self) up_axis_box.addWidget(self._up_x_radio) up_axis_box.addWidget(self._up_y_radio) up_axis_box.addWidget(self._up_z_radio) up_axis_box.addWidget(self._up_rev_cbx) self._up_axis_boxes = [ self._up_x_radio, self._up_y_radio, self._up_z_radio ] up_world_axis_box = group.BaseGroup(layout_orientation=Qt.Horizontal, layout_spacing=2, parent=self) up_world_axis_box.setTitle('Up World Axis') self._up_world_x_spin = spinbox.BaseDoubleSpinBox(parent=self) self._up_world_y_spin = spinbox.BaseDoubleSpinBox(parent=self) self._up_world_z_spin = spinbox.BaseDoubleSpinBox(parent=self) self._up_world_x_spin.setDecimals(3) self._up_world_y_spin.setDecimals(3) self._up_world_z_spin.setDecimals(3) self._up_world_x_spin.setRange(-360, 360) self._up_world_y_spin.setRange(-360, 360) self._up_world_z_spin.setRange(-360, 360) self._up_world_x_btn = buttons.get_axis_button('X', parent=self, as_tool_button=False) self._up_world_y_btn = buttons.get_axis_button('Y', parent=self, as_tool_button=False) self._up_world_z_btn = buttons.get_axis_button('Z', parent=self, as_tool_button=False) up_world_axis_box.addWidget(self._up_world_x_spin) up_world_axis_box.addWidget(self._up_world_y_spin) up_world_axis_box.addWidget(self._up_world_z_spin) up_world_axis_box.addWidget(self._up_world_x_btn) up_world_axis_box.addWidget(self._up_world_y_btn) up_world_axis_box.addWidget(self._up_world_z_btn) joint_orient_btn_layout = layouts.HorizontalLayout() joint_orient_btn_layout.addStretch() self._joint_orient_btn = buttons.BaseButton('Apply', parent=self) self._joint_orient_btn.setIcon(resources.icon('ok')) self._hierarchy_cbx = checkbox.BaseCheckBox('Hierarchy', parent=self) joint_orient_btn_layout.addWidget(self._joint_orient_btn) joint_orient_btn_layout.addWidget(self._hierarchy_cbx) joint_orient_btn_layout.addStretch() self.main_layout.addWidget(aim_axis_box) self.main_layout.addWidget(up_axis_box) self.main_layout.addWidget(up_world_axis_box) self.main_layout.addLayout(joint_orient_btn_layout)
def ui(self): super(NumberSideView, self).ui() rename_mult_layout = layouts.HorizontalLayout(spacing=5, margins=(0, 0, 0, 0)) rename_mult_layout.setAlignment(Qt.AlignLeft) self.main_layout.addLayout(rename_mult_layout) self._rename_mult_cbx = checkbox.BaseCheckBox(parent=self) self._rename_mult_cbx.setChecked(True) self._rename_mult_method_lbl = label.BaseLabel('Number: ', parent=self) self._renamer_mult_method_combo = combobox.BaseComboBox(parent=self) self._renamer_mult_method_combo.addItem('Numbers (0-9)') self._renamer_mult_method_combo.addItem('Letters (a-z)') rename_mult_layout.addWidget(self._rename_mult_cbx) rename_mult_layout.addWidget(self._rename_mult_method_lbl) rename_mult_layout.addWidget(self._renamer_mult_method_combo) self._frame_pad_lbl = label.BaseLabel('Pad: ', parent=self) self._frame_pad_spin = spinbox.BaseSpinBox(parent=self) self._frame_pad_spin.setValue(2) self._frame_pad_spin.setFocusPolicy(Qt.NoFocus) self._frame_pad_spin.setMinimum(1) self._frame_pad_spin.setMaximum(10) self._frame_combo = combobox.BaseComboBox(parent=self) self._frame_combo.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self._frame_combo.addItems(['Replace', 'Append', 'Change Pad']) self._frame_btn = buttons.BaseButton() self._frame_btn.setIcon(resources.icon('numbered_list')) rename_mult_layout.addWidget(self._frame_pad_lbl) rename_mult_layout.addWidget(self._frame_pad_spin) rename_mult_layout.addWidget(self._frame_combo) lower_upper_grp = QButtonGroup(self) self._lower_radio = buttons.BaseRadioButton('Lower', parent=self) self._upper_radio = buttons.BaseRadioButton('Upper', parent=self) lower_upper_grp.addButton(self._lower_radio) lower_upper_grp.addButton(self._upper_radio) self._lower_radio.setVisible(False) self._upper_radio.setVisible(False) self._lower_radio.setFixedHeight(19) self._upper_radio.setFixedHeight(19) self._upper_radio.setAutoExclusive(True) self._lower_radio.setAutoExclusive(True) self._lower_radio.setChecked(True) self._lower_radio.setEnabled(False) self._upper_radio.setEnabled(False) rename_mult_layout.addWidget(self._lower_radio) rename_mult_layout.addWidget(self._upper_radio) rename_mult_layout.addWidget(self._frame_btn) self.main_layout.addLayout(dividers.DividerLayout()) side_layout = layouts.HorizontalLayout(spacing=2, margins=(0, 0, 0, 0)) side_layout.setAlignment(Qt.AlignLeft) self.main_layout.addLayout(side_layout) self._side_cbx = checkbox.BaseCheckBox(parent=self) self._side_cbx.setChecked(True) side_layout.addWidget(self._side_cbx) self._side_lbl = label.BaseLabel('Side: ', parent=self) self._none_side = buttons.BaseRadioButton('None', parent=self) self._right_side = buttons.BaseRadioButton('Right', parent=self) self._center_side = buttons.BaseRadioButton('Center', parent=self) self._mid_side = buttons.BaseRadioButton('Mid', parent=self) self._left_side = buttons.BaseRadioButton('Left', parent=self) self._none_side.setFixedHeight(15) self._right_side.setFixedHeight(15) self._center_side.setFixedHeight(15) self._mid_side.setFixedHeight(15) self._left_side.setFixedHeight(15) side_layout.addWidget(self._side_lbl) side_layout.addWidget(self._none_side) side_layout.addWidget(self._right_side) side_layout.addWidget(self._center_side) side_layout.addWidget(self._mid_side) side_layout.addWidget(self._left_side) self._none_side.setAutoExclusive(True) self._right_side.setAutoExclusive(True) self._center_side.setAutoExclusive(True) self._mid_side.setAutoExclusive(True) self._left_side.setAutoExclusive(True) self._none_side.setChecked(True) self._capital_side = checkbox.BaseCheckBox('Capital?', parent=self) self._side_btn = buttons.BaseButton(parent=self) self._side_btn.setIcon(resources.icon('font_size')) side_layout.addStretch() side_layout.addWidget(self._capital_side) side_layout.addStretch() side_layout.addWidget(self._side_btn)
def ui(self): super(ManualJointOrientView, self).ui() manual_joint_ori_layout = layouts.HorizontalLayout() self._manual_joint_ori_x_spin = spinbox.DoubleSpinBoxAxis(axis='x', min=-360, max=360, parent=self) self._manual_joint_ori_y_spin = spinbox.DoubleSpinBoxAxis(axis='y', min=-360, max=360, parent=self) self._manual_joint_ori_z_spin = spinbox.DoubleSpinBoxAxis(axis='z', min=-360, max=360, parent=self) self._manual_joint_ori_x_spin.setDecimals(3) self._manual_joint_ori_y_spin.setDecimals(3) self._manual_joint_ori_z_spin.setDecimals(3) self._manual_joint_ori_reset_btn = buttons.BaseButton('Reset', parent=self) self._manual_joint_ori_reset_btn.setIcon(resources.icon('reset')) manual_joint_ori_layout.addWidget(self._manual_joint_ori_x_spin) manual_joint_ori_layout.addWidget(self._manual_joint_ori_y_spin) manual_joint_ori_layout.addWidget(self._manual_joint_ori_z_spin) manual_joint_ori_layout.addWidget(self._manual_joint_ori_reset_btn) manual_joint_splitter_layout = layouts.HorizontalLayout() manual_joint_splitter_layout.addStretch() self._degrees_checks = list() for degree in self._model.available_degrees: degree_radio = buttons.BaseRadioButton(str(degree), parent=self) manual_joint_splitter_layout.addWidget(degree_radio) self._degrees_checks.append(degree_radio) manual_joint_splitter_layout.addStretch() manual_joint_ori_buttons_layout = layouts.HorizontalLayout( spacing=5, margins=(2, 2, 2, 2)) self._manual_joint_ori_add_btn = buttons.BaseButton('Add', parent=self) self._manual_joint_ori_subtract_btn = buttons.BaseButton('Subract', parent=self) self._manual_joint_ori_set_btn = buttons.BaseButton('Set', parent=self) self._manual_joint_ori_set_cbx = checkbox.BaseCheckBox( 'Affect children', parent=self) self._manual_joint_ori_add_btn.setIcon(resources.icon('add')) self._manual_joint_ori_subtract_btn.setIcon(resources.icon('minus')) self._manual_joint_ori_set_btn.setIcon(resources.icon('equals')) manual_joint_ori_buttons_layout.addWidget( self._manual_joint_ori_add_btn) manual_joint_ori_buttons_layout.addWidget( self._manual_joint_ori_subtract_btn) manual_joint_ori_buttons_layout.addWidget( self._manual_joint_ori_set_btn) manual_joint_ori_buttons_layout.addWidget( self._manual_joint_ori_set_cbx) set_rot_axis_widget = QWidget() set_rot_axis_widget.setLayout(layouts.VerticalLayout()) set_rot_axis_widget.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) set_rot_axis_widget.layout().setContentsMargins(5, 5, 5, 5) set_rot_axis_widget.layout().setSpacing(10) self.main_layout.addLayout(manual_joint_splitter_layout) self.main_layout.addLayout(manual_joint_ori_layout) self.main_layout.addWidget(dividers.Divider()) self.main_layout.addLayout(manual_joint_ori_buttons_layout) self.main_layout.addWidget(set_rot_axis_widget)
def get_number_widget(self): return checkbox.BaseCheckBox()