Exemple #1
0
    def ui(self):
        super(SliderPanelExample, self).ui()

        add_icon = tpDcc.ResourcesMgr().icon('add', color=QColor(125, 0, 0))

        self._button_grp = group.RadioButtonGroup()
        self._button_grp.set_button_list(
            ['top', {
                'text': 'right',
                'checked': True
            }, 'bottom', 'left'])

        self._open_btn_2 = buttons.BaseButton('Open', parent=self).tiny()
        lyt = layouts.HorizontalLayout()
        lyt.addWidget(self._button_grp)
        lyt.addSpacing(20)
        lyt.addWidget(self._open_btn_2)
        lyt.addStretch()

        self._new_account_btn = buttons.BaseButton(text='New account',
                                                   icon=add_icon).primary()
        lyt1 = layouts.HorizontalLayout()
        lyt1.addWidget(label.BaseLabel('Submit form in drawer'))
        lyt1.addWidget(self._new_account_btn)
        lyt1.addStretch()

        self.main_layout.addWidget(dividers.Divider('Custom Placement'))
        self.main_layout.addLayout(lyt)
        self.main_layout.addWidget(dividers.Divider('Submit form in drawer'))
        self.main_layout.addLayout(lyt1)
Exemple #2
0
    def ui(self):
        super(SlidersExample, self).ui()

        slider1 = sliders.BaseSlider(orientation=Qt.Horizontal)
        slider1.setRange(1, 100)
        slider2 = sliders.BaseSlider(orientation=Qt.Vertical)
        slider2.setRange(1, 100)

        lyt3 = layouts.HorizontalLayout()
        spin_box = spinbox.BaseSpinBox()
        spin_box.setRange(1, 100)
        btn_grp = group.PushButtonGroup()
        btn_grp.set_button_list([{
            'text': '+',
            'clicked': partial(self._on_change_value, 10)
        }, {
            'text': '-',
            'clicked': partial(self._on_change_value, -10)
        }])
        lyt3.addWidget(spin_box)
        lyt3.addWidget(btn_grp)
        lyt3.addStretch()

        self.register_field('percent', 20)
        self.bind('percent', spin_box, 'value', signal='valueChanged')
        self.bind('percent', slider1, 'value')
        self.bind('percent', slider2, 'value')

        self.main_layout.addWidget(dividers.Divider('different orientation'))
        self.main_layout.addWidget(slider1)
        self.main_layout.addWidget(slider2)
        self.main_layout.addWidget(dividers.Divider('data bind'))
        self.main_layout.addLayout(lyt3)
    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)
Exemple #4
0
    def ui(self):
        super(LineTabExample, self).ui()

        tab_center = tabs.MenuLineTabWidget()
        tab_center.add_tab(label.BaseLabel('test 1 ' * 10), {'text': u'Tab 1', 'image': 'user'})
        tab_center.add_tab(label.BaseLabel('test 2 ' * 10), {'image': 'calendar'})
        tab_center.add_tab(label.BaseLabel('test 3 ' * 10), u'Tab 3')
        tab_center.tool_button_group.theme_checked = False

        tab_left = tabs.MenuLineTabWidget(alignment=Qt.AlignLeft)
        tab_left.add_tab(label.BaseLabel('test 1 ' * 10), u'Tab 1')
        tab_left.add_tab(label.BaseLabel('test 2 ' * 10), u'Tab 2')
        tab_left.add_tab(label.BaseLabel('test 3 ' * 10), u'Tab 3')
        tab_left.tool_button_group.theme_checked = False

        tab_right = tabs.MenuLineTabWidget(alignment=Qt.AlignRight)
        tab_right.add_tab(label.BaseLabel('test 1 ' * 10), u'Tab 1')
        tab_right.add_tab(label.BaseLabel('test 2 ' * 10), u'Tab 2')
        tab_right.add_tab(label.BaseLabel('test 3 ' * 10), u'Tab 3')
        tab_right.tool_button_group.theme_checked = False

        self.main_layout.addWidget(dividers.Divider('Center'))
        self.main_layout.addWidget(tab_center)
        self.main_layout.addSpacing(20)
        self.main_layout.addWidget(dividers.Divider('Left'))
        self.main_layout.addWidget(tab_left)
        self.main_layout.addSpacing(20)
        self.main_layout.addWidget(dividers.Divider('Right'))
        self.main_layout.addWidget(tab_right)
        self.main_layout.addStretch()
Exemple #5
0
    def ui(self):
        super(JointsLabelDialog, self).ui()

        name_label = label.BaseLabel('Specify label sides', parent=self)
        left_side_label = label.BaseLabel('Left Side: ', parent=self)
        self._left_side_line = lineedit.BaseLineEdit(parent=self)
        right_side_label = label.BaseLabel('Right Side: ', parent=self)
        self._right_side_line = lineedit.BaseLineEdit(parent=self)

        info_widget = message.BaseMessage(
            'You can disable auto joint label in tool\n button options (right click on it', parent=self).info()

        grid_layout = layouts.GridLayout()
        grid_layout.addWidget(name_label, 0, 0, 1, 2)
        grid_layout.addWidget(left_side_label, 1, 0, Qt.AlignRight)
        grid_layout.addWidget(self._left_side_line, 1, 1)
        grid_layout.addWidget(right_side_label, 2, 0, Qt.AlignRight)
        grid_layout.addWidget(self._right_side_line, 2, 1)

        self._button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)

        self.main_layout.addLayout(grid_layout)
        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addWidget(self._button_box)
        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addWidget(info_widget)
