]> granicus.if.org Git - python/commitdiff
Patch #621891: Add askopenfile{name}s.
authorMartin v. Löwis <martin@v.loewis.de>
Sun, 13 Oct 2002 10:28:04 +0000 (10:28 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Sun, 13 Oct 2002 10:28:04 +0000 (10:28 +0000)
Lib/lib-tk/tkFileDialog.py
Misc/NEWS

index 93cb27775802813aa4ef4de2168085320211f56e..569254a456515301ad7a4f221623196d1a34abda 100644 (file)
 #
 # - 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"
 
index 90bd02fa0ec64f284d42832324306465e6797b3e..d0d1a461685eedcee08228174e88cb56c6142028 100644 (file)
--- 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