From d0245977d2cf334854cdfe53dc327c277371fa6e Mon Sep 17 00:00:00 2001 From: Nkwuda Sunday Cletus <49409497+sunny775@users.noreply.github.com> Date: Thu, 23 Mar 2023 15:15:07 +0100 Subject: [PATCH] Disable Archive tab buttons during backup. By @sunny775 (#1587) * Disable archive action buttons when running backup. * Disable archive action buttons only individually. * Fix enabling. * fixup! Fix enabling. --------- Co-authored-by: real-yfprojects Co-authored-by: Manu <3916435+m3nu@users.noreply.github.com> --- src/vorta/views/archive_tab.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/vorta/views/archive_tab.py b/src/vorta/views/archive_tab.py index db991f7b..31e3aef2 100644 --- a/src/vorta/views/archive_tab.py +++ b/src/vorta/views/archive_tab.py @@ -231,8 +231,10 @@ class ArchiveTab(ArchiveTabBase, ArchiveTabUI, BackupProfileMixin): self.bList, self.bPrune, self.bDiff, - self.fArchiveActions, self.bMountRepo, + self.bDelete, + self.compactButton, + self.fArchiveActions, ]: button.setEnabled(enabled) button.repaint() @@ -322,17 +324,22 @@ class ArchiveTab(ArchiveTabBase, ArchiveTabUI, BackupProfileMixin): # Toggle archive actions frame layout: QLayout = self.fArchiveActions.layout() + # task in progress -> disable all + reason = "" + if not self.repoactions_enabled: + reason = self.tr("(borg already running)") + # toggle delete button - if len(indexes) > 0: + if self.repoactions_enabled and len(indexes) > 0: self.bDelete.setEnabled(True) self.bDelete.setToolTip(self.tooltip_dict.get(self.bDelete, "")) else: self.bDelete.setEnabled(False) tooltip = self.tooltip_dict[self.bDelete] - self.bDelete.setToolTip(tooltip + " " + self.tr("(Select minimum one archive)")) + self.bDelete.setToolTip(tooltip + " " + reason or self.tr("(Select minimum one archive)")) # Toggle diff button - if len(indexes) == 2: + if self.repoactions_enabled and len(indexes) == 2: # Enable diff button self.bDiff.setEnabled(True) self.bDiff.setToolTip(self.tooltip_dict.get(self.bDiff, "")) @@ -341,9 +348,9 @@ class ArchiveTab(ArchiveTabBase, ArchiveTabUI, BackupProfileMixin): self.bDiff.setEnabled(False) tooltip = self.tooltip_dict[self.bDiff] - self.bDiff.setToolTip(tooltip + " " + self.tr("(Select two archives)")) + self.bDiff.setToolTip(tooltip + " " + reason or self.tr("(Select two archives)")) - if len(indexes) == 1: + if self.repoactions_enabled and len(indexes) == 1: # Enable archive actions self.fArchiveActions.setEnabled(True) @@ -354,6 +361,8 @@ class ArchiveTab(ArchiveTabBase, ArchiveTabUI, BackupProfileMixin): # refresh bMountArchive for the selected archive self.bmountarchive_refresh() else: + reason = reason or self.tr("(Select exactly one archive)") + # too few or too many selected. self.fArchiveActions.setEnabled(False) @@ -362,12 +371,12 @@ class ArchiveTab(ArchiveTabBase, ArchiveTabUI, BackupProfileMixin): tooltip = widget.toolTip() tooltip = self.tooltip_dict.setdefault(widget, tooltip) - widget.setToolTip(tooltip + " " + self.tr("(Select exactly one archive)")) + widget.setToolTip(tooltip + " " + reason) # special treatment for dynamic mount/unmount button. self.bmountarchive_refresh() tooltip = self.bMountArchive.toolTip() - self.bMountArchive.setToolTip(tooltip + " " + self.tr("(Select exactly one archive)")) + self.bMountArchive.setToolTip(tooltip + " " + reason) def archive_copy(self, index=None): """