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)