From a05a90fb6a7a59705ec0096acc4fd8b956efd366 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 13 May 2024 00:38:49 +0200 Subject: [PATCH] Move column/header resizing code to parent of ConfigurableColumnsHeader --- picard/ui/itemviews/__init__.py | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/picard/ui/itemviews/__init__.py b/picard/ui/itemviews/__init__.py index 02006a433..bce89ac74 100644 --- a/picard/ui/itemviews/__init__.py +++ b/picard/ui/itemviews/__init__.py @@ -336,21 +336,10 @@ class ConfigurableColumnsHeader(TristateSortHeaderView): return self.parent().setColumnHidden(column, not show) if show: - if self.sectionSize(column) == 0: - self.resizeSection(column, self.defaultSectionSize()) self._visible_columns.add(column) - if column == MainPanel.FINGERPRINT_COLUMN: - self.setSectionResizeMode(column, QtWidgets.QHeaderView.ResizeMode.Fixed) - self.resizeSection(column, COLUMN_ICON_SIZE) - else: - self.setSectionResizeMode(column, QtWidgets.QHeaderView.ResizeMode.Interactive) elif column in self._visible_columns: self._visible_columns.remove(column) - def update_visible_columns(self, columns): - for i, column in enumerate(DEFAULT_COLUMNS): - self.show_column(i, i in columns) - def contextMenuEvent(self, event): menu = QtWidgets.QMenu(self) parent = self.parent() @@ -705,9 +694,15 @@ class BaseTreeView(QtWidgets.QTreeWidget): header.setDefaultAlignment(QtCore.Qt.AlignmentFlag.AlignLeft | QtCore.Qt.AlignmentFlag.AlignVCenter) header.setDefaultSectionSize(DEFAULT_SECTION_SIZE) - header.update_visible_columns([0, 1, 2]) - for i, size in enumerate([250, 50, 100]): - header.resizeSection(i, size) + for i, c in enumerate(DEFAULT_COLUMNS): + header.show_column(i, c.is_default) + if c.is_icon: + header.resizeSection(i, c.header_icon_size_with_border.width()) + header.setSectionResizeMode(i, QtWidgets.QHeaderView.ResizeMode.Fixed) + else: + header.resizeSection(i, c.size if c.size is not None else DEFAULT_SECTION_SIZE) + header.setSectionResizeMode(i, QtWidgets.QHeaderView.ResizeMode.Interactive) + self.sortByColumn(-1, QtCore.Qt.SortOrder.AscendingOrder) def _init_header(self):