User Script support added back.
authorCampbell Barton <ideasman42@gmail.com>
Mon, 30 Nov 2009 22:32:04 +0000 (22:32 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 30 Nov 2009 22:32:04 +0000 (22:32 +0000)
- the scripts path set in the user preferences or ~/.blender/scripts/ui (io, op, io etc..) will be used to load scripts.
- the default home dir part probably only works in *nix os's

- Added a missing sync callback to vector.toTuple()

release/scripts/modules/bpy/__init__.py
release/scripts/modules/bpy/utils.py
source/blender/python/generic/vector.c

index 39b8fd340ba5e3ac27d47cfa8dfc9269650c2941..0df11659336b4a36e9c2e30a689da8c4af65d179 100644 (file)
@@ -46,20 +46,21 @@ def load_scripts(reload_scripts=False):
     for base_path in utils.script_paths():
         for path_subdir in ("ui", "op", "io"):
             path = os.path.join(base_path, path_subdir)
-            sys.path.insert(0, path)
-            for f in sorted(os.listdir(path)):
-                if f.endswith(".py"):
-                    # python module
-                    mod = test_import(f[0:-3])
-                elif "." not in f:
-                    # python package
-                    mod = test_import(f)
-                else:
-                    mod = None
-
-                if reload_scripts and mod:
-                    print("Reloading:", mod)
-                    reload(mod)
+            if os.path.isdir(path):
+                sys.path.insert(0, path)
+                for f in sorted(os.listdir(path)):
+                    if f.endswith(".py"):
+                        # python module
+                        mod = test_import(f[0:-3])
+                    elif "." not in f:
+                        # python package
+                        mod = test_import(f)
+                    else:
+                        mod = None
+
+                    if reload_scripts and mod:
+                        print("Reloading:", mod)
+                        reload(mod)
 
 def _main():
 
index a10c8bc4dd9f9dccb5f5437f93da6a78c30eff7e..3af163e1069a5019b528d1f308f21c8fc024de52 100644 (file)
@@ -57,12 +57,26 @@ _scripts = os.path.join(os.path.dirname(__file__), os.path.pardir, os.path.pardi
 _scripts = (os.path.normpath(_scripts), )
 
 def script_paths(*args):
+    scripts = list(_scripts)
+    
+    # add user scripts dir
+    user_script_path = bpy.context.user_preferences.filepaths.python_scripts_directory
+
+    if not user_script_path:
+        # XXX - WIN32 needs checking, perhaps better call a blender internal function.
+        user_script_path = os.path.join(os.path.expanduser("~"), ".blender", "scripts")
+
+    user_script_path = os.path.normpath(user_script_path)
+
+    if user_script_path not in scripts and os.path.isdir(user_script_path):
+        scripts.append(user_script_path)
+
     if not args:
-        return _scripts
+        return scripts
 
     subdir = os.path.join(*args)
     script_paths = []
-    for path in _scripts:
+    for path in scripts:
         script_paths.append(os.path.join(path, subdir))
 
     return script_paths
index b8f2ca6f1dfc5369a58159e2ff75abd26d938f66..ae2c96fa86ad3551fa5ad455111cc0c20827905d 100644 (file)
@@ -253,6 +253,9 @@ static PyObject *Vector_ToTuple(VectorObject * self, PyObject *value)
                return NULL;
        }
 
+       if(!BaseMath_ReadCallback(self))
+               return NULL;
+
        ret= PyTuple_New(self->size);
 
        for(x = 0; x < self->size; x++) {