aboutsummaryrefslogtreecommitdiffstats
path: root/sb_builder/dashboard.py
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-20 12:13:00 +0200
committerDanilo M. <danix@danix.xyz>2026-10-20 12:13:00 +0200
commitd4cae7a87fd30341b5a936aa848e1fdc019a379e (patch)
tree4a8a21966595468046f1b39b345a49a03c76f25e /sb_builder/dashboard.py
parentc8306d6c87a40bb800241cccd90831e3893550b5 (diff)
downloadsb-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.py9
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)