The buttons for "hiding" (collapsing) a node, hiding unlinked sockets, additional options, the preview and for opening a node group were all using a custom mouse test function, which was broken. They now use actual buttons instead of just displaying icons. Before executing the respective operators the button's node has to be selected and activated, so the buttons use an intermediate handle function, which selects the node and then calls the operator.
This branch adds mostly organizational improvements to the node system by renaming the node folders and files. A couple of internal features have been added too.
Detailed information can be found on the wiki page:
http://wiki.blender.org/index.php/User:Phonybone/Particles2010
this will reconnect nodes as if the deleted node is muted.
Operation is added to the space_node node menu and to the keymap as CTRL-X
to test this just add some nodes to the space_node
select one or multiple nodes and press CTRL-X
It should reconnect the nodes as they were muted
limitations:
1. it performs a delete and reconnect per node. It does not evaluate all selected nodes as one whole
2. mute only supports Value, Vector and Color data types, so does this feature
3. not usable for nodes where input and output does not match (like colorToBW)
Where reconnect could not be preformed the links will be removed from the model.
Undo works with this delete with reconnect.
When using masks or other simple 3D elements in composites, doing
a layer re-rendering on a node is a bit clumsy all the time.
This commit does two things to help:
- new hotkey "Z" in node editor automatically finds render layer
that changed and re-renders it + composites
- option "Auto Render" does same, but then after every transform
edit in 3D window
The latter is experimental; real & proper system for this requires
full threaded render support (like previews). But it works!
Demo file:
http://download.blender.org/demo/test/auto_composite.blend
Important fix:
After any render, all the render layers were tagged "changed", which
caused any edit to first totally recomposte everthing. Now it only
composites changes.
Implementation notes
- DAG scene flush now sets 'changed' flags in render layer nodes
- Added notifier for 'transform finished' to trigger the update,
this is temporarily.
"Select all of the same type" now is binding to Shift + GKEY
Two new function, select next and prev node of the same type.
Select a node and press Shift + [ or Shift + ] go to the
previous and next node of the same type (of the active node).
This is a small request from Venomgfx, select a node
and then press Shift + F to select all the nodes of the
same type (of the active node).
The key binding can be change, we thing in a "Find Next" (that is
way the FKEY) with venomgfx, but no problem with change that.
Also I add the entry in the select menu.
Allow dropping image files from outside blender, or image datablocks from inside blender
to the compositing node editor, to add an image node.
Also small tweak: Only set 'path' properties on drops, if the drag->path isn't empty.
- ALT+Scrollwheel zooms backdrop in node editor
- Blender -d debug print will also print every event except mouse moves
(needed to debug WM, some events are catched by OS)
- Changed order of keymaps... the default maps now are evaluated *after*
the own custom maps, so you can make overrides or defaults.
For now it is on ALT+MiddleMouse. The view2d code eats the shift+mmb,
which is not necessary, but will have to ask Joshua to be sure.
Probably tomorrow it's shift+mmb as for 2.49.
Add hidden property to be able to force confirm on release (drag immediately is a silly name) on or off.
Streamline method for adding common properties to transform operators.
Only source/blender/editors/ dir, should not give errors on different platforms
Only removing: UI_*.h, ED_*.h, WM_*.h, DNA_*.h, IMB_*.h, RNA_*.h, PIL_*.h
* Cleaned up dead code, removed all traces of socket selection
* Modified border select so it's possible to have border select on mouse tweak.
With this change, by default, click+dragging on a node will select and move it,
but click+dragging on empty space will border select.
Testing a new method that hopefully will be faster to use than finicky socket
selection - now just select multiple nodes and press F - available output sockets
on the selected nodes will get automatically connected to the active node.
It works for one socket type each time, to avoid getting lots of extra connections
when you join up, but as a shortcut you can easily press F again to connect up
other socket types. For example, to connect a render layer node (with vector pass)
to a vector blur node, select the render layer then the vector blur, and press F
three times to connect up the Image, Z and Vector sockets. It now also
preferences sockets with the same name to connect up first.
There's also another option (ctrl F) which will replace existing input links, rather
than only connecting up links to available input sockets.
* Also changed socket link knife cut to a more convenient shortcut - Ctrl LMB tweak
* Moved 'change shortcut' (previously directly RMB on menu items) to a context-menu item, and added Remove Shortcut and Add Shortcut. This is all available now in a RMB context menu for operator buttons and menu entries.
* Renamed a bunch of key maps to be consistent with UI names, and human-readable. Since these key map names are now being directly used in the UI for people to find things, they should be understandable and in plain language.
This renaming may break some older saved key map setups - though previously saved .b25.blends should convert over ok. Exported .py files may need some find/replacing - in this commit check the changes in resources.c to see what's changed.
- removing duplicate chunks of code -> hide unused sockets now works
- moving some functions to the files that they get called from -> view all/home
- made duplicate a macro operator like the other places that work like this, eliminating the unnecessary transform-related property there still
- removed a few chunks of unused code
* Restored Mute and Hide Operators, M and H keys respectively
* Restored Make Links Operator (F). However, I can't figure out how to set the sockets so that this can be used
* Made Alt-RMB the new hotkey for breaking links by dragging, since Alt-LMB was taken for panning already
* Fixed a nasty bug which meant that it was impossible to set an active node. Was caused by ntreeCopyTree() getting called when compo updates were done and clearing the active flags. The active flag clearing is only really needed for the "internal_select" case which is only used for duplicating selected nodes (from Shift-D duplicate).
* Recoded click-selection code. Was a mess of old code, bad exceptions from the old code half ported, duplicate operators, unnecessary flags/modes.
* Fixed bug #19927: compositing node groups can't be access via "tab" or ungrouped via "alt+g". Was probably related to the active group not being able to be set.
* Made resizing nodes work again. Again, this was due to the active node bug.
* Made adding a new group with Ctrl-G correctly update the views
This commit restores Grease Pencil functionality for the Nodes Editor. Grease Pencil data is now stored at the NodeTree level, which means that annotations remain with the NodeTree they were made for.
Possible TODO's:
* In future, it may be worth investigating attaching Grease Pencil data to individual nodes, to allow annotations to stay attached to nodes as they are moved
* Include the settings for the 'active node' in a panel in the new NKEY region where the Grease Pencil buttons appear.
Keymaps are now saveable and configurable from the user preferences, note
that editing one item in a keymap means the whole keymap is now defined by
the user and will not be updated by Blender, an option for syncing might be
added later. The outliner interface is still there, but I will probably
remove it.
There's actually 3 levels now:
* Default builtin key configuration.
* Key configuration loaded from .py file, for configs like Blender 2.4x
or other 3D applications.
* Keymaps edited by the user and saved in .B.blend. These can be saved
to .py files as well to make creating distributable configurations
easier.
Also, user preferences sections were reorganized a bit, now there is:
Interface, Editing, Input, Files and System.
Implementation notes:
* wmKeyConfig was added which represents a key configuration containing
keymaps.
* wmKeymapItem was renamed to wmKeyMapItem for consistency with wmKeyMap.
* Modal maps are not wrapped yet.
* User preferences DNA file reading did not support newdataadr() yet,
added this now for reading keymaps.
* Key configuration related settings are now RNA wrapped.
* is_property_set and is_property_hidden python methods were added.
This calls a registered menu as a popup so we can reuse header menus , currently used for Node editor and Sequencer add menu (Shift+A), can be used for toolbox too.
their handlers based on notifiers, which is simpler and more
reliable.
This fixes for example editmode or uv edit keymaps not working
when creating a new 3dview or image space.
*Cleaned up Transform panel in n-key area. It's now single column so that this view can be nice and slim, while you can still access everything.
This is especially important in edit mode where you cannot change the transform values numerically from the Properties.
Transform properties don't seem to work for Metaball edit yet, so wasn't able to test this
*Removed some lingering tools in curve transform and put them in the toolbar instead.
*Improved alignment in toolbar
*Made Image Properties use regular checkmark toggle buttons
*Added Delete as an alternative to X key, as it was in 2.4x