Age | Commit message (Collapse) | Author |
|
Currently the preferences have both tweak and drag threshold,
this is confusing because most actions users would consider
dragging use the 'tweak' setting.
Now one drag threshold is used for both, with a maximum limit of half
the button unit-size in case of dragging UI elements.
|
|
Part of D4323 by @DragMZ
|
|
Causes errors including in some cases.
|
|
We have a display flag already, use it instead.
Object.display is kept in RNA, exposed via a nested struct,
we can move other display options there.
|
|
|
|
Also added keys for toggling harden normals,
and cycling through miter types.
Still to do: add some shortcuts for affecting the
spread value for arc miters.
|
|
Most artists agree that RGB by default is not as flexible as HSV.
It's just the first time it opens anyway, since it will remember whatever
was set last like it always does.
|
|
When one is indirectly linking collections, better add collection to the
scene, than instantiating its objects into master collection of the
scene. That is much cleaner.
Noted/related to T61141.
|
|
ParticleSettings' duplicollection is now a proper refcounting user of
its collection, which will avoid losing it on save/reload.
|
|
Also replace intptr_t -> int (no good reason to cast to intptr here).
|
|
Disabled for until we get actual first tranlation in SVN repo. ;)
Related to T61102.
|
|
Also compare clipping with the draw context instead of
accessing the RegionView3D, currently they're matching
but this might not always be the case.
|
|
The struct name is descriptive,
this isn't going to be confused with other variables.
|
|
|
|
But introduced on 191b8951f7a.
Reported on tracker as a comment on 3f537f30e6b0.
|
|
In that case, we have to consider number of scenes using an object, not
number of collections.
|
|
Issue is, ob->id.us is not relevant anymore here, since several
collection might be referencing it inside of a same scene, that is still
only one usage from user perspective...
Note that for now we are just counting scenes instantiating an object,
time will say wether we need more refined/complete check (as a reminder,
most [all?] other Object usages are *not* refcounting ones).
|
|
|
|
Related to T61334
This initialization avoid any crash when user saves the file while he is drawing a stroke session.
|
|
`uname -p` is unknown on some distros, use posix standard `uname -m`.
|
|
|
|
We still change their base/layer collection visibility, just not what would change the
original ID datablock.
|
|
|
|
|
|
Ideally it would be nice to make all the base parent collections visible as well.
However we do not know this from the outliner.
|
|
Yes, we do can undo an ID deletion now.
However, this requires extra care in UI 'remapping' to new IDs step
(when undoing, we do not fully reload the UI from saved .blend).
Otherwise, new UI (i.e. one from saved .blend file) might reference
IDs that where freed in old bmain (the one before the undo), we cannot
use those to get ID name then, that would be a nasty use-after-free!
To prevent this, we generate a GSet of all valid ID pointers at that
time (i.e. those found in both old and new Main's), and ensure any ID
we try to remap by its name is in that GSet. Otherwise, there is no
possible remapping, just return NULL.
|
|
Main database.
|
|
|
|
While ideally we could have a complete detailed list of deleted IDs,
that would require more work UI wise, think for now we can live with
just a rough summary.
Related to T61209.
|
|
This can be useful to be able to match some random array data with
ListBase array of IDs generated by `set_listbasepointers()`.
|
|
make_duplis_collection() depends on the collection object cache,
which was not freed upon object viewport disable change.
The best way to reproduce the bug was to instance the default
collection, disable the cube, save and re-open the file.
Now even if you set the original cube to be enabled, you wouldn't see
the instanced one until you forced collection cache to be freed (e.g.,
changing a collection disable state.
|
|
Tested on various interface sizes and thick lines.
Reported by Blender Studio animators.
|
|
Fix T61289: Emitting particles from instances not working properly
The first issue has been re-introduced by a code which was dealing
with missing hair after opening the file. That was re-setting all
particle systems all the time because modifier flags were not copied
back to original. This made every modifier run to be seem as an
initial file open.
Now we copy flags back to an original modifier. But also we are
trying to not do any resets unless needed in that case. This way
we can preserve in-memory caches.
Other part of the change is related on re-setting particle system
if number of mesh elements changed. But we only do it if the
modifier has been already evaluated once.
|
|
Previous assumptions about boundary verts always being attached
to edges are now false.
|
|
Mistakenly had left a debugging assignment that disabled
the offset pass. This commit re-enables it.
|
|
Caused by an error in rBe65784a0519e.
And since we are going over loop triangles anyways, we can remove the
part quecking for quads [remainder of tessface era] entirely.
Reviewers: campbellbarton
Maniphest Tasks: T61309
Differential Revision: https://developer.blender.org/D4324
|
|
|
|
|
|
Mainly 'X' icon for Delete, which was already on modifiers and constraints,
but not for objects. Select icon for object selection and refresh for library reload.
|
|
Show One Level, Hide One Level, Show Active, Show Hierarchy were taking
four items on the context menu when they are not accessed that often
from the context menu (they all have shortcuts).
The "View" name is used to match other editors View menus.
|
|
Mainly the first of their category or when they need to be highlighted:
* Delete
* Enable Viewport/Render (match icons to make a visual connection)
* ViewLayers (it's used pretty often so it makes it easier to find)
Also group Show/Show All, Hide/Hide All together.
|
|
Only flush copy-on-write to animation when user makes changes.
|
|
|
|
Need to use local clipping planes in this case
|
|
source data layers.
Originally, when transferring all source data layers to destination
meshes, code would abort in case destination did not have all needed
layers, and creating them was not allowed.
Now, it will instead transfer data to layers that exists, merely
skipping source ones for which it cannot find a matching destination.
|
|
|
|
Ghost event handling code works this way.
|
|
Wasn't obvious it's related to orientation,
also term manipulator is no longer in use.
|
|
|
|
|