Commit Graph

548 Commits

Author SHA1 Message Date
04f619d8af - PyLineSpit() - used to print the filename and line number for internal errors now works when executing class functions in a module.
- replaced PySys_GetObject("modules") with PyImport_GetModuleDict()
- use defaults for keymap import/export rather then setting the same value every time from the UI scripts.
2010-08-14 05:33:20 +00:00
f35efbc95a - remove WM_operatortype_exists since its almost the same as WM_operatortype_find
- hopefully fix reported problem with MSVC.
2010-08-13 14:42:45 +00:00
bf52b68dcd minor changes to rna/python.
- raise an exception when python calls is_property_set(name) or is_property_hidden(name) and the property does not exist.
- added BLI_findstring_ptr(), which finds a named item in a listbase where that name is a pointer to a string.
- replaced inline for loops with calls to BLI_findstring_ptr() and IDP_GetPropertyFromGroup().
2010-08-13 06:30:04 +00:00
95aa8cfa4a Update address in license block. 2010-08-10 21:22:26 +00:00
76b17eaac5 repr() functions for the python api, this means it can print 'bpy.data.objects[foo].modifiers' from the objects modifiers, uses the same function thats used to make the animation path. 2010-08-10 15:46:16 +00:00
9581cf1bdd python draw callback
- optional argument for the drawing mode crashed when not set
- added a check for the call fuinction being callable
- added a check for the argument being a typle.
2010-08-09 02:29:06 +00:00
a6f13f9d7b poll() as a python '@staticmethod' was too limiting and didnt allow useful base class poll functions in many cases.
now rna functions that dont have a 'self' are automatically assumed '@classmethods'.

