Age | Commit message (Collapse) | Author |
|
Discovered an unused panel runtime flag as well, which this commit
removes.
|
|
While this isn't an issue with the default configuration it's possible
to register extra header types for a single region.
In this case the first header-type to successfully poll is drawn
without drawing other header types.
This issue was raised by T60195.
|
|
Also cleaned up some grammar and wording issues, and switched a case
in an if statement to remove a double negative.
|
|
This replace the use of GPU_line_width by the specialized
GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR shader.
|
|
|
|
Adds an optional slider to the action constraint so that it can be
driven without a constraint target.
This is very helpful for more complex rigging and mechanical rigs, as it
means the action constraint can be controlled with a driver/custom
property directly, currently if we want to use a driver to control it we
must add a "dummy" bone/object inbetween to act as a control.
Reviewed By: Sebastian Parborg, Sybren A. Stüvel, Demeter Dzadik, Julian Eisel
Differential Revision: http://developer.blender.org/D8022
|
|
Currently, it's difficult to use the NLA system for users who are only
interested in using it as animation layers.
Entering tweak mode hides strips which are not evaluated. If the user
wanted to edit a different strip, they must exit tweak mode, look for
the strip, select it then re-enter tweak mode.
Solution:
All strips are always shown. The user can now see the next strip they
want to start editing.
Reviewed By: Sybren, Sebastian Parborg
Differential Revision: http://developer.blender.org/D7600
|
|
Previously, it was kind of a mess. In different places it was using `char`, `short` and `int`.
The changed properties are flags that are operated upon using bit operations. Therefore, the integer type should be unsigned. Since we only use 2 bits of these flags, `uint8_t` is large enough.
Especially note the change I had to make in `RNA_define.h` to make this work.
Reviewers: campbellbarton
Differential Revision: https://developer.blender.org/D8844
|
|
When Showing Meta data for an image where the buffer does not exist
(missing file) it crashed. This patch removes the check on the image and
only checks the availability of the buffer.
|
|
|
|
This commit makes grid theming more consistent and capable by adding
some new theme colors related to grid rendering.
- Add grid theme color for node editor. `UI_view2d_multi_grid_draw`
is called with TH_GRID instead of a shaded `TH_BACK`.
Also color-blend `TH_NODE_GROUP`.
- Make the movie clip editor's clip preview grid respect grid theme
color (`ED_region_grid_draw` uses color-blended `TH_GRID`).
- Add versioning code to allow fixing existing themes (the resulting
themes should visually look the same as before)
These changes did cause some inconsistencies in the movie clip editor,
even after adjusting the themes accordingly:
1. The alpha slider of the grid color affects the background and not
the grid lines themselves.
2. The grids used by graph and dopesheet mode could already be themed
in the past. Now that the clip preview's grid can also be themed,
two different modes share the same theme color.
Differential Revision: https://developer.blender.org/D8699
|
|
This adds an operator to allow drag and drop of modifiers, constraints,
and shader effects within the outliner. Referred to as "data stack" in
the code for simplicity.
The following operations are allowed:
* Reordering within an object or bone
* Copying a single modifier/constraint/effect to another object or bone
* Copying (linking) all modifiers/constraints/effects to another object
or bone.
This complements the recent work done for panel-based modifier layouts
by allowing reordering in the outliner. It also makes it simple to copy
a single modifier/constraint/effect to another object.
Differential Revision: https://developer.blender.org/D8642
|
|
Adds functions to copy a modifier between objects, and an ED_ level
function for linking modifiers between objects. This will be used in
outliner modifier drag and drop.
These functions support both regular and grease pencil modifiers.
Differential Revision: https://developer.blender.org/D8642
|
|
Add functions to copy a single constraint between objects or between
bones, and another function to link constraints. This is in preparation
for constraint drag and drop in the outliner.
Differential Revision: https://developer.blender.org/D8642
|
|
Move the notifiers and DEG tagging to the ED_* level functions for
modifiers and gpencil shaderfx in preparation for outliner modifier and
shaderfx drag and drop. No functional changes.
Differential Revision: https://developer.blender.org/D8642
|
|
No functional changes. Move the constraint reordering logic into an ED_
level function to be used by outliner constraint drag and drop.
Differential Revision: https://developer.blender.org/D8642
|
|
Adds two functions: one to copy a shaderfx between two gpencil objects,
and another to link all shaderfx between two gpencil objects. Added in
preparation for outliner shaderfx drag and drop.
Differential Revision: https://developer.blender.org/D8642
|
|
Stack panels (for modifiers, etc..) also get their expansion from their
associated list data. This means that property search expansion needs
to properly update the list data, which can be accomplished by calling
`set_panels_list_data_expand_flag`.
This commit also moves this logic to `UI_panels_end`, where it fits
better.
|
|
This commit moves the "get panel expansion from list data" function to
UI_panels_end, which is an improvement because it's more centralized.
|
|
Adds a new hierarchy line that draws to the left of collections. If the
collection is color tagged, then the hierarchy line is drawn in that
color. This is useful to see the color tag of a collection that exceeds
the vertical height of the outliner when expanded.
This also modifies the object hierarchy line drawing to match the new
collection hierarchy line, with no horizontal lines, and moved a unit to
the left. Object lines are not drawn colored.
Manifest Task: https://developer.blender.org/T77777
Differential Revision: https://developer.blender.org/D8622
|
|
This replaces the collection icon with the filled collection icon.
If the collection is color tagged, then the icon draws in the tagged
color.
Manifest Task: https://developer.blender.org/T77777
Differential Revision: https://developer.blender.org/D8622
|
|
This adds a new operator to the outliner context menu. The collections
context menu now shows inline icons to set the color tag for all
selected collections.
Manifest Task: https://developer.blender.org/T77777
Differential Revision: https://developer.blender.org/D8622
|
|
A follow-up to rbe17df47303e1. Fix the horizontal spacing of aligned row
icon buttons in menus.
|
|
Draw color tagged collection icons in the link to collection, add
collection instance, collection instance search, and remove collection
menus.
Manifest Task: https://developer.blender.org/T77777
Differential Revision: https://developer.blender.org/D8622
|
|
This adds color tagging to collections. There are 8 color
options which are themable in the user preferences, with an additional
option for no color tag by default.
This adds a new filled collection icon and 8 colored variants of the
icon that can be themed in the user preferences.
In this commit the only interface to setting the color tags is through
Python, and there is nowhere in the interface where the collections are
shown colored. Setting and viewing the color tags from the outliner will
follow.
Manifest Task: https://developer.blender.org/T77777
Differential Revision: https://developer.blender.org/D8622
|
|
`ctrl-F` to start the search is obviously necessary, but the clear
operator, `alt-F` requires some of explanation. First, it maps nicely
to the paradigm of "key to set, alt-key to clear," which makes it
unobtrusive. Second, it can be a quicker way to clear the search than
moving the mouse to the top. Finally, in the future, it could a reset
the panels to their expansion before the search started.
Differential Revision: https://developer.blender.org/D8857
|
|
This adds a search bar to the properties editor. The full search for
every tab isn't included in this patch, but the interaction with
panels, searching behavior, UI, region level, and DNA changes are
included here.
The block-level search works by iterating over the block's button
groups and checking whether they match the search. If they do, they
are tagged with a flag, and the block's panel is tagged too. For
every update (text edit), the panel's expansion is set to whether
the panel has a result or not. The search also checks for matching
strings inside enums and in panel labels.
One complication to this that isn't immediately apparent is that
closed panel's subpanels have to be searched too. This adds some
complexity to the area-level panel layout code.
Possible Future Improvements:
- Use the new fuzzy search in BLI
- Reset panels to their expansion before the search started if
the user escape out of the text box.
- Open all child panels of a panel with expansion.
Differential Revision: https://developer.blender.org/D8856
|
|
Those constraints are added when using AutoIK (or targetless IK as
well).
While not strictly incorrect, these kinds of constraints were not
showing in the UI prior to rBeaa44afe703e (and I think they should not).
ref T80437
Maniphest Tasks: T80437
Differential Revision: https://developer.blender.org/D8895
|
|
The context path "breadcrumbs" used to be in a panel in 2.79.
Although they look a bit better in the header, there isn't enough
space for them with the property search field in the header as well.
Maybe there will be another solution in the long term to fit both
the search field and this panel in the header, but for now, this
commit moves these labels back to a header-less panel.
Differential Revision: https://developer.blender.org/D8853
|
|
This is needed for property search (upcoming patch D8856) where a
buttons labels are often separate buttons, but we need to highlight
the label to show that a property is a search result. This is
especially important in "property split" layouts where the label is
almost always another button in a separate column.
The button groups here are basically a flattened view of the buttons
in the layout tree. Every function that adds a new set of buttons
creates a new button group, and the new buttons are automatically
added to the most recent group. Then, each group is searched
separately in the property search phase. It's important that every
function adding a new button set calls layout_root_new_button_group.
Note that this won't be disabled when property search isn't active.
It may be useful for other things in the future, and trying to pass
that information to layout functions didn't feel worth it to me.
Differential Revision: https://developer.blender.org/D8783
|
|
A parameter was added during development, but it was not needed and was
never removed. No functional changes.
|
|
Add an option to only draw icons for operator_enum menus. This is used
for drawing inline icon buttons in the outliner context menu for
collection color tagging.
Part of T77408
Differential Revision: https://developer.blender.org/D8880
|
|
This adds support for drawing icon buttons as a row in menus. This is
needed for drawing collection color tagging icons in the outliner
context menu in T77777.
Part of T77408
Differential Revision: https://developer.blender.org/D8317
|
|
This was just an oversight from refactoring this code in
rBfaeaf5325554e37981424ded5add7bf2df484c55
|
|
|
|
|
|
Make "Frame All" share functionality with "Frame Selected",
accounting for duplis when calculating the bounds.
|
|
|
|
Regression in 12bc34b0b81b1, add assert so this doesn't happen again.
|
|
|
|
Getting the string for a specific context is a basic thing that can be
its own function. This way it can also be reused in other functions.
|
|
The ED_region_panels_layout_ex function was quite long, so separating
some pieces of it can make it easier to understand and more modular.
Additionally, the parts that were split off can be reused for future
property search code.
|
|
Remove the condition preventing orientation from being obtained out of
the 3d View context.
Also pass the `ob` and `obedit` arguments obtained from the caller.
|
|
Make it obvious which values are written to.
|
|
Oversight in 411c5238a2fef ignored sticky selection.
Use 'uvedit_edge_select_set_with_sticky' to make sure
sticky options are respected.
Also skip checking the existing selection since that only checks the
current UV, not all connected UV's which is needed for sticky selection.
The extra checks to avoid updating UV's isn't such an advantage as
only meshed in the selected region are tagged for updating.
|
|
Write custom properties (aka ID properties) to Alembic, to the
`.userProperties` compound property.
Manifest Task: https://developer.blender.org/T50725
Scalar properties (so single-value/non-array properties) are written as
single-element array properties to Alembic. This is also what's done by
Houdini and Maya exporters, so it seems to be the standard way of doing
things. It also simplifies the implementation.
Two-dimensional arrays are flattened by concatenating all the numbers
into a single array. This is because ID properties have a limited type
system. This means that a 3x3 "matrix" could just as well be a list of
three 3D vectors.
Alembic has two container properties to store custom data:
- `.userProperties`, which is meant for properties that aren't
necessarily understood by other software packages, and
- `.arbGeomParams`, which can contain the same kind of data as
`.userProperties`, but can also specify that these vary per face of a
mesh. This property is mostly intended for renderers.
Most industry packages write their custom data to `.arbGeomParams`.
However, given their goals I feel that `.userProperties` is the more
appropriate one for Blender's ID Properties.
The code is a bit more involved than I would have liked. An
`ABCAbstractWriter` has a `uniqueptr` to its `CustomPropertiesExporter`,
but the `CustomPropertiesExporter` also has a pointer back to its owning
`ABCAbstractWriter`. It's the latter pointer that I'm not too happy
with, but it has a reason. Getting the aforementioned `.userProperties`
from the Alembic library will automatically create it if it doesn't
exist already. If it's not used to actually add custom properties to, it
will crash the Alembic CLI tools (and maybe others too). This is what
the pointer back to the `ABCAbstractWriter` is used for: to get the
`.userProperties` at the last moment, when it's 100% sure at least one
custom property will be written.
Differential Revision: https://developer.blender.org/D8869
Reviewed by: sergey, dbystedt
|
|
The last usage was removed in {rB4eda60c2d82de0d7f7ded8ddf1036aea040e9c0d}.
|
|
Running `bpy.ops.script.reload()` from Python was crashing
since the operator being called was it's self freed.
Change the reload operator to defer execution - as supporting
re-registration during execution is quite involved for a corner-case.
|
|
Also added code so that exact solver does the whole collection at once.
This patch allows users to use a collection (as an alternative to Object)
for the boolean modifier operand, and therefore get rid of a long modifier stack.
|
|
|