コード例 #1
0
    def edit_attachments(self):

        if self.attachments_editor_toggled:
            self.attachments_editor_toggled = False
            self.edit_attachments_button.setIcon(
                gf.get_icon('chevron-right', icons_set='mdi',
                            scale_factor=1.2))
            self.edit_attachments_widget.close()
        else:
            self.attachments_editor_toggled = True
            self.edit_attachments_button.setIcon(
                gf.get_icon('chevron-down', icons_set='mdi', scale_factor=1.2))

            files_objects = self.get_attachmnents_files_objects()
            screenshots = self.get_screenshots_to_upload_list()

            # files_objects = True

            if files_objects or screenshots:
                self.edit_attachments_widget = Ui_attachmentsEditorWidget(
                    files_objects=files_objects,
                    screenshots=screenshots,
                    parent=self)

                self.main_layout.addWidget(self.edit_attachments_widget)
コード例 #2
0
    def file_context_menu(self):
        open_file = QtGui.QAction('Open File', self.filesTreeWidget)
        open_file.setIcon(gf.get_icon('folder'))
        open_file.triggered.connect(lambda: self.open_file_from_tree(
            self.filesTreeWidget.currentIndex()))

        open_file_folder = QtGui.QAction('Show Folder', self.filesTreeWidget)
        open_file_folder.setIcon(gf.get_icon('folder-open'))
        open_file_folder.triggered.connect(self.open_folder_from_tree)

        copy_path = QtGui.QAction("Copy File Path", self.previewGraphicsView)
        copy_path.setIcon(gf.get_icon('copy'))
        copy_path.triggered.connect(self.copy_path_from_tree)

        edit_info = QtGui.QAction('Edit Info', self.filesTreeWidget)
        edit_info.setIcon(gf.get_icon('edit'))
        edit_info.triggered.connect(self.edit_file_sobject)

        delete_sobject = QtGui.QAction('Delete', self.filesTreeWidget)
        delete_sobject.setIcon(gf.get_icon('remove'))
        # delete_sobject.triggered.connect(lambda: self.delete_sobject())

        menu = QtGui.QMenu()

        menu.addAction(open_file)
        menu.addAction(open_file_folder)
        menu.addAction(copy_path)
        menu.addAction(edit_info)
        menu.addAction(delete_sobject)

        return menu
コード例 #3
0
    def customize_ui(self):
        if env_mode.get_mode() == 'standalone':
            self.actionDock_undock.setVisible(False)

        self.actionExit.setIcon(gf.get_icon('close'))
        self.actionConfiguration.setIcon(gf.get_icon('wrench'))
        self.create_info_label()
コード例 #4
0
    def create_toolbar(self):

        self.collapsable_toolbar = Ui_horizontalCollapsableWidget()
        buttons_layout = QtGui.QHBoxLayout()
        buttons_layout.setSpacing(0)
        buttons_layout.setContentsMargins(0, 0, 0, 0)
        self.collapsable_toolbar.set_direction('right')
        self.collapsable_toolbar.setLayout(buttons_layout)
        self.collapsable_toolbar.setCollapsed(False)

        self.save_button = QtGui.QToolButton()
        self.save_button.setAutoRaise(True)
        self.save_button.setIcon(
            gf.get_icon('content-save', icons_set='mdi', scale_factor=1))
        self.save_button.setToolTip('Save Current Changes')

        self.refresh_button = QtGui.QToolButton()
        self.refresh_button.setAutoRaise(True)
        self.refresh_button.setIcon(
            gf.get_icon('refresh', icons_set='mdi', scale_factor=1.3))
        self.refresh_button.setToolTip('Refresh Current Tasks')

        buttons_layout.addWidget(self.save_button)
        buttons_layout.addWidget(self.refresh_button)

        self.main_layout.addWidget(self.collapsable_toolbar, 0, 0, 1, 1)
コード例 #5
0
    def watch_items_menu(self):

        # TODO Make this work

        enable_watch = QtGui.QAction('Enable Watch',
                                     self.watchFoldersTreeWidget)
        enable_watch.setIcon(gf.get_icon('eye'))
        # enable_watch.triggered.connect(self.open_file_from_tree)

        disable_watch = QtGui.QAction('Disable Watch',
                                      self.watchFoldersTreeWidget)
        disable_watch.setIcon(gf.get_icon('eye-slash'))
        # disable_watch.triggered.connect(self.open_file_from_tree)

        edit_watch = QtGui.QAction('Edit Watch', self.watchFoldersTreeWidget)
        edit_watch.setIcon(gf.get_icon('edit'))
        # edit_watch.triggered.connect(self.open_file_from_tree)

        delete_watch = QtGui.QAction('Delete Watch',
                                     self.watchFoldersTreeWidget)
        delete_watch.setIcon(gf.get_icon('remove'))
        # edit_watch.triggered.connect(self.open_file_from_tree)

        menu = QtGui.QMenu()

        menu.addAction(enable_watch)
        menu.addAction(disable_watch)
        menu.addAction(edit_watch)
        menu.addAction(delete_watch)

        return menu