Exemple #6
0
    def ui(self):
        super(LineEditExample, self).ui()

        size_lyt = layouts.HorizontalLayout()
        line_edit_small = lineedit.BaseLineEdit().small()
        line_edit_small.setPlaceholderText('small size')
        line_edit_medium = lineedit.BaseLineEdit().medium()
        line_edit_medium.setPlaceholderText('default size')
        line_edit_large = lineedit.BaseLineEdit().large()
        line_edit_large.setPlaceholderText('large size')
        size_lyt.addWidget(line_edit_small)
        size_lyt.addWidget(line_edit_medium)
        size_lyt.addWidget(line_edit_large)

        line_edit_tool_btn = lineedit.BaseLineEdit(text='BaseToolButton')
        line_edit_tool_btn.set_prefix_widget(
            buttons.BaseToolButton().image('user').icon_only())
        line_edit_label = lineedit.BaseLineEdit(text='BaseLabel')
        line_lbl = label.BaseLabel('User').mark().secondary()
        line_lbl.setAlignment(Qt.AlignCenter)
        line_lbl.setFixedWidth(80)
        line_edit_label.set_prefix_widget(line_lbl)
        line_edit_btn = lineedit.BaseLineEdit('BaseButton')
        push_btn = buttons.BaseButton('Go').primary()
        line_edit_btn.set_suffix_widget(push_btn)
        search_engine_line = lineedit.BaseLineEdit().search_engine().large()
        search_engine_line.returnPressed.connect(self._on_search)
        line_edit_options = lineedit.BaseLineEdit()
        combo_box = combobox.BaseComboBox()
        option_menu = menu.BaseMenu()
        option_menu.set_separator('|')
        option_menu.set_data([r'http://', r'https://'])
        combo_box.set_menu(option_menu)
        combo_box.set_value('http://')
        combo_box.setFixedWidth(90)
        line_edit_options.set_prefix_widget(combo_box)

        self.main_layout.addWidget(dividers.Divider('different size'))
        self.main_layout.addLayout(size_lyt)
        self.main_layout.addWidget(
            dividers.Divider('custom prefix and suffix widget'))
        self.main_layout.addWidget(line_edit_tool_btn)
        self.main_layout.addWidget(line_edit_label)
        self.main_layout.addWidget(line_edit_btn)
        self.main_layout.addWidget(dividers.Divider('preset'))
        self.main_layout.addWidget(label.BaseLabel('error'))
        self.main_layout.addWidget(
            lineedit.BaseLineEdit(
                'waring: file d:/ddd/ccc.jpg not exists.').error())
        self.main_layout.addWidget(label.BaseLabel('search'))
        self.main_layout.addWidget(lineedit.BaseLineEdit().search().small())
        self.main_layout.addWidget(label.BaseLabel('search engine'))
        self.main_layout.addWidget(search_engine_line)
        self.main_layout.addWidget(label.BaseLabel('file'))
        self.main_layout.addWidget(lineedit.BaseLineEdit().file().small())
        self.main_layout.addWidget(label.BaseLabel('folder'))
        self.main_layout.addWidget(lineedit.BaseLineEdit().folder().small())
        self.main_layout.addWidget(label.BaseLabel('options'))
        self.main_layout.addWidget(line_edit_options)
        self.main_layout.addStretch()
Exemple #7
0
    def ui(self):
        super(LoadingExample, self).ui()

        size_lyt = layouts.HorizontalLayout()
        size_list = [('Tiny', loading.CircleLoading.tiny),
                     ('Small', loading.CircleLoading.small),
                     ('Medium', loading.CircleLoading.medium),
                     ('Large', loading.CircleLoading.large),
                     ('Huge', loading.CircleLoading.huge)]
        for lbl, load_widget in size_list:
            size_lyt.addWidget(label.BaseLabel(lbl))
            size_lyt.addWidget(load_widget(parent=self))
            size_lyt.addSpacing(10)

        color_lyt = layouts.HorizontalLayout()
        color_list = [
            ('cyan', '#13c2c2'),
            ('green', '#52c41a'),
            ('magenta', '#eb2f96'),
            ('red', '#f5222d'),
            ('yellow', '#fadb14'),
            ('volcano', '#fa541c'),
        ]
        for lbl, load_color in color_list:
            color_lyt.addWidget(label.BaseLabel(lbl))
            color_lyt.addWidget(
                loading.CircleLoading(color=load_color, parent=self))
            color_lyt.addSpacing(10)

        self.main_layout.addWidget(dividers.Divider('different size'))
        self.main_layout.addLayout(size_lyt)
        self.main_layout.addWidget(dividers.Divider('different color'))
        self.main_layout.addLayout(color_lyt)
Exemple #8
0
    def ui(self):
        super(ToastExample, self).ui()

        btn1 = buttons.BaseButton('Normal Message').primary()
        btn2 = buttons.BaseButton('Success Message').success()
        btn3 = buttons.BaseButton('Warning Message').warning()
        btn4 = buttons.BaseButton('Error Message').danger()

        btn1.clicked.connect(
            partial(self._on_show_toast, toast.BaseToast.info,
                    {'text': 'Normal'}))
        btn2.clicked.connect(
            partial(self._on_show_toast, toast.BaseToast.success,
                    {'text': 'Success'}))
        btn3.clicked.connect(
            partial(self._on_show_toast, toast.BaseToast.warning,
                    {'text': 'Warning'}))
        btn4.clicked.connect(
            partial(self._on_show_toast, toast.BaseToast.error,
                    {'text': 'Error'}))

        sub_lyt1 = layouts.HorizontalLayout()
        sub_lyt1.addWidget(btn1)
        sub_lyt1.addWidget(btn2)
        sub_lyt1.addWidget(btn3)
        sub_lyt1.addWidget(btn4)

        loading_btn = buttons.BaseButton('Loading Toast').primary()
        loading_btn.clicked.connect(self._on_show_loading_toast)

        self.main_layout.addWidget(dividers.Divider('different type'))
        self.main_layout.addLayout(sub_lyt1)
        self.main_layout.addWidget(dividers.Divider('loading'))
        self.main_layout.addWidget(loading_btn)
        self.main_layout.addStretch()
