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) menu = QtGui.QMenu() menu.addAction(open_file) menu.addAction(open_file_folder) menu.addAction(copy_path) menu.addAction(copy_abs_path) return menu
def create_collapsable_toolbar(self): self.collap = ui_misc_classes.Ui_horizontalCollapsableWidget() self.buttons_layout = QtGui.QHBoxLayout() self.buttons_layout.setSpacing(0) self.buttons_layout.setContentsMargins(0, 0, 0, 0) self.filter_process_button = QtGui.QToolButton() self.filter_process_button.setMaximumSize(22, 22) self.filter_process_button.setAutoRaise(True) self.filter_process_button.setIcon(gf.get_icon('filter')) self.filter_process_button.clicked.connect(self.create_process_tree_widget) self.toggle_search_options_button = QtGui.QToolButton() self.toggle_search_options_button.setMaximumSize(22, 22) self.toggle_search_options_button.setAutoRaise(True) self.toggle_search_options_button.setIcon(gf.get_icon('sliders')) self.toggle_search_options_button.clicked.connect(self.toggle_search_group_box) self.find_opened_sobject_button = QtGui.QToolButton() self.find_opened_sobject_button.setMaximumSize(22, 22) self.find_opened_sobject_button.setAutoRaise(True) self.find_opened_sobject_button.setIcon(gf.get_icon('bolt')) self.find_opened_sobject_button.clicked.connect(self.find_opened_sobject) self.buttons_layout.addWidget(self.filter_process_button) self.buttons_layout.addWidget(self.toggle_search_options_button) if env_mode.get_mode() == 'maya': self.buttons_layout.addWidget(self.find_opened_sobject_button) self.collap.setLayout(self.buttons_layout) self.collap.setCollapsed(True) self.expandingLayout.addWidget(self.collap)
def file_context_menu(self): open_file = QtGui.QAction('Open File', self.filesTreeWidget) open_file.setIcon(gf.get_icon('folder')) open_file.triggered.connect(self.open_file_from_tree) 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 set_checkin_options_group_box_state(self, hidden=False): if hidden: # self.toggleSaveOptionsToolButton.setArrowType(QtCore.Qt.UpArrow) self.toggleSaveOptionsToolButton.setIcon(gf.get_icon('toggle-off')) self.checkin_options_widget.hide() else: # self.toggleSaveOptionsToolButton.setArrowType(QtCore.Qt.DownArrow) self.toggleSaveOptionsToolButton.setIcon(gf.get_icon('toggle-on')) self.checkin_options_widget.show()
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 from lib.configuration import cfg_controls 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) 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_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; 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; 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_drop_plate_ui(self): self.clearPushButton.setIcon(gf.get_icon('trash')) self.configPushButton.setIcon(gf.get_icon('cog')) self.setAcceptDrops(True) self.dropTreeWidget.setSelectionMode( QtGui.QAbstractItemView.SingleSelection) if env_mode.get_mode() == 'standalone': self.fromDropListCheckBox.setHidden(True) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) self.setSizePolicy(sizePolicy) self.setMinimumWidth(300)
def tab_bar_customization(self): self.hamburger_tab_button = QtGui.QToolButton() self.hamburger_tab_button.setAutoRaise(True) self.hamburger_tab_button.setMinimumWidth(22) self.hamburger_tab_button.setMinimumHeight(22) self.animation_close = QtCore.QPropertyAnimation(self.sTypesTreeWidget, "maximumWidth", self) self.animation_open = QtCore.QPropertyAnimation(self.sTypesTreeWidget, "maximumWidth", self) self.hamburger_tab_button.setIcon(gf.get_icon('navicon')) self.sObjTabWidget.setCornerWidget(self.hamburger_tab_button, QtCore.Qt.TopLeftCorner)
def create_ui(self): if self.process: title = self.process.capitalize() else: title = 'Unnamed' if self.process_info.get('type') == 'hierarchy': title = '{0} (hierarchy)'.format(title) self.tree_item.setText(0, title) self.notesToolButton.setIcon(gf.get_icon('commenting-o'))
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 create_drop_plate_ui(self): self.clearPushButton.setIcon(gf.get_icon('eraser')) self.setAcceptDrops(True) self.dropTreeWidget.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) if env_mode.get_mode() == 'standalone': self.fromDropListCheckBox.setHidden(True) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) self.setSizePolicy(sizePolicy) self.setMinimumWidth(300)
def tab_bar_customization(self): self.hamburger_tab_button = QtGui.QToolButton() self.hamburger_tab_button.setAutoRaise(True) self.hamburger_tab_button.setMinimumWidth(20) self.hamburger_tab_button.setMinimumHeight(20) self.animation_close = QtCore.QPropertyAnimation( self.sTypesTreeWidget, "maximumWidth", self) self.animation_open = QtCore.QPropertyAnimation( self.sTypesTreeWidget, "maximumWidth", self) self.hamburger_tab_button.setIcon(gf.get_icon('navicon')) self.sObjTabWidget.setCornerWidget(self.hamburger_tab_button, QtCore.Qt.BottomLeftCorner)
def create_new_tab_button(self): self.add_new_tab_button = QtGui.QToolButton() self.add_new_tab_button.setAutoRaise(True) self.add_new_tab_button.setMinimumWidth(22) self.add_new_tab_button.setMinimumHeight(22) self.add_new_tab_button.setIcon(gf.get_icon('plus')) self.history_tab_button = QtGui.QToolButton() self.history_tab_button.setAutoRaise(True) self.history_tab_button.setMinimumWidth(22) self.history_tab_button.setMinimumHeight(22) self.history_tab_button.setPopupMode(QtGui.QToolButton.InstantPopup) self.history_tab_button.setIcon(gf.get_icon('history')) self.refresh_tab_button = QtGui.QToolButton() self.refresh_tab_button.setAutoRaise(True) self.refresh_tab_button.setMinimumWidth(22) self.refresh_tab_button.setMinimumHeight(22) # effect = QtGui.QGraphicsColorizeEffect(self.refresh_tab_button) # self.animation = QtCore.QPropertyAnimation(effect, "color", self) # self.animation.setDuration(500) # self.animation.setStartValue(QtGui.QColor(0, 0, 0, 0)) # self.animation.setEndValue(QtGui.QColor(49, 140, 72, 128)) # self.animation.start() # self.refresh_tab_button.setGraphicsEffect(effect) self.refresh_tab_button.setIcon(gf.get_icon('refresh')) self.right_buttons_layout = QtGui.QHBoxLayout() self.right_buttons_layout.setContentsMargins(0, 0, 0, 0) self.right_buttons_layout.setSpacing(2) self.right_buttons_widget= QtGui.QWidget(self) self.right_buttons_widget.setLayout(self.right_buttons_layout) self.right_buttons_layout.addWidget(self.refresh_tab_button) self.right_buttons_layout.addWidget(self.history_tab_button) self.resultsTabWidget.setCornerWidget(self.right_buttons_widget, QtCore.Qt.TopRightCorner) self.resultsTabWidget.setCornerWidget(self.add_new_tab_button, QtCore.Qt.TopLeftCorner)
def create_refresh_popup(self): self.refreshToolButton.setIcon(gf.get_icon('cog')) self.refreshToolButton.setMinimumSize(22, 22) self.switch_to_checkin = QtGui.QAction('Copy tab to checkin', self.refreshToolButton) self.switch_to_checkin.triggered.connect(self.refresh_current_results) self.filter_process = QtGui.QAction('Filter Process', self.refreshToolButton) self.filter_process.triggered.connect(self.create_process_tree_widget) self.refresh_results = QtGui.QAction('Refresh results', self.refreshToolButton) self.refresh_results.triggered.connect(self.refresh_current_results) self.clear_results = QtGui.QAction('Close all Search-Tabs', self.refreshToolButton) self.clear_results.triggered.connect(self.close_all_search_tabs) self.search_options = QtGui.QAction('Toggle Search options', self.refreshToolButton) self.search_options.triggered.connect(lambda: self.searchLineDoubleClick(event=True)) self.refreshToolButton.addAction(self.switch_to_checkin) self.refreshToolButton.addAction(self.filter_process) self.refreshToolButton.addAction(self.refresh_results) self.refreshToolButton.addAction(self.clear_results) self.refreshToolButton.addAction(self.search_options)
def create_refresh_popup(self): self.refreshToolButton.setIcon(gf.get_icon('cog')) self.refreshToolButton.setMinimumSize(22, 22) self.switch_to_checkout = QtGui.QAction('Copy tab to checkout', self.refreshToolButton) self.switch_to_checkout.triggered.connect(self.refresh_current_results) self.filter_process = QtGui.QAction('Filter Process', self.refreshToolButton) self.filter_process.triggered.connect(self.create_process_tree_widget) self.refresh_results = QtGui.QAction('Refresh results', self.refreshToolButton) self.refresh_results.triggered.connect(self.refresh_current_results) self.clear_results = QtGui.QAction('Close all Search-Tabs', self.refreshToolButton) self.clear_results.triggered.connect(self.close_all_search_tabs) self.search_options = QtGui.QAction('Toggle Search options', self.refreshToolButton) self.search_options.triggered.connect(self.toggle_search_group_box) self.refreshToolButton.addAction(self.switch_to_checkout) self.refreshToolButton.addAction(self.filter_process) self.refreshToolButton.addAction(self.refresh_results) self.refreshToolButton.addAction(self.clear_results) self.refreshToolButton.addAction(self.search_options)
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'))
def create_save_button(self): self.savePushButton.setIcon(gf.get_icon('save')) self.savePushButton.setMenu(self.checkin_context_menu())
def create_checkin_options_group_box(self): self.checkin_options_widget = Ui_checkInOptionsWidget(stype=self.stype, project=self.project, parent=self) self.checkinOptionsSplitter.addWidget(self.checkin_options_widget) # self.checkinOptionsLayout.addWidget(self.checkin_options_widget) # self.toggleSaveOptionsToolButton.setArrowType(QtCore.Qt.DownArrow) self.toggleSaveOptionsToolButton.setIcon(gf.get_icon('toggle-on'))
def set_child_count_title(self, count): if count > 0: self.addNewSObjectToolButton.setIcon(gf.get_icon('plus-square')) self.addNewSObjectToolButton.setText('| {0}'.format(count))
def set_notes_count(self, notes_count): if notes_count > 0: self.notesToolButton.setIcon(gf.get_icon('commenting')) self.notesToolButton.setText('| {0}'.format(notes_count))
def create_ui(self): self.addNewSObjectToolButton.setIcon(gf.get_icon('plus-square-o'))
def checkin_context_menu(self, tool_button=True, mode=None): edit_info = QtGui.QAction('Edit Info', self.savePushButton) edit_info.setIcon(gf.get_icon('edit')) edit_info.triggered.connect(lambda: self.edit_existing_sobject()) delete_sobject = QtGui.QAction('Delete', self.savePushButton) delete_sobject.setIcon(gf.get_icon('remove')) delete_sobject.triggered.connect(self.delete_sobject) save_snapshot = QtGui.QAction('Save snapshot', self.savePushButton) save_snapshot.setIcon(gf.get_icon('save')) # add_icon = QtGui.QIcon() # add_icon.addPixmap(QtGui.QPixmap(':/ui_search/gliph/add_16.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) # save_snapshot.setIcon(add_icon) save_snapshot.triggered.connect(self.save_file) save_selected_snapshot = QtGui.QAction('Save selected objects', self.savePushButton) save_selected_snapshot.triggered.connect(lambda: self.save_file(selected_objects=True)) save_snapshot_revision = QtGui.QAction('Add revision (update current file)', self.savePushButton) save_snapshot_revision.triggered.connect(lambda: self.save_file(save_revision=True)) save_selected_snapshot_revision = QtGui.QAction('Add revision for selected objects', self.savePushButton) save_selected_snapshot_revision.triggered.connect(lambda: self.save_file(selected_objects=True, save_revision=True)) update_snapshot = QtGui.QAction('Update file only (without revision)', self.savePushButton) update_snapshot.triggered.connect(lambda: self.save_file(update_snapshot=True)) # update_selected_snapshot = QtGui.QAction('Update selected', self.savePushButton) # update_selected_snapshot.triggered.connect(lambda: self.prnt(0)) # update_playblast = QtGui.QAction('Update Playblast', self.savePushButton) # update_playblast.triggered.connect(lambda: self.prnt(0)) delete_snapshot = QtGui.QAction('Delete', self.savePushButton) delete_snapshot.setIcon(gf.get_icon('remove')) delete_snapshot.triggered.connect(self.delete_snapshot_sobject) # checkin_options = QtGui.QAction('Checkin Options toggle', self.savePushButton) # checkin_options.triggered.connect(self.toggle_checkin_options_group_box) menu = QtGui.QMenu() # if not tool_button: if mode == 'sobject': menu.addAction(save_snapshot) menu.addAction(save_selected_snapshot) menu.addSeparator() menu.addAction(save_snapshot_revision) menu.addAction(save_selected_snapshot_revision) menu.addSeparator() menu.addAction(update_snapshot) # menu.addAction(update_selected_snapshot) # menu.addAction(update_playblast) menu.addSeparator() menu.addAction(edit_info) menu.addSeparator() menu.addAction(delete_sobject) # menu.addSeparator() # menu.addAction(checkin_options) if mode == 'snapshot': menu.addAction(save_snapshot) menu.addAction(save_selected_snapshot) menu.addSeparator() menu.addAction(save_snapshot_revision) menu.addAction(save_selected_snapshot_revision) menu.addSeparator() menu.addAction(update_snapshot) # menu.addAction(update_selected_snapshot) # menu.addAction(update_playblast) menu.addSeparator() menu.addAction(edit_info) menu.addSeparator() menu.addAction(delete_snapshot) # menu.addSeparator() # menu.addAction(checkin_options) if mode == 'process': menu.addAction(save_snapshot) menu.addAction(save_selected_snapshot) # menu.addSeparator() # menu.addAction(save_snapshot_revision) # menu.addAction(save_selected_snapshot_revision) # menu.addSeparator() # menu.addAction(update_snapshot) # menu.addAction(update_selected_snapshot) # menu.addAction(update_playblast) # menu.addSeparator() # menu.addAction(checkin_options) # if mode == 'child': # menu.addAction(checkin_options) return menu