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)
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
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()
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)
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
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)
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
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()
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)
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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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
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
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)
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)
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)
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)
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
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)
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)
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)
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()