Commit Graph

40911 Commits

Author SHA1 Message Date
Bastien Montagne
1e613ba9c4 Fix building under windows after r59631 (grr, sorry :/ ). 2013-08-29 13:50:40 +00:00
Sergey Sharybin
7e73620a98 Support transformation around 2D cursor in movie clip editor. 2013-08-29 13:04:12 +00:00
Bastien Montagne
113997a03c Last uiList patch (for now!): filtering and reordering of shown elements.
Thanks to Brecht for the reviews. :)

This commit adds a show/hide extension below each uiList, containing by default an option to filter and/or reorder items by name (and to reverse those filtering and reordering).

Each derived uiList class in Python can define more specific filtering by implementing callbacks: the draw_filter() function to draw options in UI, and the filter_items() function to effectively filter/reorder items.

Note: the advanced options for vgroups shown as "proof od concept" in patches do not go in trunk for now, we have to find a better way to get those vgroups info for UI code, we can't afford to loop over each vertex here!

And doc (release notes and uiList example) is still to be updated, will do this in next days.
2013-08-29 12:55:31 +00:00
Campbell Barton
291ad172a1 follow up on r59628, setting modes now ensures that other modes exit first,
this was only done in some cases before and it was possible to enable weightpaint+sculpt at the same time when enabling sculpt by directly running the mode switching operator.