Exemple #9
0
    def ui(self):
        super(MessageExample, self).ui()

        self.main_layout.addWidget(dividers.Divider('different type'))
        self.main_layout.addWidget(
            message.BaseMessage(text='Information message',
                                parent=self).info())
        self.main_layout.addWidget(
            message.BaseMessage(text='Success message', parent=self).success())
        self.main_layout.addWidget(
            message.BaseMessage(text='Warning message', parent=self).warning())
        self.main_layout.addWidget(
            message.BaseMessage(text='Error message', parent=self).error())
        self.main_layout.addWidget(dividers.Divider('closable'))
        self.main_layout.addWidget(
            message.BaseMessage(text='Closable message',
                                parent=self).closable())
        self.main_layout.addWidget(dividers.Divider('data bind'))

        data_bind_msg = message.BaseMessage(parent=self)
        data_bind_msg.set_closable(True)

        self.register_field('msg', '')
        self.register_field('msg_type', message.MessageTypes.INFO)
        self.bind('msg', data_bind_msg, 'text')
        self.bind('msg_type', data_bind_msg, 'theme_type')

        button_grp = group.PushButtonGroup()
        button_grp.set_button_list([
            {
                'text':
                'error',
                'clicked':
                partial(self._on_change_msg, 'password is wrong',
                        message.MessageTypes.ERROR)
            },
            {
                'text':
                'success',
                'clicked':
                partial(self._on_change_msg, 'Login success',
                        message.MessageTypes.SUCCESS)
            },
            {
                'text':
                'no more error',
                'clicked':
                partial(self._on_change_msg, '', message.MessageTypes.ERROR)
            },
        ])
        self.main_layout.addWidget(button_grp)
        self.main_layout.addWidget(data_bind_msg)
        self.main_layout.addStretch()
Exemple #10
0
    def ui(self):
        super(BadgeExample, self).ui()

        avatar_pixmap = tpDcc.ResourcesMgr().pixmap('user')

        standalone_lyt = layouts.HorizontalLayout()
        standalone_lyt.addWidget(badge.Badge.create_count(0, parent=self))
        standalone_lyt.addWidget(badge.Badge.create_count(20, parent=self))
        standalone_lyt.addWidget(badge.Badge.create_count(100, parent=self))
        standalone_lyt.addWidget(badge.Badge.create_dot(True, parent=self))
        standalone_lyt.addWidget(badge.Badge.create_text('new', parent=self))
        standalone_lyt.addStretch()

        btn = buttons.BaseToolButton().image('trash')
        new_avatar = avatar.Avatar.large(avatar_pixmap)
        btn_alert = buttons.BaseToolButton().image('notification').large()
        badge1 = badge.Badge.create_dot(True, widget=btn, parent=self)
        badge2 = badge.Badge.create_dot(True, widget=new_avatar, parent=self)
        self._badge3 = badge.Badge.create_dot(True, widget=btn_alert, parent=self)
        btn.clicked.connect(lambda: badge1._set_dot(False))

        spin_box = spinbox.BaseSpinBox()
        spin_box.setRange(0, 9999)
        spin_box.valueChanged.connect(self._on_set_count)
        spin_box.setValue(1)

        self.register_field('button1_selected', 'A')
        menu1 = menu.BaseMenu()
        menu1.set_data(['A', 'B', 'C', 'D'])
        select1 = combobox.BaseComboBox()
        select1.set_menu(menu1)
        self.bind('button1_selected', select1, 'value', signal='valueChanged')
        badge_hot = badge.Badge.create_text('hot', widget=label.BaseLabel('Hello Badge '), parent=self)

        sub_lyt1 = layouts.HorizontalLayout()
        sub_lyt1.addWidget(badge1)
        sub_lyt1.addWidget(badge2)
        sub_lyt1.addWidget(self._badge3)
        sub_lyt1.addStretch()

        sub_lyt2 = layouts.HorizontalLayout()
        sub_lyt2.addWidget(badge_hot)
        sub_lyt2.addWidget(select1)
        sub_lyt2.addStretch()

        self.main_layout.addWidget(dividers.Divider('use standalone'))
        self.main_layout.addLayout(standalone_lyt)
        self.main_layout.addWidget(dividers.Divider('different type'))
        self.main_layout.addLayout(sub_lyt1)
        self.main_layout.addWidget(spin_box)
        self.main_layout.addWidget(dividers.Divider('different type'))
        self.main_layout.addLayout(sub_lyt2)
        self.main_layout.addStretch()