コード例 #6
0
    def create_presets_combo_box(self):
        self.grid_presets = QtGui.QGridLayout()

        self.presets_combo_box = QtGui.QComboBox()

        self.add_new_preset_button = QtGui.QToolButton()
        self.add_new_preset_button.setAutoRaise(True)
        self.add_new_preset_button.setIcon(gf.get_icon('plus-box', icons_set='mdi', scale_factor=1.2))
        self.add_new_preset_button.clicked.connect(self.add_new_preset)
        self.add_new_preset_button.setToolTip('Create new Preset and Save (from current state)')
        self.add_new_preset_button.setHidden(True)

        self.save_new_preset_button = QtGui.QToolButton()
        self.save_new_preset_button.setAutoRaise(True)
        self.save_new_preset_button.setIcon(gf.get_icon('content-save', icons_set='mdi', scale_factor=1))
        self.save_new_preset_button.clicked.connect(self.save_preset_to_server)
        self.save_new_preset_button.setToolTip('Save Current Preset Changes')
        self.save_new_preset_button.setHidden(True)

        self.remove_preset_button = QtGui.QToolButton()
        self.remove_preset_button.setAutoRaise(True)
        self.remove_preset_button.setIcon(gf.get_icon('delete', icons_set='mdi', scale_factor=1))
        self.remove_preset_button.clicked.connect(self.delete_preset_from_server)
        self.remove_preset_button.setToolTip('Remove Current Preset')
        self.remove_preset_button.setHidden(True)

        self.grid_presets.addWidget(self.remove_preset_button, 0, 0, 1, 1)
        self.grid_presets.addWidget(self.presets_combo_box, 0, 1, 1, 1)
        self.grid_presets.addWidget(self.save_new_preset_button, 0, 2, 1, 1)
        self.grid_presets.addWidget(self.add_new_preset_button, 0, 3, 1, 1)

        self.grid_presets.setColumnStretch(1, 0)

        self.grid.addLayout(self.grid_presets, 0, 0, 1, 2)
コード例 #7
0
    def file_context_menu(self):
        open_file = QtGui.QAction('Open File', self.dropTreeWidget)
        open_file.setIcon(gf.get_icon('folder'))
        open_file.triggered.connect(self.open_file_from_tree)

        open_file_folder = QtGui.QAction('Show Folder', self.dropTreeWidget)
        open_file_folder.setIcon(gf.get_icon('folder-open'))
        open_file_folder.triggered.connect(self.open_folder_from_tree)

        copy_path = QtGui.QAction("Copy File Path", self.dropTreeWidget)
        copy_path.setIcon(gf.get_icon('copy'))
        copy_path.triggered.connect(self.copy_path_from_tree)

        copy_abs_path = QtGui.QAction("Copy Absolute File Path",
                                      self.dropTreeWidget)
        copy_abs_path.setIcon(gf.get_icon('copy'))
        copy_abs_path.triggered.connect(self.copy_abs_path_from_tree)

        add_file = QtGui.QAction('Add More Files', self.dropTreeWidget)
        add_file.setIcon(gf.get_icon('folder-open'))
        add_file.triggered.connect(self.add_files_from_menu)

        menu = QtGui.QMenu()

        menu.addAction(open_file)
        menu.addAction(open_file_folder)
        menu.addAction(copy_path)
        menu.addAction(copy_abs_path)
        menu.addAction(add_file)

        return menu
コード例 #8
0
    def create_ui(self):
        if self.project:
            self.setWindowTitle('Commit Queue for Project: {0}'.format(self.project.info.get('title')))
        else:
            self.setWindowTitle('Global Commit Queue')

        # self.setWindowFlags(QtCore.Qt.Window | QtCore.Qt.WindowStaysOnTopHint)
        self.setWindowFlags(QtCore.Qt.Window)

        server_thread_pool = QtCore.QThreadPool()
        server_thread_pool.setMaxThreadCount(1)
        env_inst.set_thread_pool(server_thread_pool, 'commit_queue/server_thread_pool')

        self.create_files_queue_tree_context_menu()
        self.create_progress_bar_widget()

        self.clearQueuePushButton.setIcon(gf.get_icon('trash'))
        self.clearQueuePushButton.setEnabled(False)
        self.commitAllPushButton.setIcon(gf.get_icon('save'))
        self.commitAllPushButton.setEnabled(False)

        self.create_empty_queue_label()

        self.customize_ui()

        self.controls_actions()
コード例 #9
0
    def create_upload_wdg(self):

        self.make_screenshot_button = QtGui.QToolButton()
        self.make_screenshot_button.setAutoRaise(True)
        self.make_screenshot_button.setIcon(gf.get_icon('camera'))

        self.choose_preview_button = QtGui.QToolButton()
        self.choose_preview_button.setAutoRaise(True)
        self.choose_preview_button.setIcon(gf.get_icon('folder-open'))

        self.edit_previews_button = QtGui.QToolButton()
        self.edit_previews_button.setAutoRaise(True)
        self.edit_previews_button.setIcon(gf.get_icon('edit'))

        self.clear_previews_button = QtGui.QToolButton()
        self.clear_previews_button.setAutoRaise(True)
        self.clear_previews_button.setIcon(gf.get_icon('trash'))

        self.create_drop_plate()

        self.upload_wdg = QtGui.QWidget()
        self.upload_wdg_layout = QtGui.QHBoxLayout()
        self.upload_wdg.setLayout(self.upload_wdg_layout)
        self.upload_wdg_layout.setSpacing(6)
        self.upload_wdg_layout.setContentsMargins(0, 0, 0, 0)

        self.upload_wdg_layout.addWidget(self.make_screenshot_button)
        self.upload_wdg_layout.addWidget(self.choose_preview_button)
        self.upload_wdg_layout.addWidget(self.drop_plate)
        self.upload_wdg_layout.addWidget(self.edit_previews_button)
        self.upload_wdg_layout.addWidget(self.clear_previews_button)
