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 add_new_repo(self): current_repo_index = self.repo_combo_box.currentIndex() current_repo = self.repo_combo_box.itemData(current_repo_index) if current_repo: self.repo_combo_box.removeItem(current_repo_index) root_item = QtGui.QTreeWidgetItem() root_item.setText(0, current_repo['value'][1]) root_item.setData(0, QtCore.Qt.UserRole, current_repo) self.exclude_repo_list.append(current_repo['value'][3]) self.repos_tree_widget.addTopLevelItem(root_item) else: for i in range(self.repo_combo_box.count() - 1): current_repo = self.repo_combo_box.itemData(i) root_item = QtGui.QTreeWidgetItem() root_item.setText(0, current_repo['value'][1]) root_item.setData(0, QtCore.Qt.UserRole, current_repo) self.exclude_repo_list.append(current_repo['value'][3]) self.repos_tree_widget.addTopLevelItem(root_item) self.fill_repo_combo_box(self.exclude_repo_list) self.check_save_ability()
def add_item_with_meta_file_object(self, file_object, show_more_info, show_all_files, snapshot_info, type_item, file_icon): meta_file_object = file_object.get_meta_file_object() child_item = QtGui.QTreeWidgetItem() file_name = file_object.get_filename_with_ext() if not meta_file_object.is_exists(): file_name += ' (File Offline)' child_item.setText(0, file_name) child_item.setData(0, QtCore.Qt.UserRole, file_object) if show_more_info: child_item.setText(1, gf.sizes(file_object.get_file_size())) child_item.setText(2, file_object.get_abs_path()) child_item.setText(3, snapshot_info.get('repo')) child_item.setText(4, file_object.get_base_type()) if show_all_files: type_item.addChild(child_item) else: self.filesTreeWidget.addTopLevelItem(child_item) child_item.setIcon(0, file_icon) if len(meta_file_object.get_all_files_list()) > 1: # if this is meta with sequence or udims etc... for meta_file_name in meta_file_object.get_all_files_list(filenames=True): sub_child_item = QtGui.QTreeWidgetItem() child_item.addChild(sub_child_item) sub_child_item.setText(0, meta_file_name) sub_child_item.setData(0, QtCore.Qt.UserRole, file_object) sub_child_item.setIcon(0, file_icon) child_item.setExpanded(True)
def add_process_items(self): # print(self.sobject.tasks) # print(self.sobject.all_process) # Top level, process of tasks for process in self.sobject.all_process: self.top_item = QtGui.QTreeWidgetItem() self.top_item.setText(0, process) self.top_item_widget = task_item_widget.Ui_taskItemWidget(self.top_item, self) self.processTreeWidget.addTopLevelItem(self.top_item) self.processTreeWidget.setItemWidget(self.top_item, 0, self.top_item_widget) # Second level, contexts of tasks if self.sobject.tasks.get(process): for context, task in self.sobject.tasks[process].contexts.iteritems(): self.child_item = QtGui.QTreeWidgetItem() self.child_item.setText(0, context) self.top_item.addChild(self.child_item) self.top_item.setExpanded(True) # Third level, Tasks items for sub, item in self.sobject.tasks[process].contexts[context].items.iteritems(): self.sub_item = QtGui.QTreeWidgetItem() self.sub_item.setData(0, QtCore.Qt.UserRole, item) # self.sub_item.setText(0, sub) self.sub_item_widget = task_item_widget.Ui_taskItemDetailWidget(self) self.child_item.addChild(self.sub_item) self.processTreeWidget.setItemWidget(self.sub_item, 0, self.sub_item_widget)
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 load_local_updates(self): sort_list = [] for update in self.updates: update_get = update.get item = QtGui.QTreeWidgetItem() sort_list.append( uf.get_version(sort_sum=True, **update_get('version'))) # print(uf.get_version(string=True, **update_get('version'))) # print(uf.get_version(sort_sum=True, **update_get('version'))) item.setText( 0, uf.get_version(string=True, **update_get('version')).replace('_', '.')) item.setText(1, update_get('date')) item.setText(2, update_get('changes')) item.setText(3, update_get('misc')) self.versionsTreeWidget.addTopLevelItem(item) if self.updates: self.last_version = self.updates[-1].get('version') # print(sorted(sort_list)) self.versionsTreeWidget.sortByColumn(3, QtCore.Qt.DescendingOrder) self.versionsTreeWidget.scrollToBottom()
def add_new_preset(self): new_preset_name = self.line_edit.text() exclude_list = ['environment_config'] presets = env_server.get_server_presets() exclude_list.extend(presets['presets_list']) if new_preset_name and new_preset_name not in exclude_list: self.line_edit.setText('') root_item = QtGui.QTreeWidgetItem() root_item.setText(0, new_preset_name) env_server.add_server_preset(new_preset_name) self.presets_tree_widget.addTopLevelItem(root_item) elif new_preset_name in exclude_list: message_box = QtGui.QMessageBox( QtGui.QMessageBox.Information, 'Already exists', '<p>Server Preset named <b>{0}</b> already in Presets List.</p><p>Choose another Name.</p>'.format(new_preset_name), QtGui.QMessageBox.StandardButton, self, ) message_box.exec_()
def add_items_by_debuglog_dict(self, debuglog_dict): for key, val in debuglog_dict.items(): module_item = QtGui.QTreeWidgetItem() # module_item.setText(0, '{1} ({0})'.format(len(val), key)) module_item.setText(0, '{1} ({0})'.format(len(val), key)) module_item.setData(0, 12, key) module_item.setData(0, QtCore.Qt.UserRole, val) exist_item = self.check_if_items_exists(self.treeWidget, key) if not exist_item: self.treeWidget.addTopLevelItem(module_item) else: # exist_val = exist_item.data(0, QtCore.Qt.UserRole) # extended_val = exist_val + val # exist_item.setText(0, '{1} ({0})'.format(len(extended_val), key)) exist_item.setText(0, '{1} ({0})'.format(len(val), key)) exist_item.setData(0, 12, exist_item.data(0, 12)) exist_item.setData(0, QtCore.Qt.UserRole, val) module_item = exist_item unique_ids = set() for i in val: if i[1]['unique_id']: unique_ids.add(i[1]['unique_id']) if unique_ids: for unique_id in unique_ids: subgroup_list = unique_id.split('/') subgroup_list.reverse() self.recursive_add_items(module_item, subgroup_list)
def append_items_to_tree(self, files_objects_dict): self.fromDropListCheckBox.setChecked(True) self.dropTreeWidget.clearSelection() icon_provider = QtGui.QFileIconProvider() self.progressBar.setVisible(True) for item_type, item in files_objects_dict.items(): for i, file_obj in enumerate(item): tree_item = QtGui.QTreeWidgetItem() tree_item.setText(0, file_obj.get_pretty_file_name()) sequence_info_string = [] frameranges = file_obj.get_sequence_frameranges_string('[]') tiles_count = file_obj.get_tiles_count() layer = file_obj.get_layer() if frameranges: sequence_info_string.append(frameranges) if tiles_count: sequence_info_string.append( '{0} Tile(s)'.format(tiles_count)) if layer: sequence_info_string.append(layer) tree_item.setText(1, ' / '.join(sequence_info_string)) tree_item.setText(2, file_obj.get_base_file_type_pretty_name()) tree_item.setText(3, file_obj.get_base_file_type()) tree_item.setText(4, file_obj.get_file_path()) file_icon = icon_provider.icon( file_obj.get_all_files_list(True)) tree_item.setIcon(0, file_icon) self.dropTreeWidget.addTopLevelItem(tree_item) if self.dropTreeWidget.topLevelItemCount( ) < 50: # for performance reasons self.dropTreeWidget.setItemSelected(tree_item, True) else: self.dropTreeWidget.clearSelection() tree_item.setData(0, QtCore.Qt.UserRole, len(self.tree_items)) self.tree_items.append(file_obj) if i % 10 == 0: QtGui.QApplication.processEvents() self.progressBar.setValue(int(i * 100 / len(item))) self.progressBar.setValue(100) self.dropTreeWidget.resizeColumnToContents(0) self.dropTreeWidget.resizeColumnToContents(1) self.dropTreeWidget.resizeColumnToContents(2) self.dropTreeWidget.resizeColumnToContents(3) self.dropTreeWidget.resizeColumnToContents(4) self.dropTreeWidget.sortByColumn(0, QtCore.Qt.AscendingOrder) self.progressBar.setVisible(False)
def get_to_tree(self): to_list = cmds.ls(sl=True, dag=True) self.to_tree.clear() for shape in to_list: item = QtGui.QTreeWidgetItem() self.to_tree.addTopLevelItem(item) item.setText(0, shape)
def fill_presets_tree(self): presets = env_server.get_server_presets() if presets: for preset in presets['presets_list']: root_item = QtGui.QTreeWidgetItem() root_item.setText(0, preset) self.presets_tree_widget.addTopLevelItem(root_item)
def create_assets_tree(self): self.asstes_tree = tc.query_assets_names() for name, value in self.asstes_tree.items(): self.top_item = QtGui.QTreeWidgetItem() if not name: name = 'Untyped' self.top_item.setText(0, name.capitalize()) self.assetsTreeWidget.addTopLevelItem(self.top_item) for item in value: # print(item) self.child_item = QtGui.QTreeWidgetItem() if item['title']: item_title = item['title'].capitalize() else: item_title = 'Unnamed' self.child_item.setText(0, item_title) self.child_item.setData(0, QtCore.Qt.UserRole, item) self.top_item.addChild(self.child_item)
def fill_versionless_widget(self, paths): self.treeWidget_vls.clear() for keys, values in paths: for i, fl in enumerate(values['versionless']['names']): full_path = gf.form_path(self.repo['value'][0] + '/' + values['versionless']['paths'][i]) item = QtGui.QTreeWidgetItem() item.setText(0, u''.join(fl)) item.setText(1, full_path) self.treeWidget_vls.addTopLevelItem(item) self.treeWidget_vls.resizeColumnToContents(0)
def fill_tree_widget(self): self.tree_widget.clear() for sobject in self.sobjects.values(): item = QtGui.QTreeWidgetItem() item.setText(0, sobject.get_title()) item.setText(1, sobject.get_search_key()) self.tree_widget.addTopLevelItem(item) self.tree_widget.resizeColumnToContents(0)
def fill_builtin_processes(self, 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 # Builtin processes for key in ['publish', 'attachment', 'icon']: top_item = QtGui.QTreeWidgetItem() top_item.setText(0, key.capitalize() + ' (builtin)') top_item.setCheckState(0, QtCore.Qt.Checked) top_item.setData(1, 0, '{0}:{1}'.format(key, '{b}')) parent_tree_item_add(top_item)
def fill_users_tree(self): # logins = env_inst.logins # print logins # print env_inst.get_all_login_groups() self.usersTreeWidget.clear() for login_group in env_inst.get_all_login_groups(): top_item = QtGui.QTreeWidgetItem() top_item.setText(0, login_group.get_pretty_name()) top_item.setData(0, QtCore.Qt.UserRole, login_group) self.usersTreeWidget.addTopLevelItem(top_item) group_logins = login_group.get_logins() if group_logins: for login in group_logins: login_item = QtGui.QTreeWidgetItem() login_item.setText(0, login.get_display_name()) login_item.setData(0, QtCore.Qt.UserRole, login) top_item.addChild(login_item) top_item.setExpanded(True)
def fill_children_pipelines_and_processes(self, stype=None, parent_tree_item=None, added_stypes=None): if not parent_tree_item: parent_tree_item_add = self.tree_widget.addTopLevelItem else: parent_tree_item_add = parent_tree_item.addChild if not added_stypes: added_stypes = [] # Children process if stype.schema: for child in stype.schema.children: child_stype = stype.get_project().stypes.get(child['from']) relationship_type = child.get('type') if child_stype and relationship_type not in ['many_to_many']: top_item = QtGui.QTreeWidgetItem() top_item.setText( 0, child_stype.get_pretty_name() + ' (child)') top_item.setCheckState(0, QtCore.Qt.Checked) top_item.setData( 1, 0, '{0}:{1}'.format(child_stype.get_code(), '{s}')) clr = child_stype.get_stype_color(tuple=True) stype_color = None if clr: stype_color = Qt4Gui.QColor(clr[0], clr[1], clr[2], 255) top_item.setIcon( 0, gf.get_icon('view-sequential', color=stype_color, icons_set='mdi', scale_factor=1.1)) parent_tree_item_add(top_item) self.fill_builtin_processes(top_item) # breaking recursion if child_stype not in added_stypes: added_stypes.append(child_stype) self.fill_stype_pipeline(child_stype, top_item) self.fill_children_pipelines_and_processes( child_stype, top_item, added_stypes)
def fill_modules_tree(self): if self.isVisible(): scrollbar = self.debugLogTextEdit.verticalScrollBar() scrollbar.setValue(scrollbar.maximum()) # self.treeWidget.clear() if not self.check_if_items_exists(self.treeWidget, 'FULL LOG'): self.full_log_item = QtGui.QTreeWidgetItem() self.full_log_item.setText(0, ' -- FULL LOG -- ') self.full_log_item.setData(0, 12, 'FULL LOG') self.treeWidget.addTopLevelItem(self.full_log_item) for debuglog_dict in [dl.info_dict, dl.warning_dict, dl.log_dict]: self.add_items_by_debuglog_dict(debuglog_dict)
def add_items_to_stypes_tree(self): exclude_list = self.get_ignore_stypes_list() self.stypes_tree_widget.clear() all_stypes = [] for stype in env_inst.projects[ self.project.get_code()].stypes.itervalues(): all_stypes.append(stype.info) grouped = gf.group_dict_by(all_stypes, 'type') for type_name, value in grouped.items(): top_item = QtGui.QTreeWidgetItem() if not type_name: type_name = 'No Category' top_item.setText(0, type_name.capitalize()) top_item.setCheckState(0, QtCore.Qt.Checked) self.stypes_tree_widget.addTopLevelItem(top_item) for item in value: child_item = QtGui.QTreeWidgetItem() stype = env_inst.projects[self.project.get_code()].stypes.get( item.get('code')) item_code = stype.get_code() child_item.setText(0, stype.get_pretty_name()) child_item.setText(1, item_code) child_item.setData(0, QtCore.Qt.UserRole, item) child_item.setCheckState(0, QtCore.Qt.Checked) if exclude_list: if item_code in exclude_list: child_item.setCheckState(0, QtCore.Qt.Unchecked) top_item.addChild(child_item) top_item.setExpanded(True)
def fill_versions_widget(self, paths): self.treeWidget_vers.clear() file_names = [] for keys, values in paths: for i, fl in enumerate(values['versioned']['names']): full_path = gf.form_path(self.repo['value'][0] + '/' + values['versioned']['paths'][i]) item = QtGui.QTreeWidgetItem() item.setText(0, u''.join(fl)) file_names.append(u''.join(fl)) item.setText(1, full_path) self.treeWidget_vers.addTopLevelItem(item) if self.commit_item: self.commit_item.set_new_title(file_names[0]) self.treeWidget_vers.resizeColumnToContents(0)
def fill_table_widget(self, pipeline=None): # def get_current_process_info(self): # pipeline = self.get_current_process_pipeline() # process_info = None # if pipeline: # process_info = pipeline.process.get(self.process) # # return process_info # # self.tablesTreeWidget.addTopLevelItem(QtGui.QTreeWidgetItem()) def recursive_add_sub_processes(ppln): for child_process in ppln.get_all_processes_names(): subprocess_item = QtGui.QTreeWidgetItem() subprocess_item.setText(0, child_process) process_item.addChild(subprocess_item) # getting all possible processes here pipeline_code = self.sobject.info.get('pipeline_code') if pipeline_code and self.stype.pipeline: pipeline = self.stype.pipeline.get(pipeline_code) for process in pipeline.get_all_processes_names(): process_item = QtGui.QTreeWidgetItem() process_item.setText(0, process) self.tablesTreeWidget.addTopLevelItem(process_item) process_info = pipeline.process.get(process) if process_info.get('type') == 'hierarchy': workflow = self.stype.get_workflow() child_pipeline = workflow.get_child_pipeline_by_process_code( pipeline, process) recursive_add_sub_processes(child_pipeline) # print self.sobject.process.items() process = self.sobject.get_process('modeling') contexts = process.get_contexts() if contexts: for key, val in contexts.items(): # print key, val for snapshot in val.get_versions().values(): # from pprint import pprint # pprint(snapshot.get_snapshot()) self.fill_edit_table_tree_widget(snapshot.get_snapshot())
def fill_templates(self): templates = [ (True, '$FILENAME'), (True, '$FILENAME.$EXT'), (True, '$FILENAME.$FRAME.$EXT'), (True, '$FILENAME_$UDIM.$EXT'), (True, '$FILENAME_$UV.$EXT'), (True, '$FILENAME.$FRAME_$UDIM.$EXT'), (True, '$FILENAME.$FRAME_$UV.$EXT'), (True, '$FILENAME_$UV.$FRAME.$EXT'), (False, '$FILENAME_$LAYER.$EXT'), (False, '$FILENAME.$LAYER.$EXT'), (False, '$FILENAME_$LAYER.$FRAME.$EXT'), (False, '$FILENAME.$LAYER.$FRAME.$EXT'), (False, '$FILENAME.$LAYER_$UV.$EXT'), (False, '$FILENAME.$LAYER.$FRAME_$UV.$EXT'), (False, '$FILENAME.$LAYER_$UV.$FRAME.$EXT'), (False, '$FILENAME.$LAYER_$UDIM.$EXT'), (False, '$FILENAME.$LAYER.$FRAME_$UDIM.$EXT'), (False, '$FILENAME.$LAYER_$UDIM.$FRAME.$EXT'), (False, '$FILENAME_$LAYER.$FRAME_$UDIM.$EXT'), ] # templates = [ # (True, '$FILENAME'), # (True, '$FILENAME.$EXT'), # (True, '$FILENAMEFrame$FRAME.$EXT'), # ] for enabled, template in templates: tree_item = QtGui.QTreeWidgetItem() if enabled: tree_item.setCheckState(0, QtCore.Qt.Checked) self.current_templates_list.append(template) else: tree_item.setCheckState(0, QtCore.Qt.Unchecked) tree_item.setText(1, template) match_template = gf.MatchTemplate([template], padding=self.get_min_padding()) tree_item.setText(2, match_template.get_preview_string()) tree_item.setText(3, match_template.get_type_string()) if template in ['$FILENAME', '$FILENAME.$EXT']: tree_item.setDisabled(True) self.templatesTreeWidget.addTopLevelItem(tree_item)
def fill_repo_tree_widget(self, exlude_list=None): self.repos_tree_widget.clear() if not exlude_list: exlude_list = [] base_dirs = env_tactic.get_all_base_dirs() # Default repo states for key, val in base_dirs: if val['value'][4] and val['value'][3] in exlude_list: root_item = QtGui.QTreeWidgetItem() root_item.setText(0, val['value'][1]) root_item.setData(0, QtCore.Qt.UserRole, val) self.repos_tree_widget.addTopLevelItem(root_item)
def recursive_add_items(self, root_item, subgroup_list): item_text = subgroup_list.pop() group_item = QtGui.QTreeWidgetItem() if self.check_if_items_exists(root_item, item_text): group_item = self.check_if_items_exists(root_item, item_text) else: root_item.addChild(group_item) val = root_item.data(0, QtCore.Qt.UserRole) if val: group_item.setText(0, '{0} ({1})'.format(item_text, len(val))) else: group_item.setText(0, item_text) group_item.setData(0, 12, item_text) group_item.setData(0, QtCore.Qt.UserRole, val) if subgroup_list: return self.recursive_add_items(group_item, subgroup_list)
def add_item_with_tactic_file_object(self, file_object, show_more_info, show_all_files, snapshot_info, type_item, file_icon): child_item = QtGui.QTreeWidgetItem() file_name = file_object.get_filename_with_ext() if not file_object.is_exists(): file_name += ' (File Offline)' child_item.setText(0, file_name) child_item.setData(0, QtCore.Qt.UserRole, file_object) if show_more_info: child_item.setText(1, gf.sizes(file_object.get_file_size())) child_item.setText(2, file_object.get_abs_path()) child_item.setText(3, snapshot_info.get('repo')) child_item.setText(4, file_object.get_base_type()) if show_all_files: type_item.addChild(child_item) else: self.filesTreeWidget.addTopLevelItem(child_item) child_item.setIcon(0, file_icon) child_item.setExpanded(True)
def fill_watch_folders_tree_widget(self): self.watchFoldersTreeWidget.clear() if self.watch_folders_dict: for i, asset_skey in enumerate( self.watch_folders_dict.get('assets_skeys')): root_item = QtGui.QTreeWidgetItem() root_item.setData(0, QtCore.Qt.UserRole, asset_skey) root_item.setText(1, self.watch_folders_dict['assets_stypes'][i]) root_item.setText(2, self.watch_folders_dict['assets_names'][i]) repos_names = [] for repo in self.watch_folders_dict['repos'][i]: repos_names.append( env_tactic.get_base_dir(repo)['value'][1]) root_item.setText(3, ', '.join(repos_names)) # setting actual watch status if self.watch_folders_dict['statuses'][i]: if self.check_for_item_in_watch(asset_skey): root_item.setText(0, 'Watching') self.start_watch_by_skey(asset_skey) else: root_item.setText(0, 'Waiting') else: root_item.setText(0, 'Stopped') self.stop_watch_by_skey(asset_skey) self.watchFoldersTreeWidget.addTopLevelItem(root_item) self.watchFoldersTreeWidget.resizeColumnToContents(0) self.watchFoldersTreeWidget.resizeColumnToContents(1) self.watchFoldersTreeWidget.resizeColumnToContents(2) self.watchFoldersTreeWidget.resizeColumnToContents(3) if self.watched_items: self.start_watching() else: self.stop_watching()
def get_from_tree(self): transforms = bool(self.transforms_checkbox.isChecked()) shapes = bool(self.shapes_checkbox.isChecked()) from_list = cmds.ls(sl=True, dag=True, shapes=shapes, transforms=transforms) self.from_tree.clear() final_from_list = [] filter_text = self.filter_edit.text() if filter_text: for node in from_list: if node.find(filter_text) != -1: final_from_list.append(node) else: final_from_list = from_list for shape in final_from_list: item = QtGui.QTreeWidgetItem() self.from_tree.addTopLevelItem(item) item.setText(0, shape)
def fill_files_tree(self): self.filesTreeWidget.clear() show_more_info = self.showMoreInfoCheckBox.isChecked() show_all_files = self.showAllCheckBox.isChecked() if not show_more_info: self.filesTreeWidget.setHeaderHidden(True) self.filesTreeWidget.setColumnCount(1) else: self.filesTreeWidget.setHeaderHidden(False) self.filesTreeWidget.setColumnCount(5) icon_provider = QtGui.QFileIconProvider() known_icon_ext = {} if self.snapshots: # Making versionless on top of tree if self.item_widget.type == 'snapshot': if self.item_widget.is_versionless(): versionless_snapshot = self.item_widget.get_snapshot() if versionless_snapshot and versionless_snapshot not in self.snapshots: self.snapshots.insert(0, versionless_snapshot) for snapshot in self.snapshots: snapshot_info = snapshot.get_snapshot() snapshot_files_objects = snapshot.get_files_objects(group_by='type') if show_all_files: sn_item = QtGui.QTreeWidgetItem() sn_item.setText(0, 'Snapshot ({0}), Version: {1}'.format(snapshot_info.get('id'), snapshot_info.get('version'))) self.filesTreeWidget.addTopLevelItem(sn_item) sn_item.setExpanded(True) # Download from http for file_type, files_objects in snapshot_files_objects.items(): for file_object in files_objects: if gf.get_value_from_config(cfg_controls.get_checkin(), 'getPreviewsThroughHttpCheckbox') == 1: if file_type in ['icon', 'playblast', 'web', 'image']: if file_object.is_exists(): if file_object.get_file_size() != file_object.get_file_size(True): self.download_web_preview(file_object) else: self.download_web_preview(file_object) preview = [] if not show_all_files: preview = ['icon', 'playblast', 'web'] # Adding files to tree for i, (file_type, files_objects) in enumerate(snapshot_files_objects.items()): type_item = QtGui.QTreeWidgetItem() if file_type not in preview: if show_all_files: type_item.setText(0, file_type) sn_item.addChild(type_item) type_item.setExpanded(True) for file_object in files_objects: # removing unnecessary calls to icon provider file_ext = file_object.get_ext() if known_icon_ext.get(file_ext): file_icon = known_icon_ext[file_ext] else: file_icon = icon_provider.icon(file_object.get_full_abs_path()) known_icon_ext[file_ext] = file_icon # multiple files in snapshot if file_object.is_meta_file_obj(): self.add_item_with_meta_file_object(file_object, show_more_info, show_all_files, snapshot_info, type_item, file_icon) else: self.add_item_with_tactic_file_object(file_object, show_more_info, show_all_files, snapshot_info, type_item, file_icon) self.filesTreeWidget.resizeColumnToContents(0) if show_more_info: self.filesTreeWidget.resizeColumnToContents(1) self.filesTreeWidget.resizeColumnToContents(2) self.filesTreeWidget.resizeColumnToContents(4) self.filesTreeWidget.resizeColumnToContents(5)
def setupUi(self, editDBTable): editDBTable.setObjectName("editDBTable") editDBTable.resize(800, 640) self.centralwidget = QtGui.QWidget(editDBTable) self.centralwidget.setObjectName("centralwidget") self.gridLayout = QtGui.QGridLayout(self.centralwidget) self.gridLayout.setContentsMargins(9, 9, 9, 0) self.gridLayout.setObjectName("gridLayout") self.splitter = QtGui.QSplitter(self.centralwidget) self.splitter.setOrientation(QtCore.Qt.Horizontal) self.splitter.setObjectName("splitter") self.verticalLayoutWidget_2 = QtGui.QWidget(self.splitter) self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2") self.verticalLayout = QtGui.QVBoxLayout(self.verticalLayoutWidget_2) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.tablesTreeWidget = QtGui.QTreeWidget(self.verticalLayoutWidget_2) self.tablesTreeWidget.setMinimumSize(QtCore.QSize(150, 0)) self.tablesTreeWidget.setStyleSheet( "QTreeView::item {\n" " padding: 2px;\n" "}\n" "\n" "QTreeView::item:selected:active{\n" " background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(82, 133, 166, 255), stop:1 rgba(82, 133, 166, 255));\n" " border: 1px solid transparent;\n" "}\n" "QTreeView::item:selected:!active {\n" " background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(82, 133, 166, 255), stop:1 rgba(82, 133, 166, 255));\n" " border: 1px solid transparent;\n" "}\n" "") self.tablesTreeWidget.setRootIsDecorated(True) self.tablesTreeWidget.setHeaderHidden(True) self.tablesTreeWidget.setObjectName("tablesTreeWidget") item_0 = QtGui.QTreeWidgetItem(self.tablesTreeWidget) item_1 = QtGui.QTreeWidgetItem(item_0) item_1 = QtGui.QTreeWidgetItem(item_0) item_2 = QtGui.QTreeWidgetItem(item_1) item_1 = QtGui.QTreeWidgetItem(item_0) item_2 = QtGui.QTreeWidgetItem(item_1) item_0 = QtGui.QTreeWidgetItem(self.tablesTreeWidget) item_1 = QtGui.QTreeWidgetItem(item_0) item_2 = QtGui.QTreeWidgetItem(item_1) item_2 = QtGui.QTreeWidgetItem(item_1) item_3 = QtGui.QTreeWidgetItem(item_2) item_2 = QtGui.QTreeWidgetItem(item_1) item_3 = QtGui.QTreeWidgetItem(item_2) item_1 = QtGui.QTreeWidgetItem(item_0) self.verticalLayout.addWidget(self.tablesTreeWidget) self.verticalLayoutWidget_3 = QtGui.QWidget(self.splitter) self.verticalLayoutWidget_3.setObjectName("verticalLayoutWidget_3") self.verticalLayout_2 = QtGui.QVBoxLayout(self.verticalLayoutWidget_3) self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.verticalLayout_2.setObjectName("verticalLayout_2") self.tableEditorLayout = QtGui.QVBoxLayout() self.tableEditorLayout.setObjectName("tableEditorLayout") self.editTableWidget = QtGui.QTableWidget(self.verticalLayoutWidget_3) self.editTableWidget.setObjectName("editTableWidget") self.editTableWidget.setColumnCount(0) self.editTableWidget.setRowCount(0) self.tableEditorLayout.addWidget(self.editTableWidget) self.verticalLayout_2.addLayout(self.tableEditorLayout) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.savePushButton = QtGui.QPushButton(self.verticalLayoutWidget_3) self.savePushButton.setMinimumSize(QtCore.QSize(120, 0)) self.savePushButton.setObjectName("savePushButton") self.horizontalLayout.addWidget(self.savePushButton) spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem1) self.verticalLayout_2.addLayout(self.horizontalLayout) self.verticalLayout_2.setStretch(0, 1) self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1) editDBTable.setCentralWidget(self.centralwidget) self.statusbar = QtGui.QStatusBar(editDBTable) self.statusbar.setObjectName("statusbar") editDBTable.setStatusBar(self.statusbar) self.retranslateUi(editDBTable) QtCore.QMetaObject.connectSlotsByName(editDBTable)
def printparent(self): self.child_item = QtGui.QTreeWidgetItem() self.child_item.setText(0, 'Child' + str(self.tree_item.childCount())) self.tree_item.addChild(self.child_item) self.tree_item.setExpanded(True)