Exemple #11
0
    def ui(self):
        super(BaseSaveWidget, self).ui()

        title_layout = layouts.HorizontalLayout()
        title_layout.setContentsMargins(2, 2, 0, 0)
        title_layout.setSpacing(2)
        self._icon_lbl = QLabel()
        self._icon_lbl.setMaximumSize(QSize(14, 14))
        self._icon_lbl.setMinimumSize(QSize(14, 14))
        self._icon_lbl.setScaledContents(True)
        self._title_lbl = QLabel()
        title_layout.addWidget(self._icon_lbl)
        title_layout.addWidget(self._title_lbl)

        self._folder_widget = directory.SelectFolder('Folder',
                                                     use_app_browser=True)

        buttons_layout = layouts.HorizontalLayout()
        buttons_layout.setContentsMargins(4, 4, 4, 4)
        buttons_layout.setSpacing(4)
        buttons_frame = QFrame()
        buttons_frame.setFrameShape(QFrame.NoFrame)
        buttons_frame.setFrameShadow(QFrame.Plain)
        buttons_frame.setLayout(buttons_layout)
        buttons_layout.addStretch()
        self.save_btn = buttons.BaseButton('Save')
        self.cancel_btn = buttons.BaseButton('Cancel')
        buttons_layout.addWidget(self.save_btn, parent=self)
        buttons_layout.addWidget(self.cancel_btn, parent=self)
        buttons_layout.addStretch()

        self._options_layout = layouts.VerticalLayout()
        self._options_layout.setContentsMargins(0, 0, 0, 0)
        self._options_layout.setSpacing(2)
        self._options_frame = QFrame()
        self._options_frame.setFrameShape(QFrame.NoFrame)
        self._options_frame.setFrameShadow(QFrame.Plain)
        self._options_frame.setLineWidth(0)
        self._options_frame.setLayout(self._options_layout)

        self._extra_layout = layouts.VerticalLayout()
        self._extra_layout.setContentsMargins(0, 0, 0, 0)
        self._extra_layout.setSpacing(2)

        self.main_layout.addLayout(title_layout)
        self.main_layout.addWidget(self._folder_widget)
        self._extra_layout.addWidget(self._options_frame)
        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addLayout(self._extra_layout)
        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addWidget(buttons_frame)
Exemple #12
0
    def ui(self):
        super(PageExample, self).ui()

        page1 = page.Page()
        page1.set_total(255)

        page2 = page.Page()
        page2.set_total(100)

        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addWidget(page1)
        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addWidget(page2)
        self.main_layout.addStretch()
Exemple #13
0
    def ui(self):
        super(SpinBoxExample, self).ui()

        class_list = [
            spinbox.BaseSpinBox, spinbox.BaseDoubleSpinBox,
            datetime.BaseDateTimeEdit, datetime.BaseDateEdit,
            datetime.BaseTimeEdit
        ]

        for cls in class_list:
            self.main_layout.addWidget(dividers.Divider(cls.__name__))
            lyt = layouts.HorizontalLayout()
            lyt.addWidget(cls().small())
            lyt.addWidget(cls().medium())
            lyt.addWidget(cls().large())
            self.main_layout.addLayout(lyt)

        extra_spinners_lyt1 = layouts.HorizontalLayout()
        spn1 = spinbox.BaseSpinBoxNumber(parent=self)
        spn2 = spinbox.BaseDoubleNumberSpinBox(parent=self)

        extra_spinners_lyt2 = layouts.HorizontalLayout()
        spn3 = spinbox.DragDoubleSpinBox(parent=self)
        spn4 = spinbox.DragDoubleSpinBoxLine(parent=self)

        extra_spinners_lyt1.addWidget(spn1)
        extra_spinners_lyt1.addWidget(spn2)
        extra_spinners_lyt2.addWidget(spn3)
        extra_spinners_lyt2.addWidget(spn4)

        self.main_layout.addWidget(dividers.Divider('Extra Base'))
        self.main_layout.addLayout(extra_spinners_lyt1)

        self.main_layout.addWidget(dividers.Divider('Draggable'))
        self.main_layout.addLayout(extra_spinners_lyt2)

        self.main_layout.addWidget(dividers.Divider('Pop calendar widget'))
        date_time_edit = datetime.BaseDateTimeEdit()
        date_time_edit.setCalendarPopup(True)
        date_edit = datetime.BaseDateEdit()
        date_edit.setCalendarPopup(True)
        time_edit = datetime.BaseTimeEdit()
        time_edit.setCalendarPopup(True)
        date_lyt = layouts.HorizontalLayout()
        date_lyt.addWidget(date_time_edit)
        date_lyt.addWidget(time_edit)
        date_lyt.addWidget(date_edit)
        self.main_layout.addLayout(date_lyt)
        self.main_layout.addStretch()
Exemple #14
0
    def ui(self):
        super(RadioButtonExample, self).ui()

        folder_icon = tpDcc.ResourcesMgr().icon('folder')
        play_icon = tpDcc.ResourcesMgr().icon('play')
        user_icon = tpDcc.ResourcesMgr().icon('user')

        lyt1 = layouts.HorizontalLayout()
        lyt1.addWidget(buttons.BaseRadioButton('Maya'))
        lyt1.addWidget(buttons.BaseRadioButton('Nuke'))
        lyt1.addWidget(buttons.BaseRadioButton('Houdini'))

        cbx_single = buttons.BaseRadioButton('Single')
        cbx_single.setChecked(True)
        cbx_single.setEnabled(False)

        lyt2 = layouts.HorizontalLayout()
        cbx_icon1 = buttons.BaseRadioButton('Folder')
        cbx_icon1.setIcon(folder_icon)
        cbx_icon2 = buttons.BaseRadioButton('Play')
        cbx_icon2.setIcon(play_icon)
        cbx_icon3 = buttons.BaseRadioButton('User')
        cbx_icon3.setIcon(user_icon)
        lyt2.addWidget(cbx_icon1)
        lyt2.addWidget(cbx_icon2)
        lyt2.addWidget(cbx_icon3)

        cbx_bind = buttons.BaseRadioButton('Data Bind')
        lbl = label.BaseLabel()
        btn = buttons.BaseButton(text='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', cbx_bind, 'checked', signal='toggled')
        self.bind('checked_text', lbl, 'text')

        self.main_layout.addWidget(dividers.Divider('Basic'))
        self.main_layout.addLayout(lyt1)
        self.main_layout.addWidget(cbx_single)
        self.main_layout.addWidget(dividers.Divider('Icon'))
        self.main_layout.addLayout(lyt2)
        self.main_layout.addWidget(dividers.Divider('Data Bind'))
        self.main_layout.addWidget(cbx_bind)
        self.main_layout.addWidget(lbl)
        self.main_layout.addWidget(btn)
        self.main_layout.addStretch()
