aboutsummaryrefslogtreecommitdiffstats
path: root/sb_builder
diff options
context:
space:
mode:
Diffstat (limited to 'sb_builder')
-rw-r--r--sb_builder/__init__.py2
-rw-r--r--sb_builder/jobs.py10
2 files changed, 11 insertions, 1 deletions
diff --git a/sb_builder/__init__.py b/sb_builder/__init__.py
index 267ce94..87e7f4e 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.10.0" # must match remote/sbb-remote VERSION
+VERSION = "0.11.0" # must match remote/sbb-remote VERSION
diff --git a/sb_builder/jobs.py b/sb_builder/jobs.py
index 111d804..9bfa2e3 100644
--- a/sb_builder/jobs.py
+++ b/sb_builder/jobs.py
@@ -134,6 +134,8 @@ class JobsTab(QWidget):
self.actions = [self.act_pull,
action(self, "Check shadowing", "edit-find", SP.SP_FileDialogContentsView,
lambda: self.start("sbshadow", "--no")),
+ action(self, "Rebuild tree", "edit-clear-all", SP.SP_DialogResetButton,
+ self.rebuild_tree),
self.act_run, self.act_kill]
self.view_actions = []
@@ -206,6 +208,14 @@ class JobsTab(QWidget):
self.pending = args
self.remote.call(self._started, "job-start", *args)
+ def confirm(self, question):
+ return QMessageBox.question(self, "Confirm", question) == QMessageBox.StandardButton.Yes
+
+ def rebuild_tree(self):
+ if self.confirm("Replace SBo-danix with a fresh clone of upstream and the overlays, "
+ "then reapply shadowing?"):
+ self.start("rebuild-tree")
+
def kill(self):
if QMessageBox.question(self, "Kill job", f"Send SIGTERM to {self.current}?") \
== QMessageBox.StandardButton.Yes: