summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/lib-tk/tkFileDialog.py19
-rw-r--r--Modules/_tkinter.c6
2 files changed, 20 insertions, 5 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?
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 5851372..5253a10 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -2604,9 +2604,11 @@ static PyObject *
Tkapp_WantObjects(PyObject *self, PyObject *args)
{
- int wantobjects;
- if (!PyArg_ParseTuple(args, "i:wantobjects", &wantobjects))
+ int wantobjects = -1;
+ if (!PyArg_ParseTuple(args, "|i:wantobjects", &wantobjects))
return NULL;
+ if (wantobjects == -1)
+ return PyBool_FromLong(((TkappObject*)self)->wantobjects);
((TkappObject*)self)->wantobjects = wantobjects;
Py_INCREF(Py_None);