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-10-17UI: Visual style update to panelsPablo Vazquez
Back in Blender 2.30, the GUI project brought panels into Blender among other important visual updates. For the first time it was possible to move the wall of buttons around. Providing a clear separation between sections (it even allowed the grouping of panels in tabs!) During the 2.5 redesign, the separation between panels became a line on top of each panel, and panels received theme settings for background and header colors. The default theme used the same color for both. In 2.8 the background color of panels was different from headers in the default theme, so the separator line was removed. While the separator line wasn't elegant (only on top, non-themeable, hard-coded emboss effect), it provided a sort of separation between panels. This patch solves the panels-separation by simply adding a margin space around them (not visible in default theme yet). Even though the margin reduces the width of the working area slightly, it makes room for the upcoming always-visible scrollbars. Other adjustments: * Use arrow icon instead of triangle to collapse/expand * Use rounded corners to match the rest of the UI (editor corners, nodes, etc). {F10953929, size=full} Margin on panels makes use of the `style->panelouter` property that hasn't been used in a while. Also slight tweaks to `boxspace` and `templatespace` style properties so they are multiples of 2 and operations on them round better. There is technically no need to update the themes for them to work, so no theme changes are included in this patch. {F10953931, size=full} {F10953933, size=full} {F10953934, size=full} {F10954003, size=full} ---- A new theme setting under Style controls the roundness of all panels (added it to Style instead of ThemeSpace because I think controlling the panel roundness per editor is a bit overkill): {F11091561, size=full, autoplay, loop} Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D12814
2021-07-23Cleanup: code comments punctuation / spacingCampbell Barton
2021-06-30Cleanup: use const arguments for accessor functionsCampbell Barton
2021-06-22Cleanup: Spelling MistakesLeon Zandman
This patch fixes many minor spelling mistakes, all in comments or console output. Mostly contractions like can't, won't, don't, its/it's, etc. Differential Revision: https://developer.blender.org/D11663 Reviewed by Harley Acheson
2021-04-21Curve modifiers: Disable 'Apply on Spline' option if not availablePhilipp Oeser
Some curve modifiers (namely Hook, SoftBody and MeshDeform) can only work on pre-tesselated spline points. Before the modifier UI refactor in rB9b099c86123f, users would get the 'Apply on Spline' option, but disabled and with a tip explaining why this cant be changed. After rB9b099c86123f though, this button was always enabled [but disfunctional] leaving the user without an explanation why this has no effect. Now restore this functionality since it is quite important information. Additionally, this button now appears to be ON in these cases which makes more sense from the user perspective (so it does not represent the actual setting on the modifier -- this would internally be switched ON in the modifier calculation anyways though, see 'curve_get_tessellate_point') Differential Revision: https://developer.blender.org/D11029
2021-04-11Cleanup: use ELEM, STREQ macrosCampbell Barton
2021-03-09Cleanup: Do not pass stack allocated string to MEM_callocNHans Goudey
2021-01-22Fix: Mouse presses in some areas do not set active modifierHans Goudey
There are a couple of operations that are meant to set the active modifier that currently don't. The first is a mouse press on the drag icon on the right of the header, and the second is mouse presses on modifier sub-panels headers. This was an oversight in the implementation, especially the second, because the blank space on the right of a sub-panel header often looks just like the blank space elsewhere on the modifier's panel that *does* set the active modifier. Note that this purposefully doesn't include collapsing and expanding the modifier as operations that set the active, since regardless of whether that makes sense, it wasn't in the agreed upon design, which would ideally not need changing for 2.92. Differential Revision: https://developer.blender.org/D10155
2021-01-11Collision: allow disabling collision without removing the modifier.Alexander Gavrilov
The `object.collision.use` flag was treated as a redundant marker of the existence of the modifier, going as far as adding/removing it when the value was changed, which is not actually very useful. Removing the modifier loses its position in the stack, and requires a dependency graph rebuild. It feels it may be a legacy flag? What would be useful however is the ability to toggle collisions dynamically without removing the modifier. This patch adjusts the code to keep the modifier when the flag is disabled, and add it if it doesn't exist when the flag is enabled. The modifier now checks the flag at the start and quickly exits after cleaning up stale data. The redesigned setting is exposed in the UI. Collisions can't be disabled by simply using the modifier enable flags because the modifier merely saves a snapshot of the mesh at a certain point of the modifier stack for other objects to use, and thus has to be able to clear the stale data. Differential Revision: https://developer.blender.org/D10064
2020-12-28Add operator to copy a modifier to all selected objectsErik Abrahamsson
These two operators (one for grease pencil, one for other objects) copy a single modifier from the active object to all selected objects. The operators are exposed in the dropdown menus in modifier headers. Note that It's currently possible to drag and drop modifiers between objects in the outliner, but that only works for dragging to one object at a time. Modifiers can also be copied with the "Make Links" operator, but that copies *all* modifiers rather than just one. The placement and scope of these new operators allow for more useful poll messages and error messages as well. Every object type that supports modifiers is supported. Although hook and collision modifiers aren't supported because of an unexplained comment in `BKE_object_copy_modifier`, other than that, every modifier type is supported, including particle systems, nodes modifiers, etc. The new modifiers are set active, which required two small tweaks to `object.c` and `particle.c`. Reviewed By: Hans Goudey (with additional edits) Differential Revision: https://developer.blender.org/D9537
2020-12-14UI: Click modifier icon to set active modifierHans Goudey
This should be a final piece of the changes for the active modifier interface. Before, it was necessary to click on the blank space of a modifier panel to set it active (not the header), this commit allows clicking on the icon also. The spacing with the spacing with the expand button would ideally be a bit larger, but the layout system doesn't offer much flexibility here.
2020-12-02Cleanup: Store "is_active" instead of pointer property in panel typeHans Goudey
This is consistent with the way other panel type fields are stored.
2020-12-02Geometry Nodes: active modifier + geometry nodes editorHans Goudey
This commit adds functions to set and get the object's active modifier, which is stored as a flag in the ModifierData struct, similar to constraints. This will be used to set the context in the node editor. There are no visible changes in this commit. Similar to how the node editor context works for materials, this commit makes the node group displayed in the node editor depend on the active object and its active modifier. To keep the node group from changing, just pin the node group in the header. * Shortcuts performed while there is an active modifier will affect only that modifier (the exception is the A to expand the modifiers). * Clicking anywhere on the empty space in a modifier's panel will make it active. These changes require some refactoring of object modifier code. First is splitting up the modifier property invoke callback, which now needs to be able to get the active modifier separately from the hovered modifier for the different operators. Second is a change to removing modifiers, where there is now a separate function to remove a modifier from an object's list, in order to handle changing the active. Finally, the panel handler needs a small tweak so that this "click in panel" event can be handled afterwards.
2020-11-13Cleanup: Make panel type flag names more clearHans Goudey
The overlap with the `Panel` flags that start with "PNL" was quite confusing because wasn't clear which enum a flag was from. The new names are a bit longer, but the clarity is worth it.
2020-10-24UI: Capitalization CorrectionsYevgeny Makarov
Approximately 141 changes of capitalization to conform to MLA title style. Differential Revision: https://developer.blender.org/D8392 Reviewed by Julian Eisel
2020-10-19Cleanup: Use BLI string functionsHans Goudey
It's better not to assume that strings passed as arguments will have the proper size.
2020-09-02UI: Use instanced panel custom data instead of list indexHans Goudey
For modifier shortcuts we added a "custom_data" field to panels. This commit uses the same system for accessing the list data that corresponds to each panel. This way the context is only used once and the modifier for each panel can be accessed more easily later. This ends up being mostly a cleanup commit with a few small changes in interface_panel.c. The large changes in the UI functions are due to the fact that the panel custom data is now passed around as a single pointer instead of being created again for every panel. The list_index variable in Panel.runtime is removed as it's now unnecessary. Differential Revision: https://developer.blender.org/D8559
2020-08-07Cleanup: Modifiers, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/modifiers` module. No functional changes.
2020-07-08Apply Modifier: support applying as shape key and keeping the modifier.Alexander Gavrilov
This can be useful to save the result of a cloth simulation as a shape key without destroying the simulation, so it's possible to e.g. re-run it to get other shapes, or simply use the new shape key to start the simulation already in a draped state. It also makes sense to allow applying as shape key even when the mesh is shared, because the operation itself just adds a shape key. To support this, split the apply operator into Apply and Apply As Shapekey so that they can have different poll callbacks. Differential Revision: https://developer.blender.org/D8173
2020-07-03Cleanup: Deduplicate code for finding context objectHans Goudey
Instead of manually checking the pinned object, use the existing ED_object_active_context function. This requires adding const to the context in that function.
2020-07-02Fix T78513: Modifier apply shortcut not displayedHans Goudey
We can't specify the "apply_as" enum value, even though it's the default.
2020-06-30Cleanup: spellingCampbell Barton
2020-06-29UI: Don't show modifier operation reports on button pressHans Goudey
The reports should only show when using shortcuts.
2020-06-29UI: Add shortcuts for modifier panelsHans Goudey
The shortcuts act on the modifier with its panel under the mouse. The following shortcuts are enabled by default: - Remove modifier: X, Delete - Apply modifier: Ctrl A - Duplicate modifier: Shift D More shortcuts can be added in the keymap. Each panel can now store a custom data RNA pointer, and a new function is added to get the custom data for the panel under the cursor. This custom data could be used to refactor the "List Panel System" to generalize it and integrate it further with RNA. The same functionality will be added in further commits where it applies to constraints, grease pencil modifiers, and effects. Differential Revision: https://developer.blender.org/D8031
2020-06-25Cleanup: spellingCampbell Barton
2020-06-22Fix (unreported) broken UI of modifiers for liboverrides.Bastien Montagne
Broken in recent refactor of modifiers UI code...
2020-06-19Cleanup: SpellingHans Goudey
2020-06-17UI: Solve crash with move to index in modifier menuHans Goudey
2020-06-17UI: Improve Modifier Panel Header MenuHans Goudey
This makes a few changes to the modifier panel header: 1. Adds "move to top" and "move to bottom" buttons. 2. Adds a checkmark icon for "apply" 3. Makes it narrower, the text is closer to the dropdown icon. (Requires the change in ui_block_func_POPUP) Differential Revision: https://developer.blender.org/D8040
2020-06-17UI: Modifier Panel Header ImprovementsHans Goudey
This includes a few improvments: 1. Always expose delete. This is the button everyone wants the most, it makes a lot of sense to expose this. 2. Improve "name hiding capability." Basically always align the mode buttons to the right, and count their number to see if the name fits. 3. Aligns more items, to look better, save space, and make the whole header seem more grouped. 4. In my tests the "switch contexts" button never coincides with the delete button, so they share the same space. Differential Revision: https://developer.blender.org/D8037
2020-06-09Fix missing animation decorators for pointer buttonsJulian Eisel
Also, remove manually placed decorator for vertex groups in modifiers. This was only needed because of this bug, and the layout was slightly misaligned.
2020-06-05UI: Drag and Drop Modifiers, Layout UpdatesHans Goudey
This patch implements the list panel system D7490 for modifiers. It also moves modifier drawing to a callback in ModifierTypeInfo in line with the extensible architecture refactoring goal T75724. This adds a PanelRegister callback and utilities for registering panels and subpanels. It also adds the callbacks for expansion saving and drag and drop reordering described in D7490. These utilities, callbacks, and other common UI elements shared between modifiers live in MOD_ui_common.c. Because modifier buttons are now in panels, we can make use of subpanels for organization. The UI layouts also use the single column layout style consistently used elsewhere in Blender. Additionally, the mode-setting buttons are aligned and ordered consistently with the outliner. However, the large number of UI changes in this patch may mean that additional polishing is required in master. Thanks to William Reynish (@billreynish) who did a fair amount of the layout work and to Julian Eisel (@Severin) for consistent help. Differential Revision: https://developer.blender.org/D7498