From 8f405d4476939365176e9627068801b36aa80c75 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 17 Aug 2023 08:38:03 +0530 Subject: [PATCH] Preferences->Add your own columns: Add buttons to show/hide all columns. Fixes #2031570 [have every column be ticked or unticked instead of doing them all manually](https://bugs.launchpad.net/calibre/+bug/2031570) --- src/calibre/gui2/preferences/columns.py | 16 ++++++++ src/calibre/gui2/preferences/columns.ui | 53 ++++++++++++++++++++----- 2 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/calibre/gui2/preferences/columns.py b/src/calibre/gui2/preferences/columns.py index 6c2eff781c..a145b6e6a5 100644 --- a/src/calibre/gui2/preferences/columns.py +++ b/src/calibre/gui2/preferences/columns.py @@ -44,6 +44,8 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): for signal in ('Activated', 'Changed', 'DoubleClicked', 'Clicked'): signal = getattr(self.opt_columns, 'item'+signal) signal.connect(self.columns_changed) + self.show_all_button.clicked.connect(self.show_all) + self.hide_all_button.clicked.connect(self.hide_all) def initialize(self): ConfigWidgetBase.initialize(self) @@ -137,6 +139,20 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): return self.opt_columns.resizeColumnsToContents() + def hide_all(self): + for row in range(self.opt_columns.rowCount()): + item = self.opt_columns.item(row, 0) + if item.checkState() != Qt.CheckState.PartiallyChecked: + item.setCheckState(Qt.CheckState.Unchecked) + self.changed_signal.emit() + + def show_all(self): + for row in range(self.opt_columns.rowCount()): + item = self.opt_columns.item(row, 0) + if item.checkState() != Qt.CheckState.PartiallyChecked: + item.setCheckState(Qt.CheckState.Checked) + self.changed_signal.emit() + def setup_row(self, row, key, order, force_checked_to=None): flags = Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable diff --git a/src/calibre/gui2/preferences/columns.ui b/src/calibre/gui2/preferences/columns.ui index 32996814dd..0672464e85 100644 --- a/src/calibre/gui2/preferences/columns.ui +++ b/src/calibre/gui2/preferences/columns.ui @@ -6,8 +6,8 @@ 0 0 - 504 - 399 + 611 + 482 @@ -191,15 +191,46 @@ - - - Add &custom column - - - - :/images/plus.png:/images/plus.png - - + + + + + Add &custom column + + + + :/images/plus.png:/images/plus.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + &Show all + + + + + + + &Hide all + + + +