From b8400f38411818aa54a773dffb2c3a0c56b06dba Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 19 Oct 2026 20:53:43 +0200 Subject: Add Packages tab, hint view, Run it and signing key unlock Packages tab over the helper inventory: query bar with cat:/maint:/ req:/status: prefixes, overlay and status chips, check column, and a detail pane with versions, dependencies after hints and a structured read-only view of the hint (hints.py mirrors slackrepo's parser). Actions start slackrepo previews; the Jobs tab offers Run it with a publish box (default from [builds] publish), asking for the signing key passphrase first when the key is locked. Status bar shows the key state; Dashboard tiles open their tabs; inventory reloads after slackrepo and publish jobs. Co-Authored-By: Claude Opus 5.5 --- sb_builder/dashboard.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'sb_builder/dashboard.py') diff --git a/sb_builder/dashboard.py b/sb_builder/dashboard.py index d4152ae..85c19f4 100644 --- a/sb_builder/dashboard.py +++ b/sb_builder/dashboard.py @@ -19,7 +19,7 @@ import html import time -from PyQt6.QtCore import QEvent, QRectF, Qt +from PyQt6.QtCore import QEvent, QRectF, Qt, pyqtSignal from PyQt6.QtGui import QColor, QFont, QPainter, QPalette from PyQt6.QtWidgets import (QFrame, QGridLayout, QHBoxLayout, QLabel, QPushButton, QToolTip, QVBoxLayout, QWidget) @@ -44,12 +44,24 @@ def muted(label): class Card(QFrame): """Rounded panel with a muted title; content goes into self.body.""" + clicked = pyqtSignal() + def __init__(self, title): super().__init__(objectName="card") self.body = QVBoxLayout(self) self.body.setContentsMargins(16, 12, 16, 14) self.body.addWidget(muted(QLabel(title))) + def link(self, slot): + """Make the whole card open something.""" + self.clicked.connect(slot) + self.setCursor(Qt.CursorShape.PointingHandCursor) + + def mouseReleaseEvent(self, event): + if event.button() == Qt.MouseButton.LeftButton: + self.clicked.emit() + super().mouseReleaseEvent(event) + class Tile(Card): """Stat tile: title, one large value, a muted detail line.""" -- cgit v1.2.3