Exemple #15
0
    def ui(self):
        super(OpenProjectWidget, self).ui()

        self._search_widget = search.SearchFindWidget()
        self._search_widget.set_placeholder_text('Filter Projects ...')

        self._projects_list = ProjectViewer(project_class=self._project_class)
        self._projects_list.setSizePolicy(QSizePolicy.Expanding,
                                          QSizePolicy.Expanding)

        buttons_layout = layouts.HorizontalLayout(spacing=0,
                                                  margins=(0, 0, 0, 0))
        buttons_layout.setAlignment(Qt.AlignCenter)

        buttons_layout1 = layouts.HorizontalLayout(spacing=0,
                                                   margins=(0, 0, 0, 0))
        buttons_layout1.setAlignment(Qt.AlignLeft)
        self._browse_widget = directory.SelectFolder(
            label_text='Projects Path', use_app_browser=True, use_icon=True)
        buttons_layout1.addWidget(self._browse_widget)

        buttons_layout.addLayout(buttons_layout1)

        self.main_layout.addWidget(self._search_widget)
        self.main_layout.addWidget(
            dividers.Divider('PROJECTS', alignment=Qt.AlignCenter))
        self.main_layout.addWidget(self._projects_list)
        self.main_layout.addLayout(buttons_layout)
Exemple #16
0
    def __init__(self, *args, **kwargs):
        super(SeparatorFieldWidget, self).__init__(*args, **kwargs)

        widget = dividers.Divider()
        widget.setObjectName('widget')
        widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
        self.set_widget(widget)
        if not self.data().get('title'):
            self.label().hide()
Exemple #17
0
    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()
Exemple #18
0
    def ui(self):
        super(BugWidget, self).ui()

        bug_data_frame = QFrame()
        bug_data_frame.setFrameStyle(QFrame.Raised | QFrame.StyledPanel)
        self._bug_data_layout = QGridLayout()
        bug_data_frame.setLayout(self._bug_data_layout)

        self._trace_text = QTextEdit()
        self._trace_text.setMinimumHeight(100)
        self._trace_text.setReadOnly(True)
        self._trace_text.setEnabled(False)

        self._title_line = QLineEdit()
        self._title_line.setPlaceholderText('Short title for the bug ...')
        self._steps_area = QTextEdit()
        txt_msg = 'Explain with details how to reproduce the error ...'
        steps_lbl = QLabel(txt_msg)
        if qtutils.is_pyside2():
            self._steps_area.setPlaceholderText(txt_msg)
        self._steps_area.setMinimumHeight(350)

        self._send_btn = QPushButton('Send Bug')
        self._send_btn.setIcon(tp.ResourcesMgr().icon('bug'))
        self._send_btn.setEnabled(False)

        self.main_layout.addWidget(dividers.Divider('Bug Data'))
        self.main_layout.addWidget(bug_data_frame)
        self.main_layout.addWidget(dividers.Divider('Error Trace'))
        self.main_layout.addWidget(self._trace_text)
        self.main_layout.addLayout(dividers.DividerLayout())
        self.main_layout.addWidget(self._title_line)
        if qtutils.is_pyside():
            self.main_layout.addWidget(steps_lbl)
        self.main_layout.addWidget(self._steps_area)
        self.main_layout.addLayout(dividers.DividerLayout())
        self.main_layout.addWidget(self._send_btn)

        self._fill_bug_data()
Exemple #19
0
    def ui(self):
        super(PushButtonExample, self).ui()

        upload_icon = tpDcc.ResourcesMgr().icon('upload')
        folder_icon = tpDcc.ResourcesMgr().icon('folder')
        ok_icon = tpDcc.ResourcesMgr().icon('ok')
        edit_icon = tpDcc.ResourcesMgr().icon('edit')
        trash_icon = tpDcc.ResourcesMgr().icon('trash')

        sub_layout_1 = layouts.HorizontalLayout()
        sub_layout_1.addWidget(buttons.BaseButton('Default'))
        sub_layout_1.addWidget(buttons.BaseButton('Primary').primary())
        sub_layout_1.addWidget(buttons.BaseButton('Success').success())
        sub_layout_1.addWidget(buttons.BaseButton('Warning').warning())
        sub_layout_1.addWidget(buttons.BaseButton('Danger').danger())

        sub_layout_2 = layouts.HorizontalLayout()
        sub_layout_2.addWidget(buttons.BaseButton('Upload', icon=upload_icon))
        sub_layout_2.addWidget(buttons.BaseButton('Submit', icon=folder_icon).primary())
        sub_layout_2.addWidget(buttons.BaseButton('Submit', icon=ok_icon).success())
        sub_layout_2.addWidget(buttons.BaseButton('Edit', icon=edit_icon).warning())
        sub_layout_2.addWidget(buttons.BaseButton('Delete', icon=trash_icon).danger())

        sub_layout_3 = layouts.HorizontalLayout()
        sub_layout_3.addWidget(buttons.BaseButton('Large').large().primary())
        sub_layout_3.addWidget(buttons.BaseButton('Medium').medium().primary())
        sub_layout_3.addWidget(buttons.BaseButton('Small').small().primary())

        disabled_button = buttons.BaseButton('Disabled')
        disabled_button.setEnabled(False)

        self.main_layout.addWidget(dividers.Divider('different type'))
        self.main_layout.addLayout(sub_layout_1)
        self.main_layout.addLayout(sub_layout_2)
        self.main_layout.addWidget(dividers.Divider('different size'))
        self.main_layout.addLayout(sub_layout_3)
        self.main_layout.addWidget(dividers.Divider('disabled'))
        self.main_layout.addWidget(disabled_button)