コード例 #10
0
    def create_edits_widgets(self):

        self.context_edit = QtGui.QLineEdit()
        self.context_edit.setText(self.get_only_context())

        self.context_edit_label = QtGui.QLabel('Context:')

        self.explicit_file_name_edit = QtGui.QLineEdit()
        self.explicit_file_name_edit.setText(self.args_dict['explicit_filename'])
        self.explicit_file_name_label = QtGui.QLabel('Explicit File Name:')

        self.context_as_file_name_checkbox = QtGui.QCheckBox('Context as Explicit File Name')

        self.previews_layout = QtGui.QHBoxLayout()
        self.previews_layout.setContentsMargins(0, 0, 0, 0)
        self.previews_widget = QtGui.QWidget()
        self.previews_widget.setLayout(self.previews_layout)

        self.make_screenshot_button = QtGui.QToolButton()
        self.make_screenshot_button.setAutoRaise(True)
        self.make_screenshot_button.setIcon(gf.get_icon('camera'))

        self.choose_preview_button = QtGui.QToolButton()
        self.choose_preview_button.setAutoRaise(True)
        self.choose_preview_button.setIcon(gf.get_icon('folder-open'))

        self.edit_previews_button = QtGui.QToolButton()
        self.edit_previews_button.setAutoRaise(True)
        self.edit_previews_button.setIcon(gf.get_icon('edit'))

        self.clear_previews_button = QtGui.QToolButton()
        self.clear_previews_button.setAutoRaise(True)
        self.clear_previews_button.setIcon(gf.get_icon('trash'))

        self.create_drop_plate()

        self.previews_layout.addWidget(self.make_screenshot_button)
        self.previews_layout.addWidget(self.choose_preview_button)
        self.previews_layout.addWidget(self.drop_plate)
        self.previews_layout.addWidget(self.edit_previews_button)
        self.previews_layout.addWidget(self.clear_previews_button)

        self.repo_combo_box = QtGui.QComboBox()
        self.repo_label = QtGui.QLabel('Repository:')
        self.fill_repo_combo_box()

        self.main_layout.addWidget(self.context_edit, 9, 1, 1, 1)
        self.main_layout.addWidget(self.context_edit_label, 9, 0, 1, 1)
        self.main_layout.addWidget(self.explicit_file_name_edit, 10, 1, 1, 1)
        self.main_layout.addWidget(self.explicit_file_name_label, 10, 0, 1, 1)
        self.main_layout.addWidget(self.repo_combo_box, 11, 1, 1, 1)
        self.main_layout.addWidget(self.repo_label, 11, 0, 1, 1)
        self.main_layout.addWidget(self.context_as_file_name_checkbox, 12, 0, 1, 2)
        self.main_layout.addWidget(self.previews_widget, 0, 0, 1, 2)
コード例 #11
0
    def watch_items_menu(self):

        add_task = QtGui.QAction('Add Task', self.tasks_options_button)
        add_task.setIcon(gf.get_icon('plus', icons_set='mdi', scale_factor=1))
        add_task.triggered.connect(self.add_new_task)

        edit_task = QtGui.QAction('Edit Task', self.tasks_options_button)
        edit_task.setIcon(
            gf.get_icon('square-edit-outline', icons_set='mdi',
                        scale_factor=1))
        edit_task.triggered.connect(self.edit_task)

        delete_task = QtGui.QAction('Delete Task', self.tasks_options_button)
        delete_task.setIcon(
            gf.get_icon('delete-forever', icons_set='mdi', scale_factor=1))
        delete_task.triggered.connect(self.delete_task)

        # enable_watch = QtGui.QAction('Enable Watch', self.tasks_options_button)
        # enable_watch.setIcon(gf.get_icon('eye'))
        #
        # disable_watch = QtGui.QAction('Disable Watch', self.tasks_options_button)
        # disable_watch.setIcon(gf.get_icon('eye-slash'))

        menu = QtGui.QMenu()

        menu.addAction(add_task)

        if self.tasks_sobjects_list:

            menu.addAction(edit_task)
            menu.addAction(delete_task)
            menu.addSeparator()

            for task_sobject in self.tasks_sobjects_list:
                task_action = QtGui.QAction(
                    u'Task: {0} / {1}'.format(
                        task_sobject.get_value('context'),
                        task_sobject.get_value('assigned')),
                    self.tasks_options_button)

                task_action.setCheckable(True)

                if task_sobject == self.current_task_sobject:
                    task_action.setChecked(True)
                elif task_sobject.get_value(
                        'login') == env_inst.get_current_login():
                    task_action.setChecked(True)

                task_action.triggered.connect(
                    partial(self.customize_by_task_sobject, task_sobject))

                menu.addAction(task_action)

        return menu
コード例 #12
0
    def create_float_buttons(self):
        self.clear_button_layout = QtGui.QGridLayout(self.plain_text_editor)
        self.clear_button_layout.setContentsMargins(0, 0, 0, 0)
        self.clear_button_layout.setSpacing(0)

        self.clear_button = QtGui.QToolButton()
        self.clear_button.setAutoRaise(True)
        self.clear_button.setFixedSize(24, 24)
        self.clear_button.setIcon(gf.get_icon('lock-open', icons_set='mdi'))

        self.clear_button_layout.addWidget(self.clear_button, 1, 3, 1, 1)
        self.clear_button_layout.addItem(
            QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                              QtGui.QSizePolicy.Minimum), 1, 4, 1, 1)

        self.clear_button.clicked.connect(self.unfreeze_text_edit)

        self.lock_button = QtGui.QToolButton()
        self.lock_button.setAutoRaise(True)
        self.lock_button.setFixedSize(24, 24)
        self.lock_button.setIcon(gf.get_icon('lock', icons_set='mdi'))

        self.clear_button_layout.addWidget(self.lock_button, 1, 2, 1, 1)
        # self.clear_button_layout.addItem(QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum), 1, 3, 1, 1)

        self.lock_button.clicked.connect(self.freeze_text_edit)

        self.edit_button = QtGui.QToolButton()
        self.edit_button.setAutoRaise(True)
        self.edit_button.setFixedSize(24, 24)
        self.edit_button.setIcon(gf.get_icon('pencil', icons_set='mdi'))

        self.clear_button_layout.addWidget(self.edit_button, 1, 0, 1, 1)
        self.clear_button_layout.addItem(
            QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                              QtGui.QSizePolicy.Expanding), 0, 0, 1, 3)

        self.edit_button.clicked.connect(self.set_edit_mode)

        self.save_button = QtGui.QToolButton()
        self.save_button.setAutoRaise(True)
        self.save_button.setFixedSize(24, 24)
        self.save_button.setIcon(
            gf.get_icon('content-save',
                        icons_set='mdi',
                        color=Qt4Gui.QColor(0, 255, 128, 192)))
        self.clear_button_layout.addWidget(self.save_button, 1, 1, 1, 1)

        self.save_button.clicked.connect(self.save_current_column)

        self.clear_button.setHidden(True)
        self.save_button.setHidden(True)
        self.lock_button.setHidden(True)
