Browse Source

Fixed error in selecting backup directory in GUI backup

Also removed unused settings.

fixes QubesOS/qubes-issues#5430
Marta Marczykowska-Górecka 4 years ago
parent
commit
afad888343
2 changed files with 17 additions and 6 deletions
  1. 0 1
      qubesmanager/backup.py
  2. 17 5
      qubesmanager/backup_utils.py

+ 0 - 1
qubesmanager/backup.py

@@ -65,7 +65,6 @@ class BackupVMsWindow(ui_backupdlg.Ui_Backup, QtWidgets.QWizard):
 
         self.qt_app = qt_app
         self.qubes_app = qubes_app
-        self.backup_settings = QtCore.QSettings()
 
         self.selected_vms = []
         self.thread = None

+ 17 - 5
qubesmanager/backup_utils.py

@@ -81,15 +81,27 @@ def select_path_button_clicked(dialog, select_file=False, read_only=False):
                 file_dialog_function = file_dialog.getOpenFileName
             else:
                 file_dialog_function = file_dialog.getExistingDirectory
-            new_path, _ = file_dialog_function(
+            result = file_dialog_function(
                 dialog,
                 dialog.tr("Select backup location."),
                 backup_location if backup_location else '/')
+            if isinstance(result, tuple):
+                new_path = result[0]
+            else:
+                new_path = result
         else:
-            new_path = utils.get_path_from_vm(
-                vm,
-                "qubes.SelectFile" if select_file
-                else "qubes.SelectDirectory")
+            try:
+                new_path = utils.get_path_from_vm(
+                    vm,
+                    "qubes.SelectFile" if select_file
+                    else "qubes.SelectDirectory")
+            except ValueError:
+                QtWidgets.QMessageBox.warning(
+                    dialog,
+                    dialog.tr("Unexpected characters in path!"),
+                    dialog.tr("Backup path can only contain the following "
+                              "special characters: /:.,_+=() -"))
+
     except subprocess.CalledProcessError:
         if not read_only:
             QtWidgets.QMessageBox.warning(