Campbell Barton
b21b24573d
lots of operator descriptions were incorrectly copy/pasted.
...
update some descriptions, others were removed and operators tagged as internal.
add a script to detect duplicate operator descriptions.
2013-09-30 05:50:41 +00:00
Campbell Barton
99837ea844
add PoseBone.children convenience attribute.
2013-09-28 12:05:59 +00:00
Campbell Barton
b6631b8be7
fixes for python api docs.
...
also move foreach_get/set examples into their own py example files (prefer not to have example code built into blenders binary).
2013-09-18 05:20:43 +00:00
Campbell Barton
dc4cded2c2
fix for missing attribute is_argument_optional when generating docs.
...
also use __slots__ for classes.
2013-09-18 04:32:29 +00:00
Campbell Barton
6895a9f11f
fix [ #36713 ] crash from adding gear from 'extra objects' addon
2013-09-12 21:01:27 +00:00
Bastien Montagne
83b2eefd09
Usual UI messages fixes...
2013-09-09 20:22:01 +00:00
Lukas Toenne
771906bc09
Fix for #36387 , User Preferences "Addons" panel bogs down the whole interface.
...
The addons panel draw function calls addon_utils.modules() which in turn retrieves a list of fake modules from the script paths every time. This can become costly when network paths are included for
addons. Solution is to put the scanning process into a dedicated "refresh" function and disable it in frequently called draw and filter functions, i.e. in these cases the cached addons_fake_modules list
will be used instead.
Note that this may lead to invalid addon lists if script paths are changed (which is not working 100% without restart anyway according to Campbell). For this there is now a "Refresh" operator button in
the addons preferences. If necessary and feasible such forced refreshes can be added later too.
2013-08-28 06:36:54 +00:00
Bastien Montagne
71e5e90fb7
Followup to r59536: make "is_argument_optional" available to py, and use it in API doc generation.
...
Thanks Campbell for the much better name suggestion!
2013-08-26 21:39:06 +00:00
Lukas Toenne
dd36c6b948
Fix for an obscure bpy_types bug: When attempting to define __setattr__ in a metaclass based on RNAMetaPropGroup, the base class' __setattr__ method can not be called, since python prohibits setattr on
...
builtin classes. This was done in Python 2.3 to prevent changes to the 'object' type definition and similar issues. As explained by Guido van Rossum in the following mail, the python check will look for
the *closest* base class, which fails for RNAMetaPropGroup because its first base is RNAMeta, which is in turn a subclass of 'type'.
http://code.activestate.com/lists/python-dev/34489/
The easiest and safest way to prevent this issue therefore seems to be
to swap the base class order for RNAMetaPropGroup, so that StructMetaPropGroup is the first base, which has a perfectly valid setattr implementation.
2013-08-23 15:39:25 +00:00
Bastien Montagne
a567dd20c0
More "relpath" try/except protection...
2013-08-18 15:17:33 +00:00
Campbell Barton
4006f8c83b
fix [ #36455 ] importing obj data after saving doesn't work
2013-08-15 00:32:12 +00:00
Campbell Barton
1c5b416cbf
image_load() utility function's 'recursive' option wasn't functional since 2.4x
2013-08-12 07:48:31 +00:00
Campbell Barton
4fbe426151
bpy.path.reduce_dirs() - new utility function to de-duplicate and remove nested paths before doing a recursive search.
2013-08-12 07:44:38 +00:00
Bastien Montagne
0214dac604
Usual edits/fixes to new UI messages...
2013-08-06 14:55:00 +00:00
Bastien Montagne
20d6cd008b
Style cleanup of UI messages.
...
Mostly, "weight groups" -> "vertex groups", and usual case/endpoints/typos/etc.
As a remainder, please read http://wiki.blender.org/index.php/Dev:Doc/CodeStyle#UI_Messages before writing UI messages!
2013-07-16 13:12:58 +00:00
Campbell Barton
b2b6d56443
move keymap ui into modules, its not loaded on startup anymore.
2013-07-08 22:57:51 +00:00
Campbell Barton
7132bfe664
fix [ #35977 ] Bake Action doesn't work properly
...
there are cases where you want to use visual-keying but not remove constraints, also it wasnt obvious that clearing constraints used a different method of keyframing.
So split these into 2 options.
2013-07-04 23:52:02 +00:00
Campbell Barton
ffaebe2237
reduce imports on startup
2013-07-03 01:20:32 +00:00
Campbell Barton
2085a42e52
pep8 cleanup
2013-06-27 03:05:19 +00:00
Campbell Barton
841c200767
report exceptions when enabling and disabling modules in blenders interface.
...
so if pressing the addon checkbox fails it tells why rather then failing silently.
2013-06-19 05:17:31 +00:00
Bastien Montagne
5bd5e69e98
Add back nl_NL to enabled tranlations, as we now have a (very limited) start of it.
2013-06-17 19:49:06 +00:00
Bastien Montagne
2091eca962
Usual UI messages style edits...
2013-06-17 10:01:35 +00:00
Campbell Barton
564902582c
rename world_to_camera -> world_to_camera_view
2013-06-16 14:35:15 +00:00
Campbell Barton
93ba74c20a
minor edits to world_to_camera() utility function, include Z so you can tell if the points in font of the camera and avoid divide by zero.
2013-06-13 14:07:36 +00:00
Campbell Barton
f173ff531c
handy function for getting the 2d camera coords for a worldspace location.
...
bpy_extras.object_utils.world_to_camera(scene, obj, coord)
2013-06-13 13:51:01 +00:00
Campbell Barton
c8f30bc7f0
fix [ #35574 ] Export Key Map issue
...
problem was the keymap failed to import but didnt give any feedback, now it displays error message.
2013-06-11 15:11:55 +00:00
Lukas Toenne
32f35056af
Fix #35633 , Cannot Add Group Node In Blender 2.67a. The menu entry for the "make group" operator was missing in the new categories system. Added an alternative NodeItemCustom to the standard NodeItem to
...
allow custom draw functions such as this operator. Used in the group items callback to generate the basic group_make operator call.
2013-06-05 09:21:17 +00:00
Campbell Barton
2d4a682a8e
add popup menu to allow python scripts to show popups without having to define a menu class first.
2013-06-01 04:06:38 +00:00
Campbell Barton
de3686ac25
fix [ #34851 ] "UnitSettings.scale_length" not beeing calculated the same way for all objects
2013-05-28 23:07:16 +00:00
Lukas Toenne
81ba62e1e9
Fix for node menu: Show the group input/output nodes in the Input/Output categories respectively, so they can be added with the usual UI in case the user deletes them. These nodes are polled out for
...
non-group trees (node trees not in the bpy.data.node_groups collection) to avoid confusion. For that purpose a new optional poll function argument has been added to NodeItem, which allows selectively
polling individual items in an otherwise static list.
2013-05-28 09:45:34 +00:00
Campbell Barton
5460e31d56
now an addons preference are available when it start,
...
this change is made so addons may initialize their own settings.
2013-05-27 16:12:06 +00:00
Campbell Barton
8e6ce736c4
disable auto indent when pasting text into the python console.
2013-05-24 01:04:37 +00:00
Campbell Barton
675f845116
use standard name for operator properties - 'props'.
2013-05-09 13:05:36 +00:00
Lukas Toenne
56485b6562
Upgrade for the add_search node operator. This now uses the same basic system as the regular add_node operator, with enum items generated from the common node categories system (nodeitems_utils module). This means that any node listed in the regular node Add menu can now also be added via searching, including node groups and the like. The search operator also uses the subsequent transform to make insertion a bit more streamlined.
2013-05-09 11:43:48 +00:00
Campbell Barton
279a2a1916
fix rna_info, python method to C function wasn't being tested for. (broke changelog generator)
2013-05-09 02:50:59 +00:00
Lukas Toenne
8863222a90
A bit more pythonic way of using the items callback in node categories. The category.items attribute is now a function taking a context parameter instead of a property. This can be used for checking validity, e.g. for doing node group recursion checks, and filter out unusable items.
2013-05-08 15:41:05 +00:00
Lukas Toenne
451a32070c
Removed the unused socket template system from the bpy_types Node base class (it interferes with the input_templates/output_templates functions from C nodes). This can be reimplemented in a nicer way for pynode subclasses later on, but should not be part of the basic Node class.
2013-05-08 15:40:51 +00:00
Lukas Toenne
bfa97b4710
Workaround for C nodes: In order to make registerable RNA methods of the standard C nodes (e.g. poll or draw_buttons) available in python scripts, they need a specialized Node subtype (called NodeInternal). This is necessary because bpy omits any registerable functions of RNA types in the generated python classes, relying instead on using the supposed native implementation in a registered python class. Since the standard shader/compositor/texture nodes in Blender are not registered but directly created in makesrna they lack all registerable function in the associated python types. The NodeInternal RNA subtype replaces the registerable functions of the base Node type to solve this issue.
2013-05-08 15:40:40 +00:00
Campbell Barton
a6a6184b3e
auto indent for multi-line python statements.
2013-05-08 12:57:00 +00:00
Bastien Montagne
95271e248a
One-liner fix for part of regression of nodes UI translation (since new pynodes): add menu entries are translated again.
...
The sockets' names remain untranslated currently, investigating whether this can safely be fixed at this stage too...
2013-05-03 12:37:45 +00:00
Campbell Barton
56e6c14e1e
fix for exception in console auto-completing an object with __getitem__ but no __len__ (BMEdge).
2013-04-30 23:01:12 +00:00
Bastien Montagne
b0b634adeb
Do not report formatting mismatch between org and translation when message is fuzzy (but "fix" it anyway if asked so).
2013-04-29 18:22:22 +00:00
Campbell Barton
4ca0df348e
move modal view3d keymaps out of main list of keymaps into the view3d section.
2013-04-29 17:59:44 +00:00
Bastien Montagne
5c5ecc3465
Usual UI messages fixes...
2013-04-29 14:09:19 +00:00
Campbell Barton
263ea88392
fix/workaround [ #34983 ] bpy.ops.mesh.primitive_torus_add() ignores rotation-parameter
2013-04-22 20:53:30 +00:00
Lukas Toenne
d56ceaab4c
Nicer registration mechanism for node categories. The lists of node categories and items are now stored in a dictionary with an identifier key, so they can be registered and unregistered individually. The Add menu is now persistent and gets extended with a draw function for each of the registered node category lists.
...
This allows pynodes to define their own list of node categories and items and register it at runtime without interfering with the standard nodes.
2013-04-22 16:25:35 +00:00
Bastien Montagne
fba67abf7a
Restore usage of difflib's quick_ratio()... Don't actually know what happens here, my tests with timeit showed it much slower than ratio(), but real-life says the contrary...
2013-04-19 16:23:02 +00:00
Bastien Montagne
01ffbab8f5
Some i18n tools fixes (I'm ashamed...), and merge func for I18nMessages objects.
2013-04-18 15:26:22 +00:00
Bastien Montagne
4587ecd45b
More i18n tools tweaks:
...
* Remove difflib's quick_ratio() call, from quick tests looks it is four times slower than ratio(), and yet it gives the same results...
* Moved code to find all po's in a dir into its own func (will be used by i18n addon tools too).
2013-04-18 11:09:25 +00:00
Lukas Toenne
bb1b2529a0
Added back the basic Search operator to the node Add menu. This operator should be implemented a bit nicer using the new categories system as well, but for now works just as before.
2013-04-17 07:47:00 +00:00