diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-20 12:13:00 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-20 12:13:00 +0200 |
| commit | d4cae7a87fd30341b5a936aa848e1fdc019a379e (patch) | |
| tree | 4a8a21966595468046f1b39b345a49a03c76f25e /sb_builder/dashboard.py | |
| parent | c8306d6c87a40bb800241cccd90831e3893550b5 (diff) | |
| download | sb-builder-d4cae7a87fd30341b5a936aa848e1fdc019a379e.tar.gz sb-builder-d4cae7a87fd30341b5a936aa848e1fdc019a379e.zip | |
One frame for every tab: ribbons of actions, next steps as dialogs
Tabs are permanent and load on first show. The ribbon shows the current
tab's actions in workflow order, a small ribbon under it the view
controls; inapplicable actions are disabled with the reason as tooltip.
Starting a job stays on the tab; the Jobs tab reads (running), then shows
the end status. When a preview this session started ends, its log opens
with Run it (publish box) or Apply shadowing; Not now loses nothing, Run
it in Jobs reopens it. New hint moves to the Packages ribbon and acts on
the ticked packages without a hint.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'sb_builder/dashboard.py')
| -rw-r--r-- | sb_builder/dashboard.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sb_builder/dashboard.py b/sb_builder/dashboard.py index 5dee453..3096fb8 100644 --- a/sb_builder/dashboard.py +++ b/sb_builder/dashboard.py @@ -22,10 +22,11 @@ import time from PyQt6.QtCore import QEvent, QPointF, QRectF, Qt, pyqtSignal from PyQt6.QtGui import QColor, QFont, QPainter, QPalette -from PyQt6.QtWidgets import (QFrame, QGridLayout, QHBoxLayout, QLabel, QPushButton, - QToolTip, QVBoxLayout, QWidget) +from PyQt6.QtWidgets import (QFrame, QGridLayout, QHBoxLayout, QLabel, QToolTip, QVBoxLayout, + QWidget) from .fmt import ICON, NA, fmt_age, fmt_bytes, fmt_duration, fmt_time, job_title +from .ui import SP, action # reserved status colors (dataviz reference palette); always shown with a text label STATUS = {"ok": "#0ca30c", "aborted": "#fab219", "bad": "#ec835a", "failed": "#d03b3b", @@ -288,11 +289,11 @@ class Dashboard(QWidget): self.jobs.body.addStretch() self.stale = muted(QLabel()) - self.refresh_btn = QPushButton("Refresh") + self.refresh = action(self, "Refresh", "view-refresh", SP.SP_BrowserReload) + self.actions, self.view_actions = [self.refresh], [] top = QHBoxLayout() top.addWidget(self.stale) top.addStretch() - top.addWidget(self.refresh_btn) grid = QGridLayout() grid.setSpacing(12) |
