diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2003-06-14 21:34:32 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2003-06-14 21:34:32 (GMT) |
commit | d6efae500ce3e955b95b324954defa1a9f2d9e96 (patch) | |
tree | e0d562478928d8e75f98f8117ecf3b8b1c0c38ec /Lib/lib-tk | |
parent | 19d173486b2263a269260343d65ac3929c89297e (diff) | |
download | cpython-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.py | 19 |
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? |