Exemple #20
0
    def ui(self):
        super(ToolButtonExample, self).ui()

        size_lyt = layouts.VerticalLayout()
        sub_lyt1 = layouts.HorizontalLayout()
        size_lyt.addLayout(sub_lyt1)

        sub_lyt1.addWidget(buttons.BaseToolButton().image('back').icon_only())
        sub_lyt1.addWidget(buttons.BaseToolButton().image('next').icon_only())
        sub_lyt1.addWidget(
            buttons.BaseToolButton().image('collapse').icon_only())
        sub_lyt1.addWidget(
            buttons.BaseToolButton().image('expand').icon_only())

        state_lyt = layouts.HorizontalLayout()
        btn1 = buttons.BaseToolButton().image('list').icon_only()
        btn1.setEnabled(False)
        btn2 = buttons.BaseToolButton().image('trash').icon_only()
        btn2.setCheckable(True)
        state_lyt.addWidget(btn1)
        state_lyt.addWidget(btn2)
        state_lyt.addStretch()

        btn_trash = buttons.BaseToolButton().image('trash').text_beside_icon()
        btn_trash.setText('Delete')
        btn_login = buttons.BaseToolButton().image('user').text_beside_icon()
        btn_login.setText('Login')
        btn_lyt = layouts.HorizontalLayout()
        btn_lyt.addWidget(btn_trash)
        btn_lyt.addWidget(btn_login)
        btn_lyt.addStretch()

        self.main_layout.addWidget(dividers.Divider('different button size'))
        self.main_layout.addLayout(size_lyt)
        self.main_layout.addWidget(dividers.Divider('disabled & checkable'))
        self.main_layout.addLayout(state_lyt)
        self.main_layout.addWidget(dividers.Divider('type=normal'))
        self.main_layout.addLayout(btn_lyt)
Exemple #21
0
    def ui(self):
        super(ListWidget, self).ui()

        widget_layout = layouts.VerticalLayout()
        btn_layout = layouts.HorizontalLayout()
        add_btn = buttons.BaseToolButton().image('plus').icon_only()
        add_btn.clicked.connect(self._on_add_default_entry)
        add_btn.setMinimumWidth(25)
        btn_layout.addStretch()
        btn_layout.addWidget(add_btn)
        widget_layout.addWidget(dividers.Divider())
        widget_layout.addLayout(btn_layout)

        self.main_layout.addLayout(widget_layout)
Exemple #22
0
    def ui(self):
        super(OptionsViewer, self).ui()

        edit_mode_icon = resources.icon('edit')
        move_up_icon = resources.icon('sort_up')
        move_down_icon = resources.icon('sort_down')
        remove_icon = resources.icon('delete')

        self._edit_widget = QWidget()
        top_layout = layouts.HorizontalLayout()
        top_layout.setContentsMargins(0, 0, 0, 0)
        top_layout.setSpacing(2)
        self._edit_widget.setLayout(top_layout)
        self.main_layout.addWidget(self._edit_widget)
        self._edit_mode_btn = buttons.BaseButton(parent=self)
        self._edit_mode_btn.setIcon(edit_mode_icon)
        self._edit_mode_btn.setCheckable(True)
        top_layout.addWidget(self._edit_mode_btn)

        horizontal_separator = QFrame()
        horizontal_separator.setFrameShape(QFrame.VLine)
        horizontal_separator.setFrameShadow(QFrame.Sunken)
        top_layout.addWidget(horizontal_separator)

        self._move_up_btn = buttons.BaseButton(parent=self)
        self.move_down_btn = buttons.BaseButton(parent=self)
        self.remove_btn = buttons.BaseButton(parent=self)
        self._move_up_btn.setIcon(move_up_icon)
        self.move_down_btn.setIcon(move_down_icon)
        self.remove_btn.setIcon(remove_icon)
        self._move_up_btn.setVisible(False)
        self.move_down_btn.setVisible(False)
        self.remove_btn.setVisible(False)
        top_layout.addWidget(self._move_up_btn)
        top_layout.addWidget(self.move_down_btn)
        top_layout.addWidget(self.remove_btn)
        top_layout.addStretch()
        self.main_layout.addWidget(dividers.Divider())

        self._scroll = QScrollArea()
        self._scroll.setSizePolicy(QSizePolicy.Expanding,
                                   QSizePolicy.Expanding)
        self._scroll.setFocusPolicy(Qt.NoFocus)
        self._scroll.setWidgetResizable(True)
        self.setFocusPolicy(Qt.NoFocus)
        self._options_list = self.OPTION_LIST_CLASS(parent=self)
        self._scroll.setWidget(self._options_list)

        self.main_layout.addWidget(self._scroll)
