Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-07-02Cleanup: use bool for poll functionsCampbell Barton
2018-06-04Cleanup: strip trailing space in editorsCampbell Barton
2018-06-01Cleanup: trailing whitespace (comment blocks)Campbell Barton
Strip unindented comment blocks - mainly headers to avoid conflicts.
2017-10-31UI: replace UI_ITEM_O_RETURN_PROPS /w return argCampbell Barton
Means we can have a version of this function that returns the button and avoids returning a struct that often isn't used.
2017-03-22Cleanup/optimization: Simplify some usages of uiItemFullO/_ptr, avoid ↵Bastien Montagne
multiple search of same op.
2016-08-04UI: Correct tooltips for properties region toggle OPJulian Eisel
Now all consistent and using term "properties region" instead of "properties panel". Ideally we had a more generic operator for all those. Fixes T49006.
2015-08-18Refactor translation code out of blenfontCampbell Barton
- Add blentranslation `BLT_*` module. - moved & split `BLF_translation.h` into (`BLT_translation.h`, `BLT_lang.h`). - moved `BLF_*_unifont` functions from `blf_translation.c` to new source file `blf_font_i18n.c`.
2015-02-11UI: add optional tip callback to uiBut, and use it for per-item tooltips in ↵Bastien Montagne
UIList. When defined, uiBut->tip_func is called when button's tip is generated. This allows for advanced, dynamic generation of tooltips. For now, only used by UIList, which can now optionaly use a given string property of each item for its tooltip. Thanks to Campbell for the reviews!
2014-11-30Removing last vestigial remains of old C-based UI for Grease PencilJoshua Leung
I'd kept the code around in the codebase until after the merge back to master to avoid having too many conflicts if things changed there (or in case we needed to roll back). Now, it's safe to jettison this!
2014-11-30Grease Pencil - Storyboarding Features (merge from GPencil_EditStrokes branch)Joshua Leung
This merge-commit brings in a number of new features and workflow/UI improvements for working with Grease Pencil. While these were originally targetted at improving the workflow for creating 3D storyboards in Blender using the Grease Pencil, many of these changes should also prove useful in other workflows too. The main highlights here are: 1) It is now possible to edit Grease Pencil strokes - Use D Tab, or toggle the "Enable Editing" toggles in the Toolbar/Properties regions to enter "Stroke Edit Mode". In this mode, many common editing tools will operate on Grease Pencil stroke points instead. - Tools implemented include Select, Select All/Border/Circle/Linked/More/Less, Grab, Rotate, Scale, Bend, Shear, To Sphere, Mirror, Duplicate, Delete. - Proportional Editing works when using the transform tools 2) Grease Pencil stroke settings can now be animated NOTE: Currently drivers don't work, but if time allows, this may still be added before the release. 3) Strokes can be drawn with "filled" interiors, using a separate set of colour/opacity settings to the ones used for the lines themselves. This makes use of OpenGL filled polys, which has the limitation of only being able to fill convex shapes. Some artifacts may be visible on concave shapes (e.g. pacman's mouth will be overdrawn) 4) "Volumetric Strokes" - An alternative drawing technique for stroke drawing has been added which draws strokes as a series of screen-aligned discs. While this was originally a partial experimental technique at getting better quality 3D lines, the effects possible using this technique were interesting enough to warrant making this a dedicated feature. Best results when partial opacity and large stroke widths are used. 5) Improved Onion Skinning Support - Different colours can be selected for the before/after ghosts. To do so, enable the "colour wheel" toggle beside the Onion Skinning toggle, and set the colours accordingly. - Different numbers of ghosts can be shown before/after the current frame 6) Grease Pencil datablocks are now attached to the scene by default instead of the active object. - For a long time, the object-attachment has proved to be quite problematic for users to keep track of. Now that this is done at scene level, it is easier for most users to use. - An exception for old files (and for any addons which may benefit from object attachment instead), is that if the active object has a Grease Pencil datablock, that will be used instead. - It is not currently possible to choose object-attachment from the UI, but it is simple to do this from the console instead, by doing: context.active_object.grease_pencil = bpy.data.grease_pencil["blah"] 7) Various UI Cleanups - The layers UI has been cleaned up to use a list instead of the nested-panels design. Apart from saving space, this is also much nicer to look at now. - The UI code is now all defined in Python. To support this, it has been necessary to add some new context properties to make it easier to access these settings. e.g. "gpencil_data" for the datablock "active_gpencil_layer" and "active_gpencil_frame" for active data, "editable_gpencil_strokes" for the strokes that can be edited - The "stroke placement/alignment" settings (previously "Drawing Settings" at the bottom of the Grease Pencil panel in the Properties Region) is now located in the toolbar. These were more toolsettings than properties for how GPencil got drawn. - "Use Sketching Sessions" has been renamed "Continuous Drawing", as per a suggestion for an earlier discussion on developer.blender.org - By default, the painting operator will wait for a mouse button to be pressed before it starts creating the stroke. This is to make it easier to include this operator in various toolbars/menus/etc. To get it immediately starting (as when you hold down DKEy to draw), set "wait_for_input" to False. - GPencil Layers can be rearranged in the "Grease Pencil" mode of the Action Editor - Toolbar panels have been added to all the other editors which support these. 8) Pie menus for quick-access to tools A set of experimental pie menus has been included for quick access to many tools and settings. It is not necessary to use these to get things done, but they have been designed to help make certain common tasks easier. - Ctrl-D = The main pie menu. Reveals tools in a context sensitive and spatially stable manner. - D Q = "Quick Settings" pie. This allows quick access to the active layer's settings. Notably, colours, thickness, and turning onion skinning on/off.
2014-06-13Code cleanup: use ED_gpencil_ prefix for grease pencilCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-02-05Code cleanup: use bool for static methodsCampbell Barton
2013-08-27uiLists enhacements: dragresize and better GRID layout.Bastien Montagne
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-07-28use '_exec' suffix for operator execute callbacks, also picky change to ↵Campbell Barton
sizeof() use in BLI_array.h
2013-05-29Replacement for the "Active Node" panel in node editor properties sidebar. ↵Lukas Toenne
This panel is now defined in space_node.py instead of node_buttons.c. The properties have been split up into generic properties (name, label), custom colors (closed by default) and input parameters (extra options + unlinked input socket values).
2013-05-28Quick addition to the node sidebar "Active Node" panel: draw input socket ↵Lukas Toenne
values in addition to non-socket settings. This makes it possible to actually use the sidebar for all node settings without having to go to the main area for changing socket values. This patch should be considered a temporary solution. The Active Node panel is a horrible mess and needs to be split up and cleaned. It should probably be moved to python as well.
2013-04-14Fix for #34910, NodeGroup input/output sliders bug. Initially i thought this ↵Lukas Toenne
was a limitation of the "only 1 list per panel supported" type, but this has since been fixed. Lists just need an additional identifier to distinguish lists in the same panel, thanks to Bastien Montagne for the uiList overhaul!
2013-03-27I18n fixes for C panels & menus (we have to specify the default bpyrna ↵Bastien Montagne
context here, else we get the horrible "empty" string (as translation_context of panels is an array, not a pointer, so it's never NULL).
2013-03-19Nicer handling of undefined node, tree and socket types.Lukas Toenne
When nodes are loaded from a .blend file they can potentially have undefined types. This can happen if a type has been deprecated and removed, or if node types were defined in a python script that has not been loaded correctly. Previously all such nodes would automatically be removed from a node tree, assuming that their types were deprecated and no longer in use (more commonly caused by loading new nodes in an older Blender version). Due to the possibility of dynamic registration it is no longer feasible to simply delete such nodes. Display and handling of node trees was simply disabled before this patch, so that a node tree where any node or socket type was undefined would not be displayed at all. To give more information and avoid problems caused by necessary checks for the typeinfo pointer, there is now a 'Undefined' fallback type for trees, nodes and sockets. These types are used as placeholders in case the real type is not registered and can provide useful visual feedback on undefined nodes.
2013-03-18Node Interface:Thomas Dinges
* Small tweak to the "Interface" panel for group nodes, move separator into the branch to save some UI space.
2013-03-18code cleanupCampbell Barton
2013-03-18Merge of the PyNodes branch (aka "custom nodes") into trunk.Lukas Toenne
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements. === Dynamic node type registration === Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes. Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2]. === Node group improvements === Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3]. The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there. [1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes [2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender [3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/
2012-12-17fix [#33501] Grease pencil in OpenGL renderCampbell Barton
With the view3d 'Render Only' option, grease pencil wouldn't draw, but for OpenGL render it did. Since grease pencil can be very useful in opengl renders, enable grease pencil drawing with 'Render Only' option in the viewport, and add a checkbox in the grease pencil header not to draw (unchecking each layer is annoying and applies to all spaces).
2012-09-04stule cleanupCampbell Barton
2012-08-08code cleanup: rename G.rt to G.debug_valueCampbell Barton
2012-08-04style cleanupCampbell Barton
2012-08-03code cleanup: remove unused includesCampbell Barton
2012-06-20style cleanup: use TRUE/FALSE for ui align args.Campbell Barton
2012-05-23Node Editor UI:Thomas Dinges
* Added back the single triangle icon for node color special menu, showed empty after recent changes in r46939.
2012-05-22Node UI:Thomas Dinges
* Made the new custom theme options a bit better and more compact. * Added a few separators to better distinguish these settings from the actual node buttons.
2012-05-22A number of new features for the node editor in general and the Frame node ↵Lukas Toenne
in particular. For an detailed user-level description of new features see the following blogpost: http://code.blender.org/index.php/2012/05/node-editing-tweaks/ TL;DR: * Frame node gets more usable bounding-box behavior * Node resizing has helpful mouse cursor indicators and works on all borders * Node selection/active colors are themeable independently * Customizable background colors for nodes (useful for frames visual distinction).
2012-05-02A number of changes to node RNA and the file output node, to simplify socket ↵Lukas Toenne
types and make node code more robust for future nodes with extra socket data. * Removed the struct_type identifier from sockets completely. Any specialization of socket types can be done by using separate collections in RNA and customized socket draw callbacks in node type. Sockets themselves are pure data inputs/outputs now. Possibly the sock->storage data could also be removed, but this will change anyway with id properties in custom nodes. * Replaced the direct socket button draw calls by extra callbacks in node types. This allows nodes to draw sockets in specialized ways without referring to the additional struct_type identifier. Default is simply drawing the socket default_value button, only file output node overrides this atm. * File output node slots now use a separate file sub-path in their storage data, instead of using the socket name. That way the path is an actual PROP_FILEPATH property and it works better with the UI list template (name property is local to the data struct). * Node draw contexts for options on the node itself and detail buttons in the sidebar now have an extra context pointer "node" (uiLayoutSetContextPointer). This can be used to bind operator buttons to a specific node, instead of having to rely on the active/selected node(s) or making weak links via node name. Compare to modifiers and logic bricks, they use the same feature. * Added another operator for reordering custom input slots in the file output node.
2012-04-14Fixed another bunch of i18n bugs (thx to Leon Cheung for spotting them), ↵Bastien Montagne
among which: * Drag'n'drop translation in Outliner * "Execute" button in file window * "Labels" of spacing elements, in multi-column enums * A glitch with nodes "Value to RGB", they where called "ColorRamp" in node_type_base() call. This is not definitive, though, as it appears that UI node names are determined by this call, while it should be by "defines" in rna_nodetrre_types.h, I guess... Anyway, not good to have such things in two different places! Also moved default context name under BLF_translation.h, much better to have those all in one place, accessible from whole Blender code!
2012-04-13Node Editor / Properties Region:Thomas Dinges
* Improved checks for Grease Pencil and Active Node panel, so the panel only gets shown when there is valid data, rather than showing the empty panel. Thanks to Lukas Tönne for some help! :)
2012-04-13Code cleanup:Thomas Dinges
* Remove some non used *_button_register functions, panels are done in python. * Remove do_node_region_buttons, was not used anymore. Fix: * Only show Grease Pencil panel in the Node editor, when there is a valid nodetree.
2012-03-26style cleanup: add braces around checks - 'if ELEM() {...}', confuses some ↵Campbell Barton
parsers that done expand macros.
2012-03-24style cleanup: follow style guide for formatting of if/for/while loops, and ↵Campbell Barton
else if's
2012-03-22style cleanup: spaces aroudn operators for operator definitions.Campbell Barton
2011-12-19Display button for hiding unused node sockets in the side bar, as an ↵Lukas Toenne
alternative to the removed node header button.
2011-11-08UI/Nodes: templates to edit nodes from the properties editor using a tree view,Brecht Van Lommel
to be used by cycles. For testing there's a panel in the node editor if you set debug to 777, didn't enable it because I'm not sure it's very useful there.
2011-10-23remove $Id: tags after discussion on the mailign list: ↵Campbell Barton
http://markmail.org/message/fp7ozcywxum3ar7n
2011-09-06Merged the particles-2010 branch with node improvements into trunk.Lukas Toenne
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
2011-07-04Updated the indent, sorry!Jeroen Bakker
2011-07-04====== Proposal: Nodes property windows enhancement ======Jeroen Bakker
===== Situation before this patch ===== in the current situation inside the node editor there is a properties panel (press 'n'-key). This pabel displays some information about the node, backdrop and grease pencil. The UI of the property panel is typically vertical oriented. Nodes in the other hand are not oriented in a direction. Both area's are draw via the same draw function. With some nodes this will create not user-friendly UI. Try the color-balance for instance). The 3 color circles are drawn next to each other, it would be better to draw them below each other. When creating more complex nodes you don't want to display all handles in the node-panel and in the properties panel. For instance fine-tuning handles you only want to appear in the property panel to reduce place in the node itself. ===== Situation after this patch ===== This patch separates the draw functions of the property panel and the node panel. When no special draw function is created for the property panel, the draw function of the node will be used as 'fallback' ===== Impact ===== ==== BKE_node.h ==== add a new uifunc (called uifuncbut) to the bNodeType struct. The definition is the same as the uifunc. ==== node_buttons.c ==== if the uifuncbut is set, call it. currently calls the uifunc method ==== drawnode.c ==== static void node_composit_set_butfunc(bNodeType *ntype). set the uifuncbut function where needed. When at the end of the method uifuncbut is still empty, set uifuncbut to the uifunc. ===== Final note ===== ! PS. this is not limited to the compositor it also works for Materials and Textures ! ! PPS. For other branching creating their own node-tree. Please make sure that your uifuncbut is set NULL or a valid draw function !
2011-03-17Small tooltip change to better indicate the purpose of the node name string ↵Lukas Toenne
and moved the node label button to the top, since this is usually what user will want to edit instead of the identifier name.
2011-03-17Added an optional label string to nodes. As pointed out by Sebastian Koenig, ↵Lukas Toenne
some nodes (in particular render layer nodes) need custom labels, but it is not possible to make any useful generic abbreviation. The label string can be used as a custom user-defined label in this case, without the ugly .xxx extensions needed for unique node names. When the label string is empty, the default type label will be used.
2011-02-27doxygen: blender/editors tagged.Nathan Letwory
2011-02-23doxygen: prevent GPL license block from being parsed as doxygen comment.Nathan Letwory
2011-01-07split BKE_utildefines.h, now it only has blender specific defines like GS() ↵Campbell Barton
MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h. no functional changes.