コード例 #13
0
    def fill_sctipts_tree_widget(self, async_run=True):

        # getting all the scripts from db
        # if async_run:
        #     scripts_sobjects = yield env_inst.async_task(tc.get_custom_scripts)
        # else:
        scripts_sobjects = tc.get_custom_scripts()

        if scripts_sobjects:
            scripts_sobjects_by_folder = tc.group_sobject_by(
                scripts_sobjects, 'folder')

            # adding scripts to tree widget
            for folder_path, sobjects_list in scripts_sobjects_by_folder.items(
            ):
                paths_list = folder_path.split('/')
                exist_item = gf.check_tree_items_exists(
                    self.scripts_tree_widget, paths_list[0])

                if len(paths_list) > 1:
                    paths_list.reverse()
                    top_item_title = paths_list.pop()

                    if exist_item:
                        gf.recursive_add_items(exist_item, paths_list,
                                               sobjects_list)
                    else:
                        root_item = QtGui.QTreeWidgetItem(
                            self.scripts_tree_widget)
                        root_item.setText(0, top_item_title)
                        root_item.setData(0, 12, top_item_title)
                        root_item.setData(0, QtCore.Qt.UserRole, sobjects_list)
                        root_item.setIcon(
                            0, gf.get_icon('folder', icons_set='mdi'))
                        gf.recursive_add_items(root_item, paths_list,
                                               sobjects_list)
                        self.scripts_tree_widget.addTopLevelItem(root_item)
                else:
                    if exist_item:
                        for sobject in sobjects_list:
                            gf.add_child_items(exist_item, sobject)
                    else:
                        root_item = QtGui.QTreeWidgetItem(
                            self.scripts_tree_widget)
                        root_item.setText(0, folder_path)
                        root_item.setData(0, 12, folder_path)
                        root_item.setData(0, QtCore.Qt.UserRole, sobjects_list)
                        root_item.setIcon(
                            0, gf.get_icon('folder', icons_set='mdi'))
                        self.scripts_tree_widget.addTopLevelItem(root_item)
                        for sobject in sobjects_list:
                            gf.add_child_items(root_item, sobject)
コード例 #14
0
    def create_graphics_view_context_menu(self):
        self.previewGraphicsView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)

        self.menu_actions = []

        open_external = QtGui.QAction('Open File', self.previewGraphicsView)
        open_external.setIcon(gf.get_icon('folder'))
        open_external.triggered.connect(self.open_file_from_graphics_view)

        open_file_folder = QtGui.QAction('Show Folder', self.previewGraphicsView)
        open_file_folder.setIcon(gf.get_icon('folder-open'))
        open_file_folder.triggered.connect(self.open_folder_from_graphics_view)

        copy_path = QtGui.QAction('Copy File Path', self.previewGraphicsView)
        copy_path.setIcon(gf.get_icon('copy'))
        copy_path.triggered.connect(self.copy_path_from_graphics_view)

        copy_web_path = QtGui.QAction('Copy Web Link', self.previewGraphicsView)
        copy_web_path.setIcon(gf.get_icon('link', icons_set='mdi', scale_factor=1))
        copy_web_path.triggered.connect(self.copy_web_path_from_graphics_view)

        copy_to_clipboard = QtGui.QAction('Copy To Clipboard', self.previewGraphicsView)
        copy_to_clipboard.setIcon(gf.get_icon('link', icons_set='mdi', scale_factor=1))
        copy_to_clipboard.triggered.connect(self.copy_to_clipboard_from_graphics_view)

        previews_maya = QtGui.QAction('', self.previewGraphicsView)
        previews_maya.setSeparator(True)

        add_imageplane = QtGui.QAction('Add as Imageplane', self.previewGraphicsView)
        add_imageplane.triggered.connect(lambda: self.add_as_image_plane(self.imagesSlider.value()))

        previews_sep = QtGui.QAction('', self.previewGraphicsView)
        previews_sep.setSeparator(True)

        add_new_image = QtGui.QAction('Add new Image', self.previewGraphicsView)
        add_new_image.triggered.connect(lambda: self.open_ext(self.imagesSlider.value()))

        add_new_playblast = QtGui.QAction('Capture new playblast', self.previewGraphicsView)
        add_new_playblast.triggered.connect(lambda: self.open_ext(self.imagesSlider.value()))

        self.menu_actions.append(open_external)
        self.menu_actions.append(open_file_folder)
        self.menu_actions.append(copy_path)
        self.menu_actions.append(copy_web_path)
        self.menu_actions.append(copy_to_clipboard)
        self.menu_actions.append(previews_maya)
        # self.menu_actions.append(add_imageplane)
        # self.menu_actions.append(previews_sep)
        # self.menu_actions.append(add_new_image)
        # self.menu_actions.append(add_new_playblast)

        self.previewGraphicsView.addActions(self.menu_actions)
