diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-20 20:21:34 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-20 20:21:34 +0200 |
| commit | 91f882df97adea262625a45be0257039f144ae49 (patch) | |
| tree | d7aee7910f79b63ac049579dcf56ce7b8b1b7b7b /sb_builder | |
| parent | 552d8e5bb6ba6537b7031318bc5a8d7e92c971b4 (diff) | |
| download | sb-builder-91f882df97adea262625a45be0257039f144ae49.tar.gz sb-builder-91f882df97adea262625a45be0257039f144ae49.zip | |
sbb-remote 0.9.0: SBo orphans tile on the Dashboard
stats gains "orphans", the packages whose .info says MAINTAINER="orphaned
- no maintainer" (0.14s over the tree on the VM). The placeholder tile
shows the count and opens Packages with only the orphaned chip on.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'sb_builder')
| -rw-r--r-- | sb_builder/__init__.py | 2 | ||||
| -rw-r--r-- | sb_builder/dashboard.py | 5 | ||||
| -rw-r--r-- | sb_builder/mainwindow.py | 1 | ||||
| -rw-r--r-- | sb_builder/packages.py | 8 |
4 files changed, 12 insertions, 4 deletions
diff --git a/sb_builder/__init__.py b/sb_builder/__init__.py index e4a5697..c845154 100644 --- a/sb_builder/__init__.py +++ b/sb_builder/__init__.py @@ -16,4 +16,4 @@ """sb-builder: Qt6 GUI driving the SlackBuild tooling on a build VM.""" -VERSION = "0.8.0" # must match remote/sbb-remote VERSION +VERSION = "0.9.0" # must match remote/sbb-remote VERSION diff --git a/sb_builder/dashboard.py b/sb_builder/dashboard.py index 3096fb8..9b04183 100644 --- a/sb_builder/dashboard.py +++ b/sb_builder/dashboard.py @@ -278,9 +278,7 @@ class Dashboard(QWidget): self.results.body.addWidget(self.legend) self.results.body.addStretch() - self.orphans = Card("SBo orphans") - self.orphans.body.addWidget(muted(QLabel("coming in phase 5"))) - self.orphans.body.addStretch() + self.orphans = Tile("SBo orphans") self.jobs = Card("Recent jobs") self.jobs_list = QLabel("no jobs yet") @@ -320,6 +318,7 @@ class Dashboard(QWidget): else: extra = " · ".join(f"{num(v)}\u00a0{k}" for k, v in p.items() if k != "total") t["Packages"].set(num(p["total"]), extra) + self.orphans.set(num(s.get("orphans")), "packages with no maintainer on SBo") if sr is None: t["Built"].set(NA, "no slackrepo database") else: diff --git a/sb_builder/mainwindow.py b/sb_builder/mainwindow.py index ec2b87a..3860079 100644 --- a/sb_builder/mainwindow.py +++ b/sb_builder/mainwindow.py @@ -108,6 +108,7 @@ class MainWindow(QMainWindow): self.dashboard = Dashboard() self.dashboard.refresh.triggered.connect(self.poll_stats) self.dashboard.tiles["Packages"].link(self.open_packages) + self.dashboard.orphans.link(lambda: self.open_packages().filter_to("orphaned")) self.dashboard.jobs.link(self.open_jobs) self.dashboard.result_clicked.connect(self.open_results) self.jobs_tab = JobsTab(self.remote) diff --git a/sb_builder/packages.py b/sb_builder/packages.py index 68de7c2..f1a7224 100644 --- a/sb_builder/packages.py +++ b/sb_builder/packages.py @@ -319,6 +319,14 @@ class PackagesTab(QWidget): self.model.set_rows(load_rows(data)) self.update_count() + def filter_to(self, name): + """Show only one chip's packages (from a Dashboard click).""" + for k, c in self.chips.items(): + c.blockSignals(True) + c.setChecked(k == name) + c.blockSignals(False) + self.refilter() + def refilter(self): on = {n for n, b in self.chips.items() if b.isChecked()} self.proxy.update(self.query.text(), on - set(STATUSES) - {"orphaned"}, on & set(STATUSES), |
