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
2021-03-02UI: Clean up labels and descriptions: "Draw" to "Display"William Reynish
In Blender, we used to use the term 'draw' to refer to information displayed to the user. For version 2.80, it was decided to change these instances to 'display' instead. This was to avoid the ambiguity between end-user drawing tools and display options. From the Oxford English Dictionary: - Draw: produce (a picture or diagram) by making lines and marks on paper with a pencil, pen, etc. - Display: show (data or an image) on a computer, television, or other screen. Therefore, we should use draw when referring to drawing tools for making marks, but use display when referring to information shown/displayed to the user. From a user POV, the computer displays certain information, whereas the user draws a mark. Apparently this change was not implemented consistently, so this patch changes all remaining relevant instances of "draw". Differential Revision: https://developer.blender.org/D10551
2021-03-02UI: Expose an "is first search" boolean to search button callbacksHans Goudey
Currently when you open an RNA collection search button, like a vertex group selector, the search filter isn't applied until you start typing, in order to display every option at the start. Otherwise they wouldn't be visible, since the search filter would run for the current text. Currently this check happens in one place, but it relies on the `changed` value of `uiBut`. This is fine in the interface directory, but anywhere else it would require exposing `uiBut.changed`, which is probably too low-level to expose. The solution is adding an `is_first` argument to the search callbacks, which is nice for a few reasons: - They work at a higher level of abstraction, meaning they don't have to worry about how exactly to tell if this is the first search. - It makes it easier to do special behavior when the search menu is first opened. - Then, obviously, it makes that state accessible without including `interface_intern.h`. Needed for attribute search: T85658 Differential Revision: https://developer.blender.org/D10528
2021-02-26Fix (unreported) missing 3DView update after some Outliner Override operations.Bastien Montagne
2021-02-26Fix T84953: Incorrect tooltip for dragging collectionsHans Goudey
"Shift to parent" does not make any sense for collections since they don't have parenting like objects. This commit just adds a simple check for whether the first drag ID is an object before displaying that part of the message. Differential Revision: https://developer.blender.org/D10203
2021-02-25Improve Purge operator.Bastien Montagne
The Purge operator to remove unused IDs can now also remove 'indirectly unused' data-blocks (those only used by unused ones, recursively). It can also now only operate on linked, or on local data. All those options are exposed in the `File -> Cleanup` main menu. The behavior of the `Purge` button in the Outliner remains unchanged, needs some UI/UX design task for that.
2021-02-25Fix T85976: Outliner crash deleting collection with multiple windowsCampbell Barton
2021-02-25Refactor: IDTypeInfo: Add `owner_get` to get owner of embedded IDs.Bastien Montagne
This concerns currently only collections (`master_collection` of scenes) and root node trees. It removes the matching type-specific helpers (`BKE_collection_master_scene_search` and `BKE_node_tree_find_owner_ID`). No functional change expected here. NOTE: Current implementation of `owner_get` is far from optimal, we could probably do it better, see {T69169}. NOTE: While it could also have it, shapekeys IDTypeInfo was left out of this change for now. Mainly because it sould not be used currently, and we ultimately want to demote shape keys from ID status anyway.
2021-02-20Cleanup: spellingCampbell Barton
2021-02-20Cleanup: doxygen sectionsCampbell Barton
2021-02-20Cleanup: Disentangle outliner active status "get" and "set"Hans Goudey
Previously the same functions were used to both set and get the active state for outliner tree elements. This has quite a few problems. - It's hard to tell when data is changed or simply read - It prevents using `const` - The code is full of if statements, making it longer and less readable. This commit replaces the `tree_element_type_active` and `tree_element_active` functions with `_get` and `_set` variants. One has const arguments and returns the active state, the other deals only with setting the state. While this refactor results in slightly more lines of code, the result is much better in my opinion. This commit also removes unused variables from arguments of the affected functions. Differential Revision: https://developer.blender.org/D10232
2021-02-19Cleanup: Comment formatting, spellingHans Goudey
2021-02-19Fix T83027: Incorrect outliner collection state after operatorHans Goudey
The "Hide Collection" operators assigned to the number keys in edit mode trigger a redraw of the outliner, but as an optimization, they do *not* trigger a rebuild of the tree. This optimization is valid because unlike the collection exclude toggle, the heirarchy is not affected by collection visibility. However, it means that currently you must trigger a rebuild to get the correct "grayed out" status after using the operator. Rather than trigger a rebuild in this case to solve the bug, this patch moves the decision for whether to gray out the text of a tree element to the draw step rather than the build step. This means that any change to the corresponding properties doesn't require a full tree rebuild. Note that changing the "hide_viewport" property from the outliner still causes a tree rebuild. I think that's because of the checks in `outliner_collection_set_flag_recursive_fn`. That could be optimized in the future. Differential Revision: https://developer.blender.org/D10240
2021-02-17Cleanup: spellingCampbell Barton
2021-02-16Assets: Remove appended asset when dropping operation failsJulian Eisel
When dropping an asset somewhere, it is appended and then a drop operation is called to actually add it to the scene based on current context. If this drop operation fails, the appended data-block is now still in the .blend. The user may not notice and not expect this. Instead idea is to rollback any changes done by dropping code if the operation fails, namely removing the appended data-block again. Adds a new `cancel()` callback which is called if the drop operator returns `OPERATOR_CANCELLED` to drop-boxes and a generic function to deal with assets on drop failure. Also removes the `free_id_on_error` property of the `NODE_OT_add_group` operator, which was used as ad-hoc solution to get this same behavior.
2021-02-14Cleanup: spellingCampbell Barton
2021-02-13Cleanup: spellingCampbell Barton
2021-02-13Cleanup: Remove unused outliner enum valuesNathan Craddock
Removes values from various Outliner context menu enums that were unused. Many of these had been commented out for years. Also deletes some unused code related to the removed enums. No functional changes.
2021-02-10Cleanup: remove redundant headers in source/blender/editors/Campbell Barton
Remove redundant headers using `./source/tools/utils_maintenance/code_clean.py` Reviewed By: jmonteath Ref D10364
2021-02-09Outliner: Enable render visibility column by defaultNathan Craddock
The render visibility column in the outliner should be enabled by default. This change makes it more obvious which objects will be rendered which can be misleading when only viewport visibility toggles are shown by default. This commit enables the render visibility column in all existing and new Outliner editors. Differential Revision: https://developer.blender.org/D10365
2021-02-08Cleanup: Remove unused tree element typesJulian Eisel
These weren't used since ages. Comment out the DNA define (value shouldn't be reused to avoid compatibility breakage) and remove icon code for the types.
2021-02-08Cleanup: Remove dead code for keymap Outliner display modeJulian Eisel
This wasn't used for a long time and there are no plans to bring this back.
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-02-04LibOverride: Added log statements in liboverride operator functionsSebastián Barschkis
As discussed in D10301. Reviewed By: mont29 Differential Revision: https://developer.blender.org/D10303
2021-02-04LibOverride: Only show relevant operators in outliner menuSebastián Barschkis
No need to show certain operators when they have no functionality. For example, when adding a library override from the outliner menu, there should only be an option to add one (i.e. reset, delete, resync operators not relevant for objects without library override). Reviewed By: mont29 Differential Revision: https://developer.blender.org/D10301
2021-01-28Cleanup: Reduce variable scopeHans Goudey
Also some minimal white space changes
2021-01-25Fix T85027: Crash dragging a collection over empty OutlinerJulian Eisel
Filtering may make the Outliner tree empty. The function to find the drop element should just return null then and let the caller decide how to deal with it.
2021-01-25Cleanup: pass 'rctf' rectangle to 2D box drawing functionsCampbell Barton
Passing 4x arguments for the rectangle, mixed in with round-box radius & color wasn't very readable. Instead, pass a `rctf` as the first argument to UI box drawing functions.
2021-01-22Merge branch 'blender-v2.92-release'Campbell Barton
2021-01-22Fix T84920: Crash undoing object activation in the outlinerCampbell Barton
Regression from d8992192e5512380f57433df113f3e3f8b22f7cb The original code relied on having a separate edit-object pointer than the active object. Use a utility function to avoid code duplication as there are other areas that have similar functionality.
2021-01-22Fix editors showing old data-block name after renaming in OutlinerJulian Eisel
E.g. the graph editor channels list would still show the old name of a material that was renamed in the Outliner. Same for the Asset Browser when showing data-blocks in the "Current File" repository. The Outliner didn't send the notifier for some data-block types that editors listen to for data-block name changes.
2021-01-20Cleanup: remove extra in trailing asteriskCampbell Barton
Comment blocks not conforming to convention.
2021-01-19Cleanup: use 'const' argument for parameter argumentCampbell Barton
2021-01-19UI Code Quality: Use "params" struct for area and region callbacksHans Goudey
These functions with many arguments can be unwieldy. Aside from the obvious issues with rewriting the list of arguments and the opportunities for error and frustration that presents, the long list of arguments make these systems hard to change. So when an argument should be added, someone might skip that and add some hack instead. So, as proposed in T73586#1037210, this patch instead uses a "params" struct for each of these callbacks. - Use param argument for `ARegionType.listener` - Remove unused window field in region listener - Use param argument for `SpaceType.listener` - Use params struct for `ARegionType.message_subscribe` Differential Revision: https://developer.blender.org/D9750
2021-01-18Fix T84586: missing Outliner redraws for certain NLA operatorsPhilipp Oeser
Outliner display under 'Animation' > 'NLA Tracks' was not updating in the following cases: - adding strips - removing strips - duplicating strips (possibly to different track) - swapping strips - reordering tracks - changing strip order by translating - translating strips between tracks - renaming tracks In the case of deleting strips/tracks, this was also resulting in a use- after-free error in Outliner drawing code (this was reported specifically in T84586). Most of these operators already sent a ND_NLA|NA_EDITED notifier, but the Outliner is not listening to these. Listening to NA_EDITED is also not what we want since this also happens a lot in cases irrelevant to the Outliner. Now be a bit more specific and send ND_NLA|NA_ADDED / ND_NLA| NA_REMOVED or a new ND_NLA_ORDER (to distinguish from NA_EDITED 'only' - where a redraw is not neccessary) and listen to these from the Outliner. (note: places that were listening to ND_NLA|NA_EDITED before are also listening to NA_ADDED or NA_REMOVED, so changing NA_EDITED should not be a problem here) (note 2: for cases like swapping tracks/strips order, NA_ADDED or NA_REMOVED does not make sense, neither can we use NA_EDITED [since we dont want to listen to this], so in this case an additional ND_NLA_ORDER is now sent) (note 3: in nla transform code, this is now always sent on confirm. There are cases were the notifier would not be needed, but checking exactly all cases were it actually would be needed seems overkill [history of D10073 has example code to check if strips moved between tracks]) Maniphest Tasks: T84586 Differential Revision: https://developer.blender.org/D10073
2021-01-13Asset System: Disable Asset Browser as experimental featureJulian Eisel
The Asset Browser will be disabled and not available for the 2.92 release. In alpha/beta builds, there will be an "Asset Browser" option under Preferences > Experimental, if the developer extras are enabled. Note that this also disables related UI elements (e.g. "Mark Asset" buttons, Preferences settings for asset libraries, etc.). The code is still in master of course, development and testing will continue there. But there simply needs to be too much polishing and fixing before the 2.92 release, plus there are some design decisions to be reevaluated. Check the milestone 1 project to follow ongoing work: https://developer.blender.org/project/view/124/
2021-01-11Fix T84327: outliner_id_copy_tag was only copying from expanded nodes.Pi Lanningham
If a node was closed in the hierarchy, we would only copy that node, even if child nodes were selected. Reviewed By: brecht, mont29 Maniphest Tasks: T84327 Differential Revision: https://developer.blender.org/D9995
2021-01-08Fix T84475: Outliner missing update when adding IDs to main via RNAPhilipp Oeser
Was reported for meshes, but was true for any type. Now add appropriate notifier to refresh the Outliner. Maniphest Tasks: T84475 Differential Revision: https://developer.blender.org/D10030
2021-01-07Outliner: use the scene ID for ObjectBase PointerRNACampbell Barton
While this didn't cause any problems, `Base` structs are part of the scene which is being set in other uses of this type.
2021-01-05Cleanup: typos (repeated words)Campbell Barton
2021-01-04Cleanup: spelling (use 'gimbal' instead of 'gimble')Campbell Barton
2020-12-30Outliner: Fix useless assert in new liboverride showing code.Bastien Montagne
It is perfectly 'valid' to find invalid RNA properties references in override properties list. Data change, RNA changes, IDProperties change, some linked ID may become unavailable, etc. Note that those invaldi override properties are cleaned up when updating the override info (so typically on undo step storage, and .blend file save).
2020-12-28Fix possible fall-through in outliner region listenerSergey Sharybin
Reported as a strict compiler warning, and the need of fall-through is not needed from just reading the code. If it is something what must happen, the reasoning is to be explained in the comment, and ATTR_FALLTHROUGH is to be used.
2020-12-28UI: List library overrides in the OutlinerJulian Eisel
Having a centeral place to find a list of all library overrides should be useful for managing production scenes where library overrides are used a lot. This change adds the individually overridden properties of a data-block under the data-block itself. Just how we show modifiers, constraints or pose channels there. This way we can also expose library override operations/options better in future. There's also a filter option for the library overrides now, so they can be hidden. It is only available in the View Layer display mode though, like the other filter options. One internal change this has to do is adding more informative return values to undo pushes and the library override functions called by it. That way we can send a notifier when library overrides change for the Outliner to know when to rebuild the tree. Differential Revision: https://developer.blender.org/D7631 Reviewed by: Andy Goralczyk, Bastien Montagne, William Reynish
2020-12-24Cleanup: Fix capitalization in various UI stringsYevgeny Makarov
Approximately 195 changes of capitalization to conform to MLA title style. UI labels and property names should use MLA title case, while descriptions should be capitalized like regular prose, generally with only the start of a sentence capitalized. Differential Revision: https://developer.blender.org/D9922
2020-12-22UI: Properties editor popover and outliner syncNathan Craddock
This adds a popover to the properties editor. Currently the only setting is for controlling outliner to properties syncing. Because we cannot define a perfect heuristic to determine when properties editors should change tabs based on outliner icon selection, we need an option to enable or disable this behavior per properties editor. There are 3 options for controlling the syncing. Auto uses the heuristic to only allow tab switching when a properties editor and outliner share a border. On and off enable and disable syncing respectively. Differential Revision: https://developer.blender.org/D9758
2020-12-19Cleanup: Split SEQ_sequencer.h fileRichard Antalik
2020-12-19Cleanup: Rename BKE_sequencer functionsRichard Antalik
API functions get SEQ_ prefix. Intern functions get seq_ prefix Functions also have appropriate category included in name.
2020-12-19Fix T83868: Button animation states no longer visible without embossHans Goudey
This bug was caused by making it so that non-embossed modifier icon buttons could become an operator button and retain their red highlight for disabled modifiers. The icon button needs emboss turned off, but in earlier versions of Blender, `UI_EMBOSS_NONE` would be overridden by animation or red alert states. Instead of abusing "NONE" to mean "none unless there is animation or red alert", this commit adds a new emboss flag for that situation, `UI_EMBOSS_NONE_OR_STATUS`, which uses no emboss unless there is an animation state, or another status. There are only a few situations where this is necessary, so the change isn't too big. Differential Revision: https://developer.blender.org/D9902
2020-12-18Outliner: Set active modifier on clickHans Goudey
The outliner already expands the panel for the modifier you click on, this just extends that idea to also set it active, which is consistent with behavior of active and selected items elsewhere in Blender.
2020-12-18Fix T82960: Inaccurate selection on collapsed outliner rowsNathan Craddock
After rB15083d9e1 the outliner tree is not rebuilt after expanding or collapsing rows. Because the tree is no longer rebuilt the positions and flags of the elements are not cleared when collapsing a row. This caused hover highlights and selections on the collapsed child icons to be incorrect in many cases. For example, only the direct children of a collapsed element are drawn inline. If any grandchild elements had been previously icon row flagged they would continue to be evaluated as icon row elements despite being hidden. In this case the x coordinates of the child and grandchild would overlap causing selection to appear erratic. Now the flags for inline row icons are explicitly cleared, which was previously only done because the tree was rebuilt on collapsing rows.