[Bf-blender-cvs] [db04980678] master: PyAPI: Menu.path_menu: Add path filter callback

Campbell Barton noreply at git.blender.org
Thu Mar 16 19:16:35 CET 2017


Commit: db04980678ae8b2a2b3cd07bfdefa86af5c53f82
Author: Campbell Barton
Date:   Fri Mar 17 05:17:39 2017 +1100
Branches: master
https://developer.blender.org/rBdb04980678ae8b2a2b3cd07bfdefa86af5c53f82

PyAPI: Menu.path_menu: Add path filter callback

Needed if we want to filter based on filenames (not just extension).

===================================================================

M	release/scripts/modules/bpy_types.py

===================================================================

diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py
index b6a9b2f2f6..5eb8b94656 100644
--- a/release/scripts/modules/bpy_types.py
+++ b/release/scripts/modules/bpy_types.py
@@ -727,7 +727,7 @@ class Menu(StructRNA, _GenericUI, metaclass=RNAMeta):
 
     def path_menu(self, searchpaths, operator, *,
                   props_default=None, prop_filepath="filepath",
-                  filter_ext=None, display_name=None):
+                  filter_ext=None, filter_path=None, display_name=None):
         """
         Populate a menu from a list of paths.
 
@@ -761,12 +761,15 @@ class Menu(StructRNA, _GenericUI, metaclass=RNAMeta):
         # collect paths
         files = []
         for directory in searchpaths:
-            files.extend([(f, os.path.join(directory, f))
-                          for f in os.listdir(directory)
-                          if (not f.startswith("."))
-                          if ((filter_ext is None) or
-                              (filter_ext(os.path.splitext(f)[1])))
-                          ])
+            files.extend(
+                [(f, os.path.join(directory, f))
+                 for f in os.listdir(directory)
+                 if (not f.startswith("."))
+                 if ((filter_ext is None) or
+                     (filter_ext(os.path.splitext(f)[1])))
+                 if ((filter_path is None) or
+                     (filter_path(f)))
+                 ])
 
         files.sort()




More information about the Bf-blender-cvs mailing list