de-duplicated poll functions and made some minor tweaks too.
2010-08-09 01:37:09 +00:00
7fcbbad5a4 remove py2.x compat check for class registration. 2010-08-08 23:46:49 +00:00
9566b031a3 == docs ==
Added some docs mainly in bpy.types.UILayout.html, descriptions by Florian Meyer (testscreenings), thanks.
2010-08-07 18:34:16 +00:00
163f6055d2 bugfix [#23182] Using self.report() inside poll() gives crash
poll() function is now a static method in python, this is more correct, matching C where the operator is not created to run poll.


    def poll(self, context): ...

is now...

    @staticmethod
    def poll(context): ...

Pythons way of doing static methods is a bit odd but cant be helped :|

This does make subclassing poll functions with COMPAT_ENGINES break, so had to modify quite a few scripts for this.
2010-08-05 16:05:30 +00:00
a0cece42c6 bugfix [#23148] "ImportError: __import__ not found" on changing Render FPS
The BGE was getting the namespace dict directly from __main__ which conflicts
with my recent fix to get the pickle module working which to overwrote the __main__ module on script execution.

Simple fix is to have the BGE and Blender use the same method of getting namespaces.
Renamed CreateGlobalDictionary() to bpy_namespace_dict_new() and moved into bpy_internal_import.c

pickle still wont work in the BGE since we make a copy of __main__ namespace but for speed would rather not have to replace the __main__ module many times per second.
2010-08-05 03:25:45 +00:00
233df907d0 py/rna update, reload works again.
- fix for reload (f8) crashing, missing incref when creating the script namespace.
- store the module names rather then the modules for reloading incase the modules get out of date.
2010-08-03 03:53:36 +00:00
55e64f0ba4 minor changes to Martni's commit 30961
- removed the immediate option from C/api and now store in python only, when python loads modules it sets it to False.
- unloading a module would clear the entire TypeMap for all modules, only remove the module types that is being unloaded.
- added some checks for bad class registering, report errors rather then crashing.
2010-08-02 04:20:41 +00:00
5b345524ea RNA Types metaclass registration
See mailing list posts for details [1][2][3]

Addons still need to be fixed; Campbell said he'd do it today.

See any of the py files (outside netrender) in this commit for how to do it (it's rather simple).

[1] http://lists.blender.org/pipermail/bf-committers/2010-February/026328.html
[2] http://lists.blender.org/pipermail/bf-committers/2010-August/028311.html
[3] http://lists.blender.org/pipermail/bf-committers/2010-August/028321.html
2010-08-02 02:55:12 +00:00
a3e58a951a set blender binary name for python 2010-08-01 15:15:57 +00:00
7524967238 - new __main__ module wasnt de-referenced after adding into sys.modules
- made int buttons round floats better 10.6 --> 11
2010-08-01 14:23:06 +00:00
e33d7d37c9 bugfix [#23129] alt-p in the texteditor doesn't work anymore
recent commit cleared the __main__ namespace once a script finished which meant classes defined there would loose their namespace.
now inset a new __main__ module into sys.modules for every script that runs, any classes that are registered will hold a reference to that modules namespace.
2010-08-01 13:57:04 +00:00
8fd1d8f02a mistake in recent commit allowd bpy.types.Scene() which would then crash blender (thanks for spotting Luca). 2010-08-01 11:20:51 +00:00
648f40f409 bugfix [#22660] Text Boxes properties are not animateable.
suggestion [#23093] Curve -> CurveMapping in brush...
2010-07-30 06:48:18 +00:00
fe77e6d919 minor changes to r30843
- the __main__ modules namespace was initialized cleanly but left dirty, now restore when finished executing a script incase a module uses this later.
- made the interactive console use the __main__ modules namespace.
2010-07-28 23:24:17 +00:00
2c8d7921bc bugfix [#23065] Pickle can not dump instances of user defined classes
- __import__("__main__").__dict__ will now always match the current scripts namespace. (which is what pickle expects).
- __builtins__ as a module rather then a dict from PyEval_GetBuiltins() acts slightly differently, use the module to follow python.
2010-07-28 16:26:42 +00:00
d44a2b5b1b fix for running rna subclasses own __init__ functions.
- exceptions in the __init__ functions were not being checked for and segfaulting
- avoid creating a new BPy_StructRNA instance per function call, use the existing one if the type matches.
2010-07-28 12:11:40 +00:00
db6f1f52a7 bugfix [#22027] Group disappears in render after adding a group instance 2010-07-27 04:02:09 +00:00
63791e03d6 * Partially revert r30763, where PROP_IMAGEPATH was added.
* Brush icon property back to not using image browser until a better solution is decided on.
2010-07-26 23:40:46 +00:00
8fb499c34f * Added a new RNA subtype, PROP_IMAGEPATH. It's the same as PROP_FILEPATH, but for images only.
* Changed UI code to display image browser for PROP_IMAGEPATH
* Set the icon_filepath RNA property for brushes to use PROP_IMAGEPATH
* Changed preview icon drawing to ignore unset icons
* Fixed const warnings in brush RNA
2010-07-26 18:37:47 +00:00
304043ee5f [#22617] Using register/unregister alone crashes blender
wasnt crashing anymore but made exception message clearer.
2010-07-26 05:55:56 +00:00
e977f80a8f bugfix [#23018] Can't run 2.53 build
for some reason mbstowcs() was converting '/home/matrem/Téléchargements/' to '/home/matrem/T', where blenders utf8towchar() worked correctly, tried changing my locale but didnt help so using blenders utf8towchar() function.
2010-07-26 04:21:44 +00:00
026ac24922 [#22488] Reloading scripts causes crash
F8 key enabled again, useful for script UI development.

- keying set freeing wasnt freeing from all scenes and the builtin list.
- PointerProperty() cant refer to a removed python srna type (fixed in rigify and netrender).
- Added a check for freeing a type used by a PointerProperty but its very slow, makes reloading take ~10sec. Only enabled this in debug mode for now.

Netrender register() function isnt re-registering the property, probably because the module is cached by python and not re-run.
2010-07-23 01:43:30 +00:00
d5d343a86b noise python module back from 2.4x, personal request from ant author Jimmy Haze
Changes:

/* 2.5 update
 * Noise.setRandomSeed --> seed_set
 * Noise.randuvec --> random_unit_vector
 * Noise.vNoise --> noise_vector
 * Noise.vTurbulence --> turbulence_vector
 * Noise.multiFractal --> multi_fractal
 * Noise.cellNoise --> cell
 * Noise.cellNoiseV --> cell_vector
 * Noise.vlNoise --> vl_vector
 * Noise.heteroTerrain --> hetero_terrain
 * Noise.hybridMFractal --> hybrid_multi_fractal
 * Noise.fBm --> fractal
 * Noise.ridgedMFractal --> ridged_multi_fractal
 *
 * Const's *
 * Noise.NoiseTypes --> types
 * Noise.DistanceMetrics --> distance_metrics
 */
2010-07-20 03:14:21 +00:00
fd31436897 spelling correction: alredy --> already 2010-07-17 18:08:14 +00:00
615db01b01 == installation paths ==
* fix for autosave location -> shouldn't use BLI_gethome anymore
* this frees BLI_gethome of having to emulate the local->user->system search path and can now be truly considered as 'home/default location for .blend files'
* removed setting the default G.sce from read_history, was out of context there.
* fix for creating user dir, leftover from previous commit.

jesterKing, please review -> if there are any issues I will fix or revert.
2010-07-15 21:39:47 +00:00
05fb497f75 == installation paths ==
remove deprecated python BLI_gethome_folder calls

Patch by Brecht, thanks a lot
2010-07-15 20:02:53 +00:00
aff6b6885f added imports to templates 2010-07-08 16:24:24 +00:00
6fcacf077d - duplicating a scene now duplicates all strips (not just selected ones)
- python change, dont import 'bpy' by default, initially I thaught this would make scripting easier but it ends up being annoying when you want to register a script or if you want to import it. (more trouble then its worth to save 1 line, also not very pythonic).
2010-07-08 14:30:43 +00:00
ca81aa704e Patch [#22339] File/installation paths changes
Patch Tracker: http://projects.blender.org/tracker/?func=detail&aid=22339&group_id=9&atid=127

This patch implements the proposal outlined here:
http://wiki.blender.org/index.php/Dev:2.5/Source/Installation/Proposal

Original patch by Matt Ebb.
Contributions by Nathan Letwory, Damien Plisson and Andrea Weikert

NOTE:
This is a work in progress commit, some work still needs to be done on the SCons and CMake files for this to work properly, but at least should compile and the files should be created in the right directory.

Commit discussed on IRC with Ton and Campbell.
2010-07-04 15:35:23 +00:00
15be7b215f - changes to the sequencer so new strips use the data name.
- removed the name option for the sequence operators.
2010-07-02 20:09:42 +00:00
54e6fc1519 remove math and m module names from python driver namespace. (all math functions are merged into the local namespace) 2010-06-25 21:24:59 +00:00
bfb9ef7ee9 bpy.props.StringProperty()'s maxlen arg was off by 1 since it included the null terminator for C strings. 2010-06-24 21:28:33 +00:00
8d3a5a8b0a == python api docs ==
* source/blender/python/doc/sphinx_doc_gen.py:

  changed the "undocumented" message so that it still links to
  http://wiki.blender.org/index.php/Dev:2.5/Py/API/Documentation/Contribute
  but uses flags in the url to help documenting.

  Example: http://www.blender.org/documentation/250PythonDoc/bpy.ops.node.html#bpy.ops.node.link
  click on "contribute", the new section has title "bpy.ops.node.link" and a howto message is shown
  
* source/blender/python/intern/bpy.c:

  fixed a typo
2010-06-15 02:06:01 +00:00
a2461a01c9 change to recent commit, insert_keyframe(datapath -> data_path ...)
made region width and height unsigned
2010-06-14 12:36:28 +00:00
c2f36a4d6a naming changes
path -> filepath (for rna and operators, as agreed on with elubie)
 path -> data_path (for windowmanager context functions, this was alredy used in many places)
2010-06-14 03:52:10 +00:00
aa97b4362b bugfix [#22427] settings bpy.context.active_object gives wrong message. 2010-06-14 02:05:37 +00:00
971e4be108 modify my last commit to fix [#22486] add_actuator crashes when name is bigger than 32 chars
Throwing an exception if the strings too long means scripts need to be aware of string lengths and changing a string length in RNA can too easily break scripts.
Instead honor the string length in RNA_property_string_set()
2010-06-12 17:30:21 +00:00
c3c6fb2de2 bugfix [#22486] add_actuator crashes when name is bigger than 32 chars
have pyrna raise an error on strings that are too long.
2010-06-12 15:49:01 +00:00
dd72ffe3ff py/rna api:
- bpy.context wasnt being created from the python bpy.types.Context type defined in bpy_types.py (bpy.context.copy() failed for eg.)
- bpy.context.copy() was returning C defined methods like FloatProperty(), which are not useful in this case, removed.
2010-06-09 19:31:10 +00:00
556b57febf get rid of some warnings,
removed NG_LoopBackNetworkDeviceInterface::GetNetworkVersion(), wasnt used anywhere.
2010-06-05 15:31:55 +00:00
cb26b4d7b9 error in last commit 2010-06-02 19:37:53 +00:00
b1a96f76dc include the blendfile name when executing python scripts, so when using libraries you can tell where the script is stored which raises an error. 2010-06-02 14:40:58 +00:00
1658a28a58 - Python console argument '--python-console', option so you can start blender and drop into a python console, (useful for debugging some problems on a renderfarm over ssh)
- Also made it so sys.stdin isnt overwritten anymore, instead the interactive consoel overwrites while it executes and restores after.

- removed hope folder from sphinx patch path
2010-05-30 14:05:58 +00:00
25e740f29d bpy.app.background - so a python script can check if blender is running without a UI 2010-05-18 15:57:51 +00:00