From b24e3477dc0f9895573a37b8fcedcf65dc99ef2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Sun, 13 Oct 2002 10:28:04 +0000 Subject: Patch #621891: Add askopenfile{name}s. --- Lib/lib-tk/tkFileDialog.py | 34 +++++++++++++++++++++++++++++++++- Misc/NEWS | 9 +++++---- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/Lib/lib-tk/tkFileDialog.py b/Lib/lib-tk/tkFileDialog.py index 93cb277..569254a 100644 --- a/Lib/lib-tk/tkFileDialog.py +++ b/Lib/lib-tk/tkFileDialog.py @@ -29,12 +29,16 @@ # # - title: dialog title # +# - multiple: if true user may select more than one file +# # options for the directory chooser: # # - initialdir, parent, title: see above # # - mustexist: if true, user must pick an existing directory # +# + from tkCommonDialog import Dialog @@ -98,7 +102,18 @@ def asksaveasfilename(**options): return SaveAs(**options).show() -# FIXME: are the following two perhaps a bit too convenient? +def askopenfilenames(**options): + """Ask for multiple filenames to open + + Returns a list of filenames or empty list if + cancel button selected + """ + options["multiple"]=1 + files=Open(**options).show() + return files.split() + + +# FIXME: are the following perhaps a bit too convenient? def askopenfile(mode = "r", **options): "Ask for a filename to open, and returned the opened file" @@ -108,6 +123,23 @@ def askopenfile(mode = "r", **options): return open(filename, mode) return None +def askopenfiles(mode = "r", **options): + """Ask for multiple filenames and return the open file + objects + + returns a list of open file objects or an empty list if + cancel selected + """ + + files = askopenfilenames(**options) + if files: + ofiles=[] + for filename in files: + ofiles.append(open(filename, mode)) + files=ofiles + return files + + def asksaveasfile(mode = "w", **options): "Ask for a filename to save as, and returned the opened file" diff --git a/Misc/NEWS b/Misc/NEWS index 90bd02f..d0d1a46 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -348,11 +348,12 @@ Extension modules Library ------- -- Various features of Tk 8.4 are exposed in Tkinter.py. +- Various features of Tk 8.4 are exposed in Tkinter.py. The multiple + option of tkFileDialog is exposed as function askopenfile{,name}s. -- Various configure methods of Tkinter have been stream-lined, so - that tag_configure, image_configure, window_configure now return - a dictionary when invoked with no argument. +- Various configure methods of Tkinter have been stream-lined, so that + tag_configure, image_configure, window_configure now return a + dictionary when invoked with no argument. - Importing the readline module now no longer has the side effect of calling setlocale(LC_CTYPE, ""). The initial "C" locale, or -- cgit v0.12