add generic function to ensure a compatible mode before entering the new mode (added to each operators exec function)
2013-08-29 10:34:09 +00:00
Campbell Barton
1b8da326ba fix [#34462] Crash when switching modes via mix of TAB and spacebar menu 2013-08-29 08:57:12 +00:00
Campbell Barton
f6527043d9 fix for glitch where the text editor could be clamped to scroll above line 1 (would flicker on scroll). 2013-08-29 08:13:32 +00:00
Campbell Barton
bd2f6c5907 default blend file name setting (untitled.blend) length check wasn't correct, move to generic function BLI_ensure_filename(). 2013-08-29 05:34:58 +00:00
Campbell Barton
567e13b2bb don't replace the extension with '.blend' in save code since the file selector already ensures this,
needed so python scripts can save as temp filenames.
2013-08-29 04:26:40 +00:00
Campbell Barton
4d83f957b5 fix [#36570] Changing the filename of a image strip doesnt refresh sequencer
was casting a StripElem as a Sequencer struct.
2013-08-29 04:08:44 +00:00
Campbell Barton
f934581a78 edits to curve operator
- remove delete-all option (users can just select all and delete as with all other modes).
- remove CALLOC_STRUCT_N macro.
- CURVE_OT_delete define a dynamic enum rather then a custom invoke menu function.
2013-08-29 03:14:36 +00:00
Campbell Barton
f8ecb789e7 code cleanup: curves, replace magic numbers for enums. 2013-08-29 03:00:04 +00:00
Campbell Barton
95fcf02500 patch [#36336] Split operator for curves and surfaces
by Kevin Mackay (yakca)

The operator follows roughly the same behaviour as the split operator for a mesh (Ykey).
2013-08-29 02:32:51 +00:00
Brecht Van Lommel
e7d725eefd Fix #36598: blender render crash baking and then doing a full sample render. 2013-08-29 00:14:57 +00:00
Campbell Barton
260d6cd6b5 micro-optimization, avoid checking is_power_of_2_i once in power_of_2_max_i
also whitespace edit.
2013-08-28 23:49:22 +00:00
Brecht Van Lommel
2f46a2cbf7 Fix #36595: file browser sorting with link/append would mix together .blend files
and directories instead of keeping them separate like regular file browse.
2013-08-28 21:50:13 +00:00
Bastien Montagne
bcf18878a2 Some tweaking to uiList dragsize, to make it more reactive to very quick moves.
Note that, even though not officialy supporting non-UI_UNIT_Y height items (other point like scrollbar size would faill too), we try to maintain a not-that-bad behavior in this case, which implies a bit of black magic (esp. as our ref point is the bottom of the list, which moves when it is resized :/)...
2013-08-28 19:23:15 +00:00
Brecht Van Lommel
2c31bce47f Fix #36555: preview render in properties editor did not get cancelled and
restarted fast enough on resizing the editor, especially noticeable with
e.g. luxrender which does a progressive refining render.
2013-08-28 19:22:48 +00:00
Thomas Dinges
d539bd4672 Cycles / Sky Texture:
* Added a new sky model by Hosek and Wilkie: "An Analytic Model for Full Spectral Sky-Dome Radiance" http://cgg.mff.cuni.cz/projects/SkylightModelling/ 

Example render:
http://archive.dingto.org/2013/blender/code/new_sky_model.png
Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Sky_Texture

Details:
* User can choose between the older Preetham and the new Hosek / Wilkie model via a dropdown. For older files, backwards compatibility is preserved. When we add a new Sky texture, it defaults to the new model though. 
* For the new model, you can specify the ground albedo (see documentation for details). 
* Turbidity now has a UI soft range between 1 and 10, higher values (up to 30) are still possible, but can result in weird colors or black. 
* Removed the limitation of 1 sky texture per SVM stack. (Patch by Lukas Tönne, thanks!)

Thanks to Brecht for code review and some help! 

This is part of my GSoC 2013 project, SVN merge of r59214, r59220, r59251 and r59601.
2013-08-28 14:11:28 +00:00
Lukas Toenne
870ff57557 Fix #36584, in python inputs/outputs of created node group not accessable by their names.
The lookupstring function for node sockets and node tree interface items was using the identifier strings of bNodeSocket. This would ensure uniqueness, but doesn't work nicely because the identifier is
not the RNA name property and differs for node groups (with regular nodes it only differs if socket names are duplicate).

Now removed the specialized callbacks, so that inputs/outputs collections simply use the name property. In cases where socket names are duplicate (e.g. math node "Value" + "Value") only the first socket
is returned, but in such cases access by index is the preferred method anyway.
2013-08-28 07:09:36 +00:00
Campbell Barton
48a637a4e4 warn when applying transformation does nothing, confusion pointed out in [#36583] 2013-08-28 04:17:48 +00:00
Campbell Barton
9e561a641e remove callback BLI_localErrorCallBack from scanfill, was here for years and only ever wrapped printf. 2013-08-28 02:14:24 +00:00
Campbell Barton
27df6a3b54 scanfill curves, ngons, masks had their own memarena code and would allocate a new one for every fill.
now use BLI_memarena and support passing the arena into the fill function, so the arena is re-used, when scanfill is called in a loop.
2013-08-28 02:07:54 +00:00
Campbell Barton
4d2b50ad74 remove unused function. also typo 2013-08-27 23:34:16 +00:00
Campbell Barton
75383a79f6 array modifier was adding vertices to the 'targetmap' multiple times.
this is supported by weldop but would prefer not to allow multiple keys in the map.
2013-08-27 23:32:11 +00:00
Campbell Barton
377475f979 remove doubles: source/target can be swapped, check both flags. 2013-08-27 23:23:19 +00:00
Campbell Barton
d5469dd5c2 mesh remove doubles was adding verts into the weld_verts.targetmap multiple times (new paranoid asserts find this stuff). 2013-08-27 22:38:55 +00:00
Campbell Barton
b7a3a3894e internal bmesh operator change, always initialize ghash for mapping slots, save having many checks. 2013-08-27 22:13:11 +00:00
Campbell Barton
11703b4955 style cleanup 2013-08-27 21:30:33 +00:00
Campbell Barton
51d399aaab tweak to dragging the ui-list, would lag behind the mouse noticeably. 2013-08-27 20:58:37 +00:00
Campbell Barton
ba9b7e6a20 avoid calling CustomData_bmesh_get to get CD_PAINT_MASK per vertex while sculpting, store offset directly. 2013-08-27 20:39:08 +00:00
Bastien Montagne
025bac4570 Small enhancement to grab-resize of uiLists, suggested by plasmasolutions: do not effectively apply auto-size until we stop grabbing, avoid size of uiLists to switch between rows and maxrows while dragging. 2013-08-27 18:56:04 +00:00
Bastien Montagne
8bdb1f6155 Get rid of madness about fnmatch: BLI_fnmatch did not do the OS checks, they had to be done in every file using fnmatch (autoexec.c did not, wonder how it could work under unix???).
Thanks to Brecht for noting this!
2013-08-27 18:29:30 +00:00
Bastien Montagne
6b51c27414 uiLists enhacements: dragresize and better GRID layout.
Many thanks to Brecht for the review!

* You can now drag-resize uiLists (in default or grid layouts).
** Note about "default" size: when you drag below minimal size of the uiList, it will automatically reset to automatic sizing (i.e. size between rows and maxrows, depending on the number of items to show). This often means (e.g. in Materials list with many mat slots) that the list will grow again to maxrows!

* Grid uiLists now have a customizable number of columns (previously it was a fixed value of 9), and they will respect the rows/maxrows settings as well (i.e. show a scrollbar when needed), instead of growing indefinitly!
2013-08-27 15:27:41 +00:00
Bastien Montagne
07aaf4a90a Icons: add a "grip" one. 2013-08-27 15:21:58 +00:00
Campbell Barton
defb8812a7 fix [#36301] Mirror modifier does not mirror vertex normals when there are no faces. 2013-08-27 02:25:15 +00:00
Campbell Barton
abaa4cd490 fix [#36409] Continuous Grab problem with arrow keys. 2013-08-27 01:30:09 +00:00
Campbell Barton
79f7a78637 fix [#36528] crash when reinitializing bmesh from mesh 2013-08-27 00:39:51 +00:00
Campbell Barton
8ef934c73f ghash/bli-listbase edits, rename BLI_ghash_pop -> BLI_ghash_popkey (since it takes a key as an arg and isnt popping any element from the hash as you might expect).
add BLI_pophead/tail, since getting the first element from a list and removing it is a common task.
2013-08-26 23:37:08 +00:00
Campbell Barton
cdd57d4994 fix for error reading from freed memory when deleting a screen, would free then notifier then check its contents in the notifier queue loop. 2013-08-26 22:48:14 +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
Bastien Montagne
1679cd7f96 This commit adds optional parameters for pyfunc implementations of RNA API (i.e. callbacks, e.g. draw functions of panels, uiLists, or exec/poll/etc. of operators). Thanks to Brecht for he review!
Any parameter after the first flagged with PROP_PYFUNC_OPTIONAL will be considered as optional, hence the python code does not have to define/use it. This will ease API evolutions by avoiding to break existing code when adding non-essential new parameters.

Note: this will need some update to API doc generation, patch is ready, will have it reviewed by Campbell asap.
2013-08-26 21:11:52 +00:00
Sergey Sharybin
03dbae07d3 Mask primitives
Currently only circle and square, might be easily
extended in the future.

New primitives are creating at cursor location.
This also implied adding 2d cursor to space clip.

Also fix set 2D cursor location which didn't work
in image editor's mask mode since 2.67.

TODO: draw_image_cursor better be moved to some
      more generic file, but it's not so much
      important for now and might be solved later.

Thanks Campbell for the review!
2013-08-26 20:23:26 +00:00
Campbell Barton
11aa7a76fa quiet warnings when building as a python module 2013-08-26 19:32:03 +00:00
Bastien Montagne
c93750d893 RNA fixes regarding dynamic array properties in functions parameters (reviewed by Brecht, thanks!):
* It was not clear that RNA_parameter_length_get() & co only affected dynamic properties, renamed them to RNA_parameter_dynamic_length_get() and such.

* Fixed RNA_function_find_parameter(), we can't use BLI_findstring() here, need to call RNA_property_identifier()!

* Fixed RNA_parameter_get() and RNA_parameter_set(), which were completely wrong for dynamic properties.

* Fixed RNA_parameter_dynamic_length_get/set_data(), they did not check the property was actually a dynamic one and were using again ugly blackmagic casting intead of ParameterDynAlloc structure!

* makesrna was still using an ugly hackish (and perhaps not always working) code when handling dynamic parameters, now synchronized with RNA_parameter_dynamic_length_get_data and RNA_parameter_get code.
2013-08-26 16:08:03 +00:00
Bastien Montagne
f157753120 Fix [#36308] Custom hotkey "Set Object Mode" - "Object Mode" doesn't work properly
There was actually two different issues:
* mode and toggle options had "remanant" values, when e.g. you used MODE_EDIT/toggle, these would be used again with the newly defined keymap (which sets eg MODE_OBJECT/notoggle)... Defining those props as PROP_SKIP_SAVE fixed this.

* Toggling was not supported for MODE_OBJECT, fixed this (can indeed be handy to have a shortcut to toggle between current mode and Object one ;) ).
2013-08-26 15:43:34 +00:00
Antony Riakiotakis
1ff96dc6c9 Don't check for an object mode that is excluded as a prerequisite for
entering this branch of code.
2013-08-26 14:58:16 +00:00
Sergey Sharybin
52216889c0 Remove unused function NewBooleanMesh 2013-08-26 14:53:40 +00:00
Sergey Sharybin
4800d7fc34 Remove dirty normals assert from drawobject.c
Dirty normals already being checked in DerivedMesh.c,
and this things really rather be localized in one
single place than being checked all over the code.
2013-08-26 14:53:33 +00:00
Bastien Montagne
79835d53fb Cleanup: move defines into anon enums, as suggested by Joshua, thx.
Note I let a few as defines for now (esp. base options are not clear to me, how they should be aranged in groups).
2013-08-26 14:30:00 +00:00
Bastien Montagne
49ae48bc16 Cleanup (bitflags are *so much* easy to handle and clear as bit-shift operations than raw values!). 2013-08-26 13:50:25 +00:00