Skip to content

Commit aa8f26c

Browse files
committed
feat: directories multiselections
1 parent 259c6d5 commit aa8f26c

File tree

7 files changed

+21
-7
lines changed

7 files changed

+21
-7
lines changed

src/vorta/utils.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,11 @@ def choose_file_dialog(parent, title, want_folder=True):
177177
dialog.setFileMode(QFileDialog.FileMode.Directory if want_folder else QFileDialog.FileMode.ExistingFiles)
178178
dialog.setParent(parent, QtCore.Qt.WindowType.Sheet)
179179
if want_folder:
180+
dialog.setOption(QFileDialog.Option.ShowDirsOnly)
180181
list_view = dialog.findChild(QTreeView)
181182
list_view.setSelectionMode(QAbstractItemView.SelectionMode.MultiSelection)
182-
dialog.exec()
183-
return dialog.selectedFiles()
183+
184+
return dialog
184185

185186

186187
def is_ssh_private_key_file(filepath: str) -> bool:

src/vorta/views/archive_tab.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -642,7 +642,8 @@ def receive():
642642
self.app.jobs_manager.add_job(job)
643643

644644
dialog = choose_file_dialog(self, self.tr("Choose Mount Point"), want_folder=True)
645-
dialog.open(receive)
645+
dialog.exec()
646+
receive()
646647

647648
def mount_result(self, result):
648649
if result['returncode'] == 0:

src/vorta/views/repo_add_dialog.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ def receive():
7272
self.is_remote_repo = False
7373

7474
dialog = choose_file_dialog(self, self.tr("Choose Location of Borg Repository"))
75-
dialog.open(receive)
75+
dialog.exec()
76+
receive()
7677

7778
def use_remote_repo_action(self):
7879
self.repoURL.setText('')

src/vorta/views/source_tab.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,8 @@ def sources_update(self):
286286
self.update_path_info(row) # Update data for each entry
287287

288288
def source_add(self, want_folder):
289-
def receive(dirs):
289+
def receive():
290+
dirs = dialog.selectedFiles()
290291
for dir in dirs:
291292
if not os.access(dir, os.R_OK):
292293
msg = QMessageBox()
@@ -301,8 +302,9 @@ def receive(dirs):
301302

302303
msg = self.tr("Choose directory to back up") if want_folder else self.tr("Choose file(s) to back up")
303304

304-
paths = choose_file_dialog(self, msg, want_folder=want_folder)
305-
receive(paths)
305+
dialog = choose_file_dialog(self, msg, want_folder)
306+
dialog.exec()
307+
receive()
306308

307309
def source_copy(self, index=None):
308310
"""

tests/integration/conftest.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@ def __init__(self, *args, **kwargs):
190190
def open(self, func):
191191
func()
192192

193+
def exec(self):
194+
return 1
195+
193196
def selectedFiles(self):
194197
if self.subdirectory:
195198
return [str(tmpdir.join(self.subdirectory))]

tests/unit/conftest.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ def __init__(self, *args, **kwargs):
8686
def open(self, func):
8787
func()
8888

89+
def exec(self):
90+
return 1
91+
8992
def selectedFiles(self):
9093
return ['/tmp']
9194

tests/unit/test_archives.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ class MockFileDialog:
1414
def open(self, func):
1515
func()
1616

17+
def exec(self):
18+
return 1
19+
1720
def selectedFiles(self):
1821
return ['/tmp']
1922

0 commit comments

Comments
 (0)