summaryrefslogtreecommitdiffstats
path: root/Lib/lib-tk
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2003-06-14 21:34:32 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2003-06-14 21:34:32 (GMT)
commitd6efae500ce3e955b95b324954defa1a9f2d9e96 (patch)
treee0d562478928d8e75f98f8117ecf3b8b1c0c38ec /Lib/lib-tk
parent19d173486b2263a269260343d65ac3929c89297e (diff)
downloadcpython-d6efae500ce3e955b95b324954defa1a9f2d9e96.zip
cpython-d6efae500ce3e955b95b324954defa1a9f2d9e96.tar.gz
cpython-d6efae500ce3e955b95b324954defa1a9f2d9e96.tar.bz2
Properly deal with tuples in Open._fixresult. Fixes bug reported in
follow-up to #621891.
Diffstat (limited to 'Lib/lib-tk')
-rw-r--r--Lib/lib-tk/tkFileDialog.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/Lib/lib-tk/tkFileDialog.py b/Lib/lib-tk/tkFileDialog.py
index 63487d2..fb0014c 100644
--- a/Lib/lib-tk/tkFileDialog.py
+++ b/Lib/lib-tk/tkFileDialog.py
@@ -76,6 +76,21 @@ class Open(_Dialog):
command = "tk_getOpenFile"
+ def _fixresult(self, widget, result):
+ if isinstance(result, tuple):
+ # multiple results:
+ result = tuple([getattr(r, "string", r) for r in result])
+ if result:
+ import os
+ path, file = os.path.split(result[0])
+ self.options["initialdir"] = path
+ # don't set initialfile or filename, as we have multiple of these
+ return result
+ if not widget.tk.wantobjects() and "multiple" in self.options:
+ # Need to split result explicitly
+ return self._fixresult(widget, widget.tk.splitlist(result))
+ return _Dialog._fixresult(widget, result)
+
class SaveAs(_Dialog):
"Ask for a filename to save as"
@@ -115,9 +130,7 @@ def askopenfilenames(**options):
cancel button selected
"""
options["multiple"]=1
- files=Open(**options).show()
- return files.split()
-
+ return Open(**options).show()
# FIXME: are the following perhaps a bit too convenient?