コード例 #15
0
    def create_on_scene_layout(self):
        self.previewGraphicsView_layout = QtGui.QGridLayout(self.previewGraphicsView)
        self.previewGraphicsView_layout.setContentsMargins(0, 0, 0, 0)
        self.previewGraphicsView_layout.setSpacing(0)
        self.back_button = QtGui.QPushButton('')
        self.back_button_opacity_effect = QtGui.QGraphicsOpacityEffect()
        self.back_button_opacity_effect.setOpacity(0)
        self.back_button.setGraphicsEffect(self.back_button_opacity_effect)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
        self.back_button.setSizePolicy(sizePolicy)
        self.back_button.setIcon(gf.get_icon('chevron-left'))
        self.back_button.setStyleSheet('QPushButton {background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 64), stop:1 rgba(0, 0, 0, 0)); border-style: none; outline: none; border-width: 0px;}')

        self.back_button_hover_animation = QtCore.QPropertyAnimation(self.back_button_opacity_effect, "opacity", self)
        self.back_button_hover_animation.setDuration(200)
        self.back_button_hover_animation.setEasingCurve(QtCore.QEasingCurve.InSine)
        self.back_button_hover_animation.setStartValue(0)
        self.back_button_hover_animation.setEndValue(1)

        self.back_button_leave_animation = QtCore.QPropertyAnimation(self.back_button_opacity_effect, "opacity", self)
        self.back_button_leave_animation.setDuration(200)
        self.back_button_leave_animation.setEasingCurve(QtCore.QEasingCurve.OutSine)
        self.back_button_leave_animation.setEndValue(0)

        # forward button
        self.forward_button = QtGui.QPushButton('')
        self.forward_button_opacity_effect = QtGui.QGraphicsOpacityEffect(self)
        self.forward_button_opacity_effect.setOpacity(0)
        self.forward_button.setGraphicsEffect(self.forward_button_opacity_effect)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
        self.forward_button.setSizePolicy(sizePolicy)
        self.forward_button.setIcon(gf.get_icon('chevron-right'))
        self.forward_button.setStyleSheet('QPushButton {background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 0, 0, 0), stop:1 rgba(0, 0, 0, 64)); border-style: none; outline: none; border-width: 0px;}')

        self.forward_button_hover_animation = QtCore.QPropertyAnimation(self.forward_button_opacity_effect, "opacity", self)
        self.forward_button_hover_animation.setDuration(200)
        self.forward_button_hover_animation.setEasingCurve(QtCore.QEasingCurve.InSine)
        self.forward_button_hover_animation.setStartValue(0)
        self.forward_button_hover_animation.setEndValue(1)

        self.forward_button_leave_animation = QtCore.QPropertyAnimation(self.forward_button_opacity_effect, "opacity", self)
        self.forward_button_leave_animation.setDuration(200)
        self.forward_button_leave_animation.setEasingCurve(QtCore.QEasingCurve.OutSine)
        self.forward_button_leave_animation.setEndValue(0)

        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
        self.previewGraphicsView_layout.addWidget(self.forward_button, 0, 2, 1, 1)
        self.previewGraphicsView_layout.addWidget(self.back_button, 0, 0, 1, 1)
        self.previewGraphicsView_layout.addItem(spacerItem, 0, 1, 1, 1)
        self.previewGraphicsView_layout.setColumnStretch(0, 1)
        self.previewGraphicsView_layout.setColumnStretch(1, 1)
        self.previewGraphicsView_layout.setColumnStretch(2, 1)
コード例 #16
0
    def setCollapsed(self, state):

        if state:
            self.collapse_state = True
            self.collapseToolButton.setIcon(gf.get_icon('angle-left'))
            self.widget.setHidden(True)
            if self.__collapsedTex:
                self.setCollapsedText(self.__collapsedTex)
        else:
            self.collapse_state = False
            self.collapseToolButton.setIcon(gf.get_icon('angle-right'))
            self.widget.setHidden(False)
            self.setText(self.__text)
コード例 #17
0
    def create_controls(self):

        self.none_button = QtGui.QPushButton('Toggle All')
        self.none_button.setIcon(gf.get_icon('checkbox-multiple-marked-outline', icons_set='mdi', scale_factor=1))
        self.none_button.setFlat(True)

        self.all_process_button = QtGui.QPushButton('Toggle Process')
        self.all_process_button.setIcon(gf.get_icon('checkbox-blank-circle', icons_set='mdi', scale_factor=0.6))
        self.all_process_button.setFlat(True)

        self.all_with_builtins_button = QtGui.QPushButton('Toggle Builtin Processes')
        self.all_with_builtins_button.setIcon(gf.get_icon('checkbox-blank-circle', icons_set='mdi', scale_factor=0.6))
        self.all_with_builtins_button.setFlat(True)

        self.all_children_button = QtGui.QPushButton('Toggle Children')
        self.all_children_button.setIcon(gf.get_icon('view-sequential', icons_set='mdi', scale_factor=1))
        self.all_children_button.setFlat(True)

        self.togglers_widget = QtGui.QWidget()
        self.togglers_layout = QtGui.QGridLayout()
        self.togglers_layout.setContentsMargins(0, 0, 0, 0)
        self.togglers_layout.setSpacing(6)
        self.togglers_widget.setLayout(self.togglers_layout)

        self.togglers_layout.addWidget(self.none_button, 0, 0, 1, 1)
        self.togglers_layout.addWidget(self.all_process_button, 0, 1, 1, 1)
        self.togglers_layout.addWidget(self.all_with_builtins_button, 1, 0, 1, 1)
        self.togglers_layout.addWidget(self.all_children_button, 1, 1, 1, 1)

        # Creating collapsable
        self.controls_collapsable = Ui_collapsableWidget(state=True)
        layout_colapsable = QtGui.QVBoxLayout()
        self.controls_collapsable.setLayout(layout_colapsable)
        self.controls_collapsable.setText('Hide Togglers')
        self.controls_collapsable.setCollapsedText('Show Togglers')
        layout_colapsable.addWidget(self.togglers_widget)

        self.controls_collapsable.collapsed.connect(self.toggle_presets_edit_buttons)

        self.start_sync_button = QtGui.QPushButton('Begin Repo Sync')

        start_sync_color = Qt4Gui.QColor(16, 160, 16)
        start_sync_color_active = Qt4Gui.QColor(16, 220, 16)

        self.start_sync_button.setIcon(gf.get_icon('sync', color=start_sync_color, color_active=start_sync_color_active, icons_set='mdi', scale_factor=1))

        self.progress_bar = QtGui.QProgressBar()

        self.grid.addWidget(self.controls_collapsable, 2, 0, 1, 2)
        self.grid.addWidget(self.start_sync_button, 3, 0, 1, 2)
        self.grid.addWidget(self.progress_bar, 4, 0, 1, 4)
