def addParent(self, parent, column, title, data, status): item = QTreeWidgetItem(parent, [title]) item.setData(column, Qt.UserRole, data) item.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) item.setCheckState (column, self.getCheckStatus(status)) item.setExpanded (False) return item
def generate_children(self, parent): # Clean parent of previous items self.clear_tree_item(parent) for item in parent.get_items(): # Read item params columns = QStringList() columns.append(item.get_name()) columns.append(item.get_size()) # Create tree item child = QTreeWidgetItem(columns) child.setTextAlignment(1, Qt.AlignRight|Qt.AlignVCenter) child.setFirstColumnSpanned(True) # Set icon with mime type, and folder indicator self.set_icon(item.mime_type, child) if item.is_folder(): child.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) # Set tree item to item data item.tree_item = child # sort alphapetically and add items to tree self.sort_and_show_children(parent) # add loading widgets self.add_loading_widgets(parent.get_items())
def populate_filter_tree(self): """ Populates the filter tree widget from the filter data. Called automatically from other methods when necessary. """ self.filterTreeWidget.clear() for name, manager in sorted(self.filter_managers.items()): top = QTreeWidgetItem(self.filterTreeWidget) top.setText(0, name) top.setFlags(Qt.ItemIsEnabled | Qt.ItemIsDropEnabled) top.setData(1, Qt.UserRole, self.FilterTreeRoleTop) top.setTextColor(0, Qt.gray) top.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) self.filterTreeWidget.addTopLevelItem(top) if manager.list_items(): top.setExpanded(True) for i in manager.list_items(): if isinstance(i[1], manager.FilterGroup): group = QTreeWidgetItem(top) group.setText(0, i[0]) group.setData(1, Qt.UserRole, self.FilterTreeRoleGroup) group.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDropEnabled | Qt.ItemIsDragEnabled) group.setChildIndicatorPolicy( QTreeWidgetItem.ShowIndicator) if i[1].list_items(): group.setExpanded(True) top.addChild(group) for f in i[1].list_items(): item = QTreeWidgetItem(group) item.setText(0, f[0]) if f[1].active: item.setData(0, CheckableItemDelegate.CheckedRole, True) else: item.setData(0, CheckableItemDelegate.CheckedRole, False) if i[1].exclusive: item.setData(0, CheckableItemDelegate.CheckTypeRole, CheckableItemDelegate.RadioCheckType) else: item.setData( 0, CheckableItemDelegate.CheckTypeRole, CheckableItemDelegate.CheckBoxCheckType) item.setData(1, Qt.UserRole, self.FilterTreeRoleFilter) item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled) group.addChild(item) else: item = QTreeWidgetItem(top) item.setText(0, i[0]) if i[1].active: item.setData(0, CheckableItemDelegate.CheckedRole, True) else: item.setData(0, CheckableItemDelegate.CheckedRole, False) item.setData(0, CheckableItemDelegate.CheckTypeRole, CheckableItemDelegate.CheckBoxCheckType) item.setData(1, Qt.UserRole, self.FilterTreeRoleFilter) item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled) top.addChild(item)
def addParent(self, parent, column, title, data): item = QTreeWidgetItem(parent, [title]) item.setData(column, Qt.UserRole, data) item.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) item.setExpanded(True) return item
def populate_filter_tree(self): """ Populates the filter tree widget from the filter data. Called automatically from other methods when necessary. """ self.filterTreeWidget.clear() for name, manager in sorted(self.filter_managers.items()): top = QTreeWidgetItem(self.filterTreeWidget) top.setText(0, name) top.setFlags(Qt.ItemIsEnabled | Qt.ItemIsDropEnabled) top.setData(1, Qt.UserRole, self.FilterTreeRoleTop) top.setTextColor(0, Qt.gray) top.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) self.filterTreeWidget.addTopLevelItem(top) if manager.list_items(): top.setExpanded(True) for i in manager.list_items(): if isinstance(i[1], manager.FilterGroup): group = QTreeWidgetItem(top) group.setText(0, i[0]) group.setData(1, Qt.UserRole, self.FilterTreeRoleGroup) group.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDropEnabled | Qt.ItemIsDragEnabled) group.setChildIndicatorPolicy( QTreeWidgetItem.ShowIndicator) if i[1].list_items(): group.setExpanded(True) top.addChild(group) for f in i[1].list_items(): item = QTreeWidgetItem(group) item.setText(0, f[0]) if f[1].active: item.setData(0, CheckableItemDelegate.CheckedRole, True) else: item.setData(0, CheckableItemDelegate.CheckedRole, False) if i[1].exclusive: item.setData(0, CheckableItemDelegate.CheckTypeRole, CheckableItemDelegate.RadioCheckType) else: item.setData(0, CheckableItemDelegate.CheckTypeRole, CheckableItemDelegate.CheckBoxCheckType) item.setData(1, Qt.UserRole, self.FilterTreeRoleFilter) item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled) group.addChild(item) else: item = QTreeWidgetItem(top) item.setText(0, i[0]) if i[1].active: item.setData(0, CheckableItemDelegate.CheckedRole, True) else: item.setData(0, CheckableItemDelegate.CheckedRole, False) item.setData(0, CheckableItemDelegate.CheckTypeRole, CheckableItemDelegate.CheckBoxCheckType) item.setData(1, Qt.UserRole, self.FilterTreeRoleFilter) item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled) top.addChild(item)