aboutsummaryrefslogtreecommitdiffstats
path: root/sb_builder/results.py
diff options
context:
space:
mode:
Diffstat (limited to 'sb_builder/results.py')
-rw-r--r--sb_builder/results.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/sb_builder/results.py b/sb_builder/results.py
index 1fc6b9a..21fdcc3 100644
--- a/sb_builder/results.py
+++ b/sb_builder/results.py
@@ -21,12 +21,13 @@ import re
from PyQt6.QtCore import Qt
from PyQt6.QtGui import QColor, QFontDatabase, QTextCursor
-from PyQt6.QtWidgets import (QDialog, QHBoxLayout, QLabel, QPlainTextEdit, QPushButton,
- QSplitter, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget)
+from PyQt6.QtWidgets import (QDialog, QHBoxLayout, QLabel, QPlainTextEdit, QSplitter,
+ QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget)
from .dashboard import STATUS
from .fmt import NA, fmt_time
from .packages import chip
+from .ui import SP, action, enable
KINDS = ("ok", "failed", "bad", "aborted", "removed")
ANSI = re.compile(r"\x1b\[[0-9;?]*[A-Za-z]")
@@ -75,9 +76,10 @@ class ResultsTab(QWidget):
bar.addStretch()
self.count = QLabel()
bar.addWidget(self.count)
- refresh = QPushButton("Refresh")
- refresh.clicked.connect(self.reload)
- bar.addWidget(refresh)
+ self.act_log = action(self, "Show build log", "text-x-generic", SP.SP_FileIcon, self.show_log)
+ self.actions = [self.act_log]
+ self.view_actions = [action(self, "Refresh", "view-refresh", SP.SP_BrowserReload, self.reload)]
+ self.loaded = False
self.table = QTableWidget(0, 4, sortingEnabled=True)
self.table.setHorizontalHeaderLabels(["result", "package", "built version", "attempt"])
@@ -94,13 +96,9 @@ class ResultsTab(QWidget):
self.detail = QLabel(textFormat=Qt.TextFormat.RichText, wordWrap=True,
alignment=Qt.AlignmentFlag.AlignTop)
self.detail.setContentsMargins(12, 8, 12, 8)
- self.log_btn = QPushButton("Show build log")
- self.log_btn.clicked.connect(self.show_log)
- self.log_btn.setEnabled(False)
side = QWidget()
col = QVBoxLayout(side)
col.addWidget(self.detail)
- col.addWidget(self.log_btn)
col.addStretch()
split = QSplitter()
split.addWidget(self.table)
@@ -109,9 +107,11 @@ class ResultsTab(QWidget):
layout = QVBoxLayout(self)
layout.addLayout(bar)
- layout.addWidget(split)
+ layout.addWidget(split, 1)
+ self.show_detail()
def reload(self):
+ self.loaded = True
self.count.setText("loading…")
self.remote.call(self._loaded, "results")
@@ -166,7 +166,7 @@ class ResultsTab(QWidget):
def show_detail(self):
row = self.current()
- self.log_btn.setEnabled(bool(row and row[4]))
+ enable(self.act_log, None if row and row[4] else "select a result with a log")
if not row:
self.detail.setText("")
return