コード例 #18
0
    def create_control_buttons(self):
        self.addNewButton = QtGui.QPushButton('Create')
        self.addNewButton.setMaximumWidth(80)
        self.saveButton = QtGui.QPushButton('Save')
        self.saveButton.setMaximumWidth(80)
        self.cancelButton = QtGui.QPushButton('Cancel')
        self.cancelButton.setMaximumWidth(80)
        self.buildDirectoryButton = QtGui.QPushButton('Build Full Directory Structure')
        self.buildDirectoryButton.setIcon(gf.get_icon('database'))
        self.build_directory_checkbox = QtGui.QCheckBox('Build Full Directory Structure')
        self.build_directory_checkbox.setChecked(False)
        self.build_directory_checkbox.setIcon(gf.get_icon('database'))

        self.repositoryComboBox = QtGui.QComboBox()
        base_dirs = env_tactic.get_all_base_dirs()
        # Default repo states
        current_repo = gf.get_value_from_config(cfg_controls.get_checkin(), 'repositoryComboBox')
        for key, val in base_dirs:
            if val['value'][4]:
                self.repositoryComboBox.addItem(val['value'][1])
                self.repositoryComboBox.setItemData(self.repositoryComboBox.count() - 1, val)

        # Special for build all repos dirs
        self.repositoryComboBox.addItem('All Repos')

        if current_repo:
            self.repositoryComboBox.setCurrentIndex(current_repo)

        if self.tactic_widget.view == 'insert':
            self.main_layout.addWidget(self.build_directory_checkbox, 1, 0, 1, 1)
            self.main_layout.addWidget(self.repositoryComboBox, 1, 1, 1, 1)
            spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
            self.main_layout.addItem(spacerItem, 1, 2, 1, 1)
            self.main_layout.addWidget(self.addNewButton, 1, 3, 1, 1)
            self.main_layout.addWidget(self.cancelButton, 1, 4, 1, 1)
            self.main_layout.setColumnStretch(1, 0)
        else:
            self.main_layout.addWidget(self.buildDirectoryButton, 1, 0, 1, 1)
            self.main_layout.addWidget(self.repositoryComboBox, 1, 1, 1, 1)
            spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
            self.main_layout.addItem(spacerItem, 1, 2, 1, 1)
            self.main_layout.addWidget(self.saveButton, 1, 3, 1, 1)
            self.main_layout.addWidget(self.cancelButton, 1, 4, 1, 1)
            self.main_layout.setColumnStretch(1, 0)

        if self.item:
            if self.item.type != 'sobject':
                self.buildDirectoryButton.setHidden(True)
                self.repositoryComboBox.setHidden(True)
コード例 #19
0
    def create_graphics_view_context_menu(self):
        self.previewGraphicsView.setContextMenuPolicy(
            QtCore.Qt.ActionsContextMenu)

        self.menu_actions = []

        open_external = QtGui.QAction("Open File", self.previewGraphicsView)
        open_external.setIcon(gf.get_icon('folder'))
        open_external.triggered.connect(self.open_file_from_graphics_view)

        open_file_folder = QtGui.QAction('Show Folder', self.filesTreeWidget)
        open_file_folder.setIcon(gf.get_icon('folder-open'))
        open_file_folder.triggered.connect(self.open_folder_from_graphics_view)

        copy_path = QtGui.QAction("Copy File Path", self.previewGraphicsView)
        copy_path.setIcon(gf.get_icon('copy'))
        copy_path.triggered.connect(self.copy_path_from_graphics_view)

        previews_maya = QtGui.QAction('', self.previewGraphicsView)
        previews_maya.setSeparator(True)

        add_imageplane = QtGui.QAction("Add as Imageplane",
                                       self.previewGraphicsView)
        add_imageplane.triggered.connect(
            lambda: self.add_as_image_plane(self.imagesSlider.value()))

        previews_sep = QtGui.QAction('', self.previewGraphicsView)
        previews_sep.setSeparator(True)

        add_new_image = QtGui.QAction("Add new Image",
                                      self.previewGraphicsView)
        add_new_image.triggered.connect(
            lambda: self.open_ext(self.imagesSlider.value()))

        add_new_playblast = QtGui.QAction("Capture new playblast",
                                          self.previewGraphicsView)
        add_new_playblast.triggered.connect(
            lambda: self.open_ext(self.imagesSlider.value()))

        self.menu_actions.append(open_external)
        self.menu_actions.append(open_file_folder)
        self.menu_actions.append(copy_path)
        self.menu_actions.append(previews_maya)
        # self.menu_actions.append(add_imageplane)
        # self.menu_actions.append(previews_sep)
        # self.menu_actions.append(add_new_image)
        # self.menu_actions.append(add_new_playblast)

        self.previewGraphicsView.addActions(self.menu_actions)
コード例 #20
0
    def queue_items_menu(self):

        commit_current = QtGui.QAction('Commit Current', self.filesQueueTreeWidget)
        commit_current.setIcon(gf.get_icon('save'))
        commit_current.triggered.connect(self.commit_current_item)

        delete_current = QtGui.QAction('Remove From Queue', self.filesQueueTreeWidget)
        delete_current.setIcon(gf.get_icon('remove'))
        delete_current.triggered.connect(self.remove_item_from_queue)

        menu = QtGui.QMenu()

        menu.addAction(commit_current)
        menu.addAction(delete_current)

        return menu