Exemple #23
0
    def ui(self):
        super(SliderPanel, self).ui()

        self._title_label = label.BaseLabel(parent=self).h4()
        self._title_label.setText(self._title)

        self._close_btn = buttons.BaseToolButton(
            parent=self).icon_only().image('close', theme='window').small()
        self._close_btn.setVisible(self._closable or False)

        title_layout = layouts.HorizontalLayout()
        title_layout.addWidget(self._title_label)
        title_layout.addStretch()
        title_layout.addWidget(self._close_btn)

        self._button_layout = layouts.HorizontalLayout()
        self._button_layout.addStretch()

        self._scroll_area = QScrollArea()
        self.main_layout.addLayout(title_layout)
        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addWidget(self._scroll_area)
        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addLayout(self._button_layout)
Exemple #24
0
    def ui(self):
        super(SwitchExample, self).ui()

        switch1 = switch.SwitchWidget()
        switch1.setChecked(True)
        switch2 = switch.SwitchWidget()
        switch3 = switch.SwitchWidget()
        switch3.setEnabled(False)
        lyt = layouts.HorizontalLayout()
        lyt.addWidget(switch1)
        lyt.addWidget(switch2)
        lyt.addWidget(switch3)

        size_lyt = layouts.FormLayout()
        size_lyt.addRow('Tiny', switch.SwitchWidget().tiny())
        size_lyt.addRow('Small', switch.SwitchWidget().small())
        size_lyt.addRow('Medium', switch.SwitchWidget().medium())
        size_lyt.addRow('Large', switch.SwitchWidget().large())
        size_lyt.addRow('Huge', switch.SwitchWidget().huge())

        self.main_layout.addWidget(dividers.Divider('Basic'))
        self.main_layout.addLayout(lyt)
        self.main_layout.addWidget(dividers.Divider('different size'))
        self.main_layout.addLayout(size_lyt)
Exemple #25
0
    def ui(self):
        super(MenuTabWidget, self).ui()

        self.tool_btn_grp = MenuTabBlockButtonGroup()

        bar_widget = QWidget()
        bar_widget.setObjectName('bar_widget')
        self._bar_layout = layouts.HorizontalLayout(margins=(10, 0, 10, 0))
        bar_widget.setLayout(self._bar_layout)
        self._bar_layout.addWidget(self.tool_btn_grp)
        self._bar_layout.addStretch()

        self.main_layout.addWidget(bar_widget)
        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addSpacing(5)
Exemple #26
0
    def ui(self):
        super(BoneHierarchyWidget, self).ui()

        self._tree_hierarchy = QTreeWidget()
        self._node_line = lineedit.BaseLineEdit(parent=self)
        self._node_line.setReadOnly(True)
        self._ok_btn = buttons.BaseButton('Ok')
        self._cancel_btn = buttons.BaseButton('Cancel')
        buttons_layout = layouts.HorizontalLayout()
        buttons_layout.addStretch()
        buttons_layout.addWidget(self._ok_btn)
        buttons_layout.addWidget(self._cancel_btn)

        self.main_layout.addWidget(self._tree_hierarchy)
        self.main_layout.addWidget(self._node_line)
        self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addLayout(buttons_layout)
    def ui(self):
        super(InfoMessage, self).ui()

        self.setMaximumHeight(150)

        info_icon = resources.icon('info')
        self._expandable_frame = expandables.ExpandableFrame(icon=info_icon,
                                                             parent=self)
        self._expandable_frame.setFrameStyle(QFrame.StyledPanel
                                             | QFrame.Raised)

        expandable_layout = layouts.HorizontalLayout(margins=(2, 2, 2, 2))

        texts_layout = layouts.HorizontalLayout(spacing=0,
                                                margins=(0, 0, 0, 0))
        self._description_text = QPlainTextEdit(parent=self)
        self._description_text.setReadOnly(True)
        self._description_text.setSizePolicy(QSizePolicy.Preferred,
                                             QSizePolicy.Maximum)
        self._description_text.setFocusPolicy(Qt.NoFocus)
        self._description_text.setFrameShape(QFrame.NoFrame)
        self._instructions_widget = QWidget()
        instructions_layout = layouts.VerticalLayout(spacing=2,
                                                     margins=(0, 0, 0, 0))
        self._instructions_widget.setLayout(instructions_layout)
        self._instructions_text = QTextEdit(parent=self)
        self._instructions_text.setReadOnly(True)
        self._instructions_text.setSizePolicy(QSizePolicy.Preferred,
                                              QSizePolicy.Maximum)
        self._instructions_text.setFocusPolicy(Qt.NoFocus)
        self._instructions_text.setFrameShape(QFrame.NoFrame)
        self._instructions_widget.setVisible(False)
        # self._instructions_text.insertHtml("<ul><li>text 1</li><li>text 2</li><li>text 3</li></ul> <br />")
        instructions_layout.addWidget(dividers.Divider('Instructions'))
        instructions_layout.addWidget(self._instructions_text)
        texts_layout.addWidget(self._description_text)
        texts_layout.addWidget(self._instructions_widget)

        content_layout = layouts.VerticalLayout()
        content_layout.addLayout(texts_layout)
        expandable_layout.addLayout(content_layout)

        self._expandable_frame.addLayout(expandable_layout)

        self.main_layout.addWidget(self._expandable_frame)
