diff options
Diffstat (limited to 'sb_builder/hints_tab.py')
| -rw-r--r-- | sb_builder/hints_tab.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sb_builder/hints_tab.py b/sb_builder/hints_tab.py index 6be57fc..f4bc378 100644 --- a/sb_builder/hints_tab.py +++ b/sb_builder/hints_tab.py @@ -81,6 +81,10 @@ class HintsTab(QWidget): self.no_dl.setToolTip('Write DOWNLOAD="no": slackrepo uses the source already in its cache') bar = QHBoxLayout() bar.addWidget(self.status) + for label, on in (("Select visible", True), ("Clear", False)): + b = QPushButton(label) + b.clicked.connect(lambda _c, on=on: self.check_rows(on)) + bar.addWidget(b) bar.addStretch() for w in (self.check_btn, self.update_btn, self.no_dl): bar.addWidget(w) @@ -145,6 +149,14 @@ class HintsTab(QWidget): n = len(self.checked()) self.status.setText(f"{shown} shown · {n} selected" + (f" · {self.failure}" if self.failure else "")) + def check_rows(self, on): + """Tick every visible row (on), or untick every row.""" + state = Qt.CheckState.Checked if on else Qt.CheckState.Unchecked + for i in range(self.table.rowCount()): + if not on or not self.table.isRowHidden(i): + self.table.item(i, 0).setCheckState(state) + self.refilter() + def checked(self): return [self.table.item(i, 0).data(Qt.ItemDataRole.UserRole) for i in range(self.table.rowCount()) |