コード例 #21
0
    def drop_plate_context_menu(self):
        add_file = QtGui.QAction('Add Files', self.dropTreeWidget)
        add_file.setIcon(gf.get_icon('folder-open'))
        add_file.triggered.connect(self.add_files_from_menu)

        paste_from_clipboard = QtGui.QAction('Paste From Clipboard',
                                             self.dropTreeWidget)
        paste_from_clipboard.setIcon(gf.get_icon('folder-open'))
        paste_from_clipboard.triggered.connect(self.add_files_from_clipboard)

        menu = QtGui.QMenu()

        menu.addAction(add_file)
        menu.addAction(paste_from_clipboard)

        return menu
コード例 #22
0
    def create_right_collapsable_toolbar(self):
        self.right_collapsable_toolbar = Ui_horizontalCollapsableWidget()
        self.right_collapsable_toolbar.setCollapsed(False)

        self.right_buttons_layout = QtGui.QHBoxLayout()
        self.right_buttons_layout.setSpacing(0)
        self.right_buttons_layout.setContentsMargins(0, 0, 0, 0)

        self.right_collapsable_toolbar.setLayout(self.right_buttons_layout)

        self.refresh_serverside_scripts_button = QtGui.QToolButton()
        self.refresh_serverside_scripts_button.setToolButtonStyle(
            QtCore.Qt.ToolButtonIconOnly)
        self.refresh_serverside_scripts_button.setAutoRaise(True)
        self.refresh_serverside_scripts_button.setMinimumSize(
            QtCore.QSize(24, 24))
        self.refresh_serverside_scripts_button.setMaximumSize(
            QtCore.QSize(24, 24))
        self.refresh_serverside_scripts_button.setIcon(
            gf.get_icon('refresh', icons_set='mdi'))
        self.refresh_serverside_scripts_button.setToolTip(
            'Refresh all Scripts Tree from Server')

        self.right_buttons_layout.addWidget(
            self.refresh_serverside_scripts_button)
コード例 #23
0
    def fill_stype_pipeline(self, stype=None, parent_tree_item=None):
        if not parent_tree_item:
            parent_tree_item_add = self.tree_widget.addTopLevelItem
        else:
            parent_tree_item_add = parent_tree_item.addChild

        if stype.pipeline:
            for stype_pipeline in stype.pipeline.values():
                top_item = QtGui.QTreeWidgetItem()
                title = stype_pipeline.info.get('name')
                if not title:
                    title = stype_pipeline.info.get('code')
                top_item.setText(0, title)
                top_item.setData(1, 0, '{0}:{1}'.format(stype_pipeline.info.get('code'), '{pp}'))
                parent_tree_item_add(top_item)

                for key, val in stype_pipeline.pipeline.items():
                    child_item = QtGui.QTreeWidgetItem()
                    child_item.setText(0, key.capitalize())
                    child_item.setCheckState(0, QtCore.Qt.Unchecked)
                    child_item.setData(1, 0, '{0}:{1}'.format(key, '{pr}'))

                    item_color = Qt4Gui.QColor(200, 200, 200)
                    process = stype_pipeline.get_pipeline_process(key)
                    if process:
                        hex_color = process.get('color')
                        color = None
                        if hex_color:
                            color = gf.hex_to_rgb(hex_color, tuple=True)
                        if color:
                            item_color = Qt4Gui.QColor(*color)
                    child_item.setIcon(0, gf.get_icon('circle', color=item_color, scale_factor=0.55))

                    top_item.addChild(child_item)
                    top_item.setExpanded(True)
コード例 #24
0
    def create_float_buttons(self):
        self.descriptionTextEdit.setViewportMargins(0, 20, 0, 24)
        self.clear_button_layout = QtGui.QGridLayout(self.descriptionTextEdit)
        self.clear_button_layout.setContentsMargins(0, 0, 0, 0)
        self.clear_button_layout.setSpacing(0)

        self.clear_button = QtGui.QToolButton()
        self.clear_button.setAutoRaise(True)
        self.clear_button.setFixedSize(24, 24)
        self.clear_button.setIcon(gf.get_icon('lock-open', icons_set='mdi'))

        self.clear_button_layout.addWidget(self.clear_button, 1, 3, 1, 1)
        self.clear_button_layout.addItem(
            QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                              QtGui.QSizePolicy.Minimum), 1, 4, 1, 1)

        self.lock_button = QtGui.QToolButton()
        self.lock_button.setAutoRaise(True)
        self.lock_button.setFixedSize(24, 24)
        self.lock_button.setIcon(gf.get_icon('lock', icons_set='mdi'))

        self.clear_button_layout.addWidget(self.lock_button, 1, 2, 1, 1)
        # self.clear_button_layout.addItem(QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum), 1, 3, 1, 1)

        self.edit_button = QtGui.QToolButton()
        self.edit_button.setAutoRaise(True)
        self.edit_button.setFixedSize(24, 24)
        self.edit_button.setIcon(gf.get_icon('pencil', icons_set='mdi'))

        self.clear_button_layout.addWidget(self.edit_button, 1, 0, 1, 1)
        self.clear_button_layout.addItem(
            QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                              QtGui.QSizePolicy.Expanding), 0, 0, 1, 3)

        self.save_button = QtGui.QToolButton()
        self.save_button.setAutoRaise(True)
        self.save_button.setFixedSize(24, 24)
        self.save_button.setIcon(
            gf.get_icon('content-save',
                        icons_set='mdi',
                        color=Qt4Gui.QColor(0, 255, 128, 192)))
        self.clear_button_layout.addWidget(self.save_button, 1, 1, 1, 1)

        self.clear_button.setHidden(True)
        self.save_button.setHidden(True)
        self.lock_button.setHidden(True)