Exemple #28
0
    def ui(self):
        super(PreferencesWidget, self).ui()

        self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        self._splitter = QSplitter()
        self._splitter.setOrientation(Qt.Horizontal)
        self._splitter.setSizePolicy(QSizePolicy.Preferred,
                                     QSizePolicy.Expanding)
        self._scroll_area = QScrollArea()
        self._scroll_area.setWidgetResizable(True)
        self._scroll_area.setSizePolicy(QSizePolicy.Expanding,
                                        QSizePolicy.Expanding)
        # self._scroll_area.setMinimumWidth(200)
        self._scroll_area_widget_contents = QWidget()
        # self._scroll_area_widget_contents.setGeometry(QRect(0, 0, 480, 595))
        self._scroll_area_layout = layouts.VerticalLayout(spacing=2,
                                                          margins=(1, 1, 1, 1))
        self._scroll_area_layout.setAlignment(Qt.AlignTop)
        self._scroll_area_widget_contents.setLayout(self._scroll_area_layout)
        self._categories_layout = layouts.VerticalLayout()
        self._stack = stack.SlidingStackedWidget()
        self._stack.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self._stack.set_vertical_mode()
        self._buttons_layout = layouts.HorizontalLayout(spacing=1,
                                                        margins=(0, 0, 0, 0))
        self._save_prefs_close_btn = buttons.BaseButton(
            'Save and Close', icon=resources.icon('save'), parent=self)
        self._close_btn = buttons.BaseButton('Close',
                                             icon=resources.icon('cancel'),
                                             parent=self)

        self._buttons_layout.addStretch()
        self._buttons_layout.addWidget(self._save_prefs_close_btn)
        self._buttons_layout.addWidget(self._close_btn)
        self._scroll_area_layout.addLayout(self._categories_layout)
        self._scroll_area.setWidget(self._scroll_area_widget_contents)
        self._splitter.addWidget(self._scroll_area)
        self._splitter.addWidget(self._stack)
        self._splitter.setSizes([150, 450])

        self.main_layout.addWidget(self._splitter)
        self.main_layout.addWidget(dividers.Divider(parent=self))
        self.main_layout.addLayout(self._buttons_layout)
Exemple #29
0
    def ui(self):
        super(ScriptEditorView, self).ui()

        self._stack = stack.SlidingOpacityStackedWidget(parent=self)
        main_splitter = QSplitter(Qt.Vertical, parent=self)
        self._output_console = console.OutputConsole(parent=self)
        # NOTE: Scripts Tab MUST pass ScriptEditor as parent because internally some ScriptEditor functions
        # NOTE: are connected to some signals. If we don't do this Maya will crash when opening new Script Editors :)
        self._scripts_tab = script.ScriptsTab(controller=self._controller,
                                              parent=self)

        main_splitter.addWidget(self._output_console)
        main_splitter.addWidget(self._scripts_tab)

        self._menu_bar = self._setup_menubar()
        self._tool_bar = self._setup_toolbar()
        self._tool_bar_divider = dividers.Divider()

        # Empty widget
        empty_widget = QWidget(self)
        empty_layout = layouts.HorizontalLayout(spacing=5,
                                                margins=(5, 5, 5, 5))
        empty_widget.setLayout(empty_layout)
        main_empty_layout = layouts.VerticalLayout(spacing=5,
                                                   margins=(5, 5, 5, 5))
        self._empty_label = label.BaseLabel('No Scripts Opened',
                                            parent=self).h4().strong()
        self._empty_label.setAlignment(Qt.AlignCenter)
        main_empty_layout.addStretch()
        main_empty_layout.addWidget(self._empty_label)
        main_empty_layout.addStretch()
        empty_layout.addStretch()
        empty_layout.addLayout(main_empty_layout)
        empty_layout.addStretch()

        self._stack.addWidget(empty_widget)
        self._stack.addWidget(main_splitter)

        self.main_layout.addWidget(self._menu_bar)
        self.main_layout.addWidget(self._tool_bar)
        self.main_layout.addWidget(self._tool_bar_divider)
        self.main_layout.addWidget(self._stack)
Exemple #30
0
    def ui(self):
        super(BaseCard, self).ui()

        widget_theme = self.theme()

        map_label = {
            widget_theme.small if widget_theme else theme.Theme.Sizes.SMALL:
            (label.BaseLabel.Levels.H4, 10),
            widget_theme.medium if widget_theme else theme.Theme.Sizes.MEDIUM:
            (label.BaseLabel.Levels.H3, 15),
            widget_theme.large if widget_theme else theme.Theme.Sizes.LARGE:
            (label.BaseLabel.Levels.H2, 20)
        }
        size = self._size or widget_theme.default if widget_theme else theme.Theme.Sizes.MEDIUM
        padding = map_label.get(size)[-1]

        self._title_layout = layouts.HorizontalLayout(margins=(padding,
                                                               padding,
                                                               padding,
                                                               padding))
        self._title_label = label.BaseLabel(text=self._title, parent=self)
        self._title_label.level = map_label.get(size)[0]
        if self._image:
            self._title_icon = avatar.Avatar()
            self._title_icon.image = self._image
            self._title_icon.theme_size = size
            self._title_layout.addWidget(self._title_icon)
        self._title_layout.addWidget(self._title_label)
        self._title_layout.addStretch()
        if self._extra:
            self._extra_button = buttons.BaseToolButton(
                parent=self).image('more').icon_only()
            self._title_layout.addWidget(self._extra_button)

        self._content_layout = layouts.VerticalLayout()

        if self._title:
            self.main_layout.addLayout(self._title_layout)
            self.main_layout.addWidget(dividers.Divider())
        self.main_layout.addLayout(self._content_layout)