mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +00:00
Properly deal with tuples in Open._fixresult. Fixes bug reported in
follow-up to #621891.
This commit is contained in:
parent
19d173486b
commit
d6efae500c
2 changed files with 20 additions and 5 deletions
|
@ -76,6 +76,21 @@ class Open(_Dialog):
|
||||||
|
|
||||||
command = "tk_getOpenFile"
|
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):
|
class SaveAs(_Dialog):
|
||||||
"Ask for a filename to save as"
|
"Ask for a filename to save as"
|
||||||
|
|
||||||
|
@ -115,9 +130,7 @@ def askopenfilenames(**options):
|
||||||
cancel button selected
|
cancel button selected
|
||||||
"""
|
"""
|
||||||
options["multiple"]=1
|
options["multiple"]=1
|
||||||
files=Open(**options).show()
|
return Open(**options).show()
|
||||||
return files.split()
|
|
||||||
|
|
||||||
|
|
||||||
# FIXME: are the following perhaps a bit too convenient?
|
# FIXME: are the following perhaps a bit too convenient?
|
||||||
|
|
||||||
|
|
|
@ -2604,9 +2604,11 @@ static PyObject *
|
||||||
Tkapp_WantObjects(PyObject *self, PyObject *args)
|
Tkapp_WantObjects(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
|
|
||||||
int wantobjects;
|
int wantobjects = -1;
|
||||||
if (!PyArg_ParseTuple(args, "i:wantobjects", &wantobjects))
|
if (!PyArg_ParseTuple(args, "|i:wantobjects", &wantobjects))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
if (wantobjects == -1)
|
||||||
|
return PyBool_FromLong(((TkappObject*)self)->wantobjects);
|
||||||
((TkappObject*)self)->wantobjects = wantobjects;
|
((TkappObject*)self)->wantobjects = wantobjects;
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
Py_INCREF(Py_None);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue