From 85955722c745ee11a21fa8c79a524c5cea3bbc89 Mon Sep 17 00:00:00 2001 From: Glutanimate Date: Mon, 18 Feb 2019 07:10:43 +0100 Subject: [PATCH] Extend getFile with support for multi-file selection --- aqt/utils.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/aqt/utils.py b/aqt/utils.py index 1221ce8b7..fdfafb5ab 100644 --- a/aqt/utils.py +++ b/aqt/utils.py @@ -239,7 +239,7 @@ def getTag(parent, deck, question, tags="user", **kwargs): # File handling ###################################################################### -def getFile(parent, title, cb, filter="*.*", dir=None, key=None): +def getFile(parent, title, cb, filter="*.*", dir=None, key=None, multi=False): "Ask the user for a file." assert not dir or not key if not dir: @@ -248,20 +248,22 @@ def getFile(parent, title, cb, filter="*.*", dir=None, key=None): else: dirkey = None d = QFileDialog(parent) - d.setFileMode(QFileDialog.ExistingFile) + mode = QFileDialog.ExistingFiles if multi else QFileDialog.ExistingFile + d.setFileMode(mode) if os.path.exists(dir): d.setDirectory(dir) d.setWindowTitle(title) d.setNameFilter(filter) ret = [] def accept(): - file = str(list(d.selectedFiles())[0]) + files = list(d.selectedFiles()) if dirkey: - dir = os.path.dirname(file) + dir = os.path.dirname(files[0]) aqt.mw.pm.profile[dirkey] = dir + result = files if multi else files[0] if cb: - cb(file) - ret.append(file) + cb(result) + ret.append(result) d.accepted.connect(accept) if key: restoreState(d, key)