コード例 #25
0
    def create_buttons(self):

        self.save_button = QtGui.QPushButton('Save')
        self.save_button.setMaximumWidth(80)
        self.save_button.setIcon(gf.get_icon('content-save', icons_set='mdi'))

        self.cancel_button = QtGui.QPushButton('Close')
        self.cancel_button.setMaximumWidth(80)
        self.cancel_button.setIcon(gf.get_icon('close', icons_set='mdi'))

        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)

        self.buttons_layout.addItem(spacerItem)

        self.buttons_layout.addWidget(self.save_button)
        self.buttons_layout.addWidget(self.cancel_button)
コード例 #26
0
    def scripts_context_menu(self):

        copy_runner_script = QtGui.QAction('Copy Script Runner',
                                           self.scripts_tree_widget)
        copy_runner_script.setIcon(gf.get_icon('copy'))
        copy_runner_script.triggered.connect(self.create_execution_script)

        delete_sobject = QtGui.QAction('Delete', self.scripts_tree_widget)
        delete_sobject.setIcon(gf.get_icon('remove'))
        delete_sobject.triggered.connect(self.delete_script_sobject)

        menu = QtGui.QMenu()

        menu.addAction(copy_runner_script)
        menu.addAction(delete_sobject)

        return menu
コード例 #27
0
    def create_config_button(self):
        self.config_button = StyledToolButton()
        self.config_button.setPopupMode(QtGui.QToolButton.InstantPopup)
        self.config_button.setArrowType(QtCore.Qt.NoArrow)

        self.config_button.setIcon(gf.get_icon('settings', icons_set='mdi'))

        self.main_layout.addWidget(self.config_button)
コード例 #28
0
    def create_tasks_buttons(self):
        self.tasks_options_button = QtGui.QToolButton()
        self.tasks_options_button.setIcon(
            gf.get_icon('menu', icons_set='mdi', scale_factor=1))
        self.tasks_options_button.setToolTip('Tasks Options')
        self.tasks_options_button.setMaximumSize(24, 24)
        self.tasks_options_button.setAutoRaise(True)

        self.save_task_button = QtGui.QToolButton()
        self.save_task_button.setIcon(
            gf.get_icon('content-save', icons_set='mdi', scale_factor=1))
        self.save_task_button.setToolTip('Save Task')
        self.save_task_button.setMaximumSize(24, 24)
        self.save_task_button.setAutoRaise(True)
        self.save_task_button.setHidden(True)

        self.main_layout.addWidget(self.save_task_button, 0, 2)
        self.main_layout.addWidget(self.tasks_options_button, 0, 3)
コード例 #29
0
    def create_left_collapsable_toolbar(self):
        self.left_collapsable_toolbar = Ui_horizontalCollapsableWidget()
        self.left_collapsable_toolbar.setCollapsed(False)

        self.left_buttons_layout = QtGui.QHBoxLayout()
        self.left_buttons_layout.setSpacing(0)
        self.left_buttons_layout.setContentsMargins(0, 0, 0, 0)

        self.left_collapsable_toolbar.setLayout(self.left_buttons_layout)

        self.add_new_script_button = QtGui.QToolButton()
        self.add_new_script_button.setToolButtonStyle(
            QtCore.Qt.ToolButtonIconOnly)
        self.add_new_script_button.setAutoRaise(True)
        self.add_new_script_button.setMinimumSize(QtCore.QSize(24, 24))
        self.add_new_script_button.setMaximumSize(QtCore.QSize(24, 24))
        self.add_new_script_button.setIcon(
            gf.get_icon('plus-box', icons_set='mdi'))
        self.add_new_script_button.setToolTip('Create New Script')

        self.cleanup_output_button = QtGui.QToolButton()
        self.cleanup_output_button.setToolButtonStyle(
            QtCore.Qt.ToolButtonIconOnly)
        self.cleanup_output_button.setAutoRaise(True)
        self.cleanup_output_button.setMinimumSize(QtCore.QSize(24, 24))
        self.cleanup_output_button.setMaximumSize(QtCore.QSize(24, 24))
        self.cleanup_output_button.setIcon(
            gf.get_icon('eraser', icons_set='mdi'))
        self.cleanup_output_button.setToolTip('Clean-up Output Window')

        self.save_current_script_button = QtGui.QToolButton()
        self.save_current_script_button.setToolButtonStyle(
            QtCore.Qt.ToolButtonIconOnly)
        self.save_current_script_button.setAutoRaise(True)
        self.save_current_script_button.setMinimumSize(QtCore.QSize(24, 24))
        self.save_current_script_button.setMaximumSize(QtCore.QSize(24, 24))
        self.save_current_script_button.setIcon(
            gf.get_icon('content-save', icons_set='mdi'))
        self.save_current_script_button.setToolTip(
            'Save current Script to Sever')

        self.left_buttons_layout.addWidget(self.add_new_script_button)
        self.left_buttons_layout.addWidget(self.save_current_script_button)
        self.left_buttons_layout.addWidget(self.cleanup_output_button)
コード例 #30
0
    def create_ui(self):

        self.clearPushButton.setIcon(gf.get_icon('trash'))
        self.configPushButton.setIcon(gf.get_icon('settings', icons_set='mdi'))
        self.create_progress_bar_widget()

        self.create_collapsable_toolbar()

        self.setAcceptDrops(True)

        if env_mode.get_mode() == 'standalone':
            sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                           QtGui.QSizePolicy.Preferred)
            self.setSizePolicy(sizePolicy)
            self.setMinimumWidth(300)

        self.move_controls_to_collapsable_toolbar()

        self.customize_ui()