Commit Graph

761 Commits

Author SHA1 Message Date
47628dfab6 missing include from own commit r32117 2010-09-26 13:53:32 +00:00
d305a64b69 py/rna keyframe functions can now key longer paths if called from an ID block.
eg, bpy.context.object.keyframe_insert("soft_body.plastic")
2010-09-25 10:11:36 +00:00
e90ad1d9ba Annoying hack to pretend that an operator and its properties are the same, when passing an operator to an rna function argument which accepts 'AnyType', then pass the properties instead.
This means we can do operator drawing without passing self.properties as an argument.

while this check if quite specific, if this gives problems later on we should probably change operators not to try to mix an operator and its properties, it looks nice to a scripter but internally is not easy to manage.
2010-09-24 03:48:26 +00:00
5c99f3886e fix for python refcounting leak, RNA_path_resolve_full now unsets the index if its not last. 2010-09-24 03:24:15 +00:00
2b9a73ff98 - py/rna's path_resolve function was ignoring the index eg: obj.path_resolve("location[1]")
- corrected comment from previous commit
2010-09-23 02:12:33 +00:00
Nathan Letwory
ab5b95d148 * Update BGE for change in r32001
* Fix var declaration in bpy_interface.c
* Remove forward declarations from py_capi_utils.h: they are unnecessary and break compiles (there were probably many warnings about this during compile with GCC).
2010-09-18 19:38:27 +00:00
db7a4e530e move namespace creation function into py_capi_utils.c, to be used in more general cases, not just the blender/rna api. 2010-09-18 15:30:03 +00:00
e546d7666b minor changes needed for the next commit.
- BKE_add_image_extension now sets the extension rather then appending. (no more image.jpg.tga)
- py/rna functions which have no return value now raise an error if a non-None value is returned.
- added back the red-alert flag so buttons can have a red highlight if somethings wrong.
2010-09-17 05:58:06 +00:00
Nathan Letwory
95a3f41096 Don't do weird PYTHONPATH juggling anymore. Debug build crash doesn't happen anymore since proper libs have been committed.
Hopefully this helps in cases where people have PYTHONPATH set on their system to an incompatible Python version, which can result in crashes.
2010-09-15 15:29:31 +00:00
386bd71240 pyrna: replace method for operators forwarding getattr/setattr access from self.* to self.properties.* 2010-09-11 15:13:22 +00:00
5559a0d52e rewrote python IDProperty metaclass in C, this was a quick hack to get it working.
The reason this didnt work is all sibclasses of pythons type() or PyType_Type in C, have to have their size set to sizeof(PyHeapTypeObject) rather then sizeof(PyTypeObject) as you might expect.
This is strange since its not a heap-class (defined in pythons runtime), but a static C type, so Im not sure about this, and cant find any documentation but it seems to work ok.
2010-09-10 14:54:50 +00:00
a7fe586c94 patch [#23749] IntVectorProperty missing step [patch]
from Dan Eicher (dna), also edited some comments.
2010-09-10 02:46:29 +00:00
7bd1f9a234 - bugfix, operators were getting their properties registered twice.
- operator properties are now converted into python property() class members which bypass the operator 'properties' member.
  self.properties.mysetting
 ... can now be written as ...
  self.mysetting
- fix for error reloading rigify
2010-09-09 17:41:36 +00:00
f9367c4c4d definition/syntax edits for operators and rna (no functional changes) 2010-09-09 17:36:54 +00:00
9bdb7b5ffa fix crash for calling setattr with a non-string attribute and warning. 2010-09-09 13:58:38 +00:00
45cf7633fe remove class methods for defining properties
eg: bpy.types.Scene.BoolProperty()
2010-09-09 06:29:44 +00:00
ced3f3ad15 - fix for using ['prop'] in RNA api
- fix for testing without USE_PY_METACLASS defined.
2010-09-09 06:06:37 +00:00
f4be9a6393 support for defining rna class properties as class attributes
eg:
 bpy.types.Scene.myprop = BoolProperty()
 
note, this uses an ugly python metaclass, this should be replaced with a C implimentation which is included but commented out, causing crashes in pythons GC which gives no hint as to where the bug comes from.
2010-09-09 05:37:22 +00:00
128bd96c01 py/rna internals
- rna internal deferred properties now store the functions as PyObjects rather then C function pointers
- Property functions now allow the first non keyword argument to be a class.
2010-09-08 10:43:36 +00:00
6d82951947 bpy.props.* option to pass the first arg as a class. 2010-09-08 08:48:40 +00:00
ae0d99291f bugfix [#23656] Problems retrieving properties from inside runtime-created PointerProperties
Setting the classes __dict__ member directly didnt update the types slots (python internal type stuff used with subclassing), so class.bl_rna was returning an incorrect value.

Set the value using typical python setattr command.
2010-09-07 08:10:19 +00:00
99954545ee bugfix [#23656] Problems retrieving properties from inside runtime-created PointerProperties
cant test if this fix solves the problem matt is having but it at least fixes an error caused by classes created in exec(),
when the properties pointers were copied the hash key still referred to the python object which could be freed. in most cases this wouldnt happen (would be kept in bytecode) but with exec() the property string is freed immediately.
2010-09-06 15:54:08 +00:00
Nathan Letwory
25af4f12fa Silence warning about BLI_sprintfN 2010-09-04 09:27:21 +00:00
a8269c8946 SVN maintenance. 2010-09-03 03:30:20 +00:00
0d12c77097 bugfix [#23635] property limits don't work when added via scripting\
also fix for bug where soft limits could be greater then hard limits with bpy.props.* functions.
2010-09-02 14:43:22 +00:00
b2ae9d825c - inconsistent rna names - use 'vertex_group_' as prefix, only ui scripts used this
- change curve offset to be 0.0 for its rest/default value (not 1.0)
2010-09-02 07:00:34 +00:00
ad0a176a22 - new subclass for ID-Property based collections - this way add/remove/move functions will only be shown for types that support it.
- moved array attributes into array properties - saves 8 bytes per allocated non-array property.
2010-09-02 06:35:00 +00:00
70ec45d757 have rna function obj.as_pointer() return a memory address rather then a PyCapsule object.
this can be passed to ctypes.c_void_p(bpy.context.object.as_pointer())
2010-09-01 15:25:22 +00:00
39cb1432d8 bugfix [#23285] Exporters not available whel using special characters in path name
- ID properties now suopport non utf-8 strings for their values but not their keys.
- moved utility functions into py_capi_utils.c from bpy_utils and bpy_rna.
- import/export paths have to be printed with repr() or %r, so non utf-8 chars are escaped.
2010-09-01 14:13:48 +00:00
7532bc2325 poll function for py api operator access
eg:
 if bpy.ops.object.mode_set.poll():
     ...
2010-09-01 11:16:11 +00:00
dfb8c5974e rna support for passing dynamic sized arrays to rna functions
using this for object.vertex_groups.assign([index list ...], group, weight, mode)
2010-08-31 11:31:21 +00:00
ec8848d03a raise an error when setting the values of read-only rna wrapped Vector/Matrix/Euler/Quat 2010-08-30 12:27:34 +00:00
92f6dd73b3 fix for resolving rna paths, RNA_path_resolve could return a property which was the parent of the pointer (when it would normally be assumed to be the child).
also change pythons struct_rna.path_resolve to return StructRNA's or Properties when the property isnt NULL.
2010-08-30 09:18:21 +00:00
df4dd70d7b various utf8 compatibility fixes
- OBJ import/export now work with non utf8 paths. (all exporters and importers need changes like this)
- strip non utf8 chars from new ID blocks (also applies to renaming)
- set the file rename button to allow non-utf8 chars.
2010-08-30 08:28:48 +00:00
f28b5e672e python/utf8 compatibility fixes. (as discussed on the mailing list)
- user input gets non utf8 chars stripped all text input other then file paths.

- python has the same limitations, it will raise an error on non utf8 strings except for paths use unicode escape literals so its possible to deal with saving to these file paths from python.

- new string functions
  BLI_utf8_invalid_byte(str, len) returns the first invalid utf8 byte or -1 on on success.
  BLI_utf8_invalid_strip(str, len) strips non utf-8 chars.
2010-08-28 12:34:22 +00:00
6d195f6195 speedup for pyrna boolean checking.
if bpy.data.objects: ...

Would get loop over the entire collection, instead see if this collection has a single item.
2010-08-27 01:50:50 +00:00
ea3be03743 ED_view3d_draw_offscreen_imbuf_simple and ED_view3d_draw_offscreen_imbuf now accept the imbuf flag so they can get the float buffer from opengl directly. 2010-08-26 23:30:15 +00:00
50bce31dbb rna api changes
- mesh.add_geometry(v, e, f)  --> mesh.vertices.add(tot), mesh.edges.add(tot), mesh.faces.add(tot)
- mesh.add_material(mat) --> mesh.materials.link(mat)

changed material.link so it always adds a material even if it exists in the list, this behavior is good for users but not scripts since it can mess up indicies (some formats may have the same material set twice).
2010-08-26 22:44:05 +00:00
Dalai Felinto
31a9a587ca renaming recast_type to type_recast so people don't miss this.
Discussed with Campbell.
2010-08-25 01:51:38 +00:00
9854546f37 update to pyrna so deleting an attribute only fails if that attribute resolves to an RNA property. 2010-08-24 23:52:20 +00:00
5c604e5524 remove recently added rna function uilayout.prop_search_self() and instead allow collections to be coerced into rna structs when they define a type.
eg:
 row.prop_search_self(scene, "active", "keying_sets", text="")
...becomes
 row.prop_search(scene.keying_sets, "active", scene, "keying_sets", text="")

This is more flexible since it works for other UI functions too.
2010-08-24 03:02:27 +00:00
48e34b9956 - pythons 'del somevalue.attr' could crash when used with the rna api (reported by Luca)
eg:
    bpy.context.StringProperty(attr='myprop'); del bpy.context.myprop

- made rna StringProperty/PointerProperty & similar into class methods.

- file selector hide option was inverted
2010-08-24 02:12:09 +00:00
1be4eda552 bugfix [#23454] vector*matrix not the same as vector*=matrix
- they now share the same code so it wont happen again.
- added id_data to properties so we can do...
  matrix = C.object.matrix_world
  obj = matrix.owner.id_data # get the original object back.
2010-08-23 22:10:13 +00:00
f956e94d13 collection attributes can now be resolved with by rna
this now works...
  bpy.context.scene.path_resolve("objects.active.location")
  
Also added an option to coerce the property into a native pytype.
2010-08-23 05:36:21 +00:00
a60f79daf7 - rna py-api bug fix, a NULL item in a collection was raising an error
eg: mesh.materials[0] 
 ... when this was an empty slot.

- game world mist panel wasnt updated for rna renaming.
2010-08-22 17:23:08 +00:00
4e3390437e - Properties from base classes are now registered too, this allows class mix-in's to define properties.
An example of how this is useful - an importer mixin could define the filepath properties and a generic invoke function which can run the subclasses exec for each selected file.

- Panels and Menus now skip the property check when registering.

- renamed _idproperties_ to _idprops_ in function names, function names were getting very long.
2010-08-19 10:16:30 +00:00
98140e234e - pyrna fix for reference counting when unable to register a property
- added modified 'Warp' enum to reserve this ID for durian files until the modifier is merged.
2010-08-19 05:58:22 +00:00
26809f38aa Audaspace: This should fix all missing python includes now once for all... 2010-08-16 20:05:59 +00:00
dc4946f03c Added missing include for audio stuff.
Still not linking with Makefiles, will try and fix later.

Kent
2010-08-16 15:54:58 +00:00
2b7a774ab0 svn merge -r 31314:31370 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2010-08-16 09:37:08 +00:00