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() if self.snapshots: if self.item_widget.type == 'snapshot': if self.item_widget.is_versionless(): versionless_snapshot = self.item_widget.get_snapshot() if versionless_snapshot: self.snapshots.append(versionless_snapshot) for snapshot in self.snapshots: # snapshot_files = snapshot.get_files() snapshot_info = snapshot.get_snapshot() snapshot_files_objects = snapshot.get_files_objects(group_by='type') 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) preview = [] if not show_all_files: preview = ['icon', 'playblast', 'web'] for file_type, files_objects in snapshot_files_objects.iteritems(): type_item = QtGui.QTreeWidgetItem() if file_type not in preview: type_item.setText(0, file_type) sn_item.addChild(type_item) type_item.setExpanded(True) for file_object in files_objects: # multiple files in snapshot child_item = QtGui.QTreeWidgetItem() file_name = file_object.get_filename_with_ext() if not file_object.is_exists(): file_name += ' (file missing)' 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()) type_item.addChild(child_item) file_icon = icon_provider.icon(file_object.get_full_abs_path()) child_item.setIcon(0, file_icon) self.filesTreeWidget.resizeColumnToContents(0) if show_more_info: self.filesTreeWidget.resizeColumnToContents(1) self.filesTreeWidget.resizeColumnToContents(2) # self.filesTreeWidget.resizeColumnToContents(3) self.filesTreeWidget.resizeColumnToContents(4) self.filesTreeWidget.resizeColumnToContents(5)
def append_items_to_tree(self, items): if self.includeSubfoldersCheckBox.isChecked(): dirs_and_files = gf.split_files_and_dirs(items) for dirs in dirs_and_files[0]: for path, subdirs, files in os.walk(dirs): for name in files: items.append(os.path.join(path, name)) for s_dir in subdirs: items.append(os.path.join(path, s_dir)) self.fromDropListCheckBox.setChecked(True) self.dropTreeWidget.clearSelection() if len(items) > 1: self.groupCheckinCheckBox.setChecked(True) if len(items) == 1: self.groupCheckinCheckBox.setChecked(False) match_template = gf.MatchTemplate( self.config_widget.get_templates_list(), padding=self.config_widget.get_min_padding()) files_objects_dict = match_template.get_files_objects(items) 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 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() if self.snapshots: if self.item_widget.type == 'snapshot': if self.item_widget.is_versionless(): versionless_snapshot = self.item_widget.get_snapshot() if versionless_snapshot: self.snapshots.append(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) preview = [] if not show_all_files: preview = ['icon', 'playblast', 'web'] for file_type, files_objects in 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: # 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, icon_provider) else: self.add_item_with_tactic_file_object(file_object, show_more_info, show_all_files, snapshot_info, type_item, icon_provider) if len(files_objects) % 10 == 0: QtGui.QApplication.processEvents() self.filesTreeWidget.resizeColumnToContents(0) if show_more_info: self.filesTreeWidget.resizeColumnToContents(1) self.filesTreeWidget.resizeColumnToContents(2) # self.filesTreeWidget.resizeColumnToContents(3) self.filesTreeWidget.resizeColumnToContents(4) self.filesTreeWidget.resizeColumnToContents(5)