Annoyance was that operators that defined and __init__ function would need to do...
def __init__(self, another_self):
....
py/rna was calling the class directly with PyObject_Call() but needed to pass the pre-allocated object only so __init__() would run .
This works OK internally but becomes messy since __new__ and __init__ always get the same args there was no way to avoid a superfluous self argument to __init__.
WM_modal_tweak_exit() was making incorrect use of the user-pref option
"Release Confirms Transform", indicated by confused coder comment
(<quote>"XXX: WTH is this?"</quote>).
This manisfested when moving markers by just click-dragging and
existing marker, and having it "drop" whereever the mouse was released
regardless of the user-pref option. This was quite confusing as it was
inconsistent with the way that all other transforms worked when this
option is off, where you would usually start the transform (click-
drag), release the button, move around a bit, and then finally click
to end.
problem and crash
- It turns out we still need the "copyob" still, if for nothing other
than making sure that the unkeyed transforms can get restored. This
was removed originally as I thought that just reevaluating the
animation would work.
- Removed a buggy line of logic that was causing crashes when there
was no animation data. It's better to just assume that if animation
data exists, that something exists there.
- Make Duplicates Real was not clearing data such as the new animation
data or constraints.
I have no idea why this hasn't been implemented before (the DEFINES were even there already). But since the Ipo (Fcurve) Actuator supports it I don't see why Action and ShapeKey shouldn't.
More than a new feature or a bugfix this is actually a step forward into unifying them.
From the patch description:
"A new panel is proposed to bring togheter all the properties of a material that belong to the render pipeline level.
Such properties are currently not mixable with node materials, as nodes operate on a shader level."
Commiting this patch as approved in the sundy meeting.
Switching layers reveiled hidden objects in wrong positions, changes
are currently not being handled for hidden objects.
Only way to fix it is by completely update newly visible objects...
(Also fixed a typo and a compile warning)
Halo texture: disabling texture slot with [] button didn't work.
Note: halos only allow 1 texture slot, UI allows to add more. This
rna template stuff for texture slots I rather don't touch though...
Removed superfluous blend-mode change which was causing some weird
white lines to appear, especially when using some markers that don't
have any names.
* Particle system's are comparable to texture slots, which can
only exist within an id block. Particle settings on the other
hand are idblocks which should be pinnable just like textures.
* When particle settings are pinned only properties that make
sense without the actual particle system are shown in the
particle panel.
* Now texture pinning works consistently for all textures.
* The only problem is that there is no way to pin textures if there are
no textures in the context path, so it's for example impossible to pin
the texture of a displace modifier without adding a texture somewhere
else and selecting that texture first. I my opinion this is quite
counter productive so perhaps a dedicated "only textures" texture
context option is needed after all.
So, it turns out that dupliframes weren't that bad to restore... the
old version didn't do truly accurate transform freezing as it didn't
update ancestors too. However, as a modelling tool, this will probably
suffice.
* All the various index-related issues should finally be sorted now.
It seems you cannot just partially implement some of these active
index getter/setters...
* Standardised the call used by PoseLib operators to get the Object
from which they get the active PoseLib data from
* PoseLib operators which require some existing data to work now use a
poll() which checks for this
* Added back the operator used to make standard actions into ones
usable by PoseLib
* Added a dummy operator for the apply active pose button which really
just calls the same backend functions as "Browse Interactive", but
which has a nicer frontend (naming + description) for the purpose of
being used in this way
* Also, removed some useless code from here
- Added operator button to show the current pose. This runs on top of
the interactive pose browse functionality, so the tooltip may be a bit
obtuse...
- Specifying a pose for the Pose browse functionality to set now works
correctly. Previously, some old depsgraph hacks were actually
interferring with correct updating (only the armature updated
correctly, but deforms didn't occur)
- Fixed a case of accessing freed memory, which I'm surprised no
static checkers have reportedly picked up on yet, or that nobody has
really had issues with (probably due to low memory "turnaround" so
far)
r34883).
Full description:
When defining an operator button in the UI layout code, trying to set
the value for such an operator's enum properties, where said enum uses
a dynamically generated list of items (which depends on using context
info), will "fail". No context info will be passed to the callbacks
used to generate this list of items, as PROP_ENUM_NO_CONTEXT is still
set on the operator properties (it seems these will only get cleared
when the operator actually runs, which is far too late already for
this usage) so RNA_property_enum_items() will pass NULL instead of a
context pointer *even* when one exists!
I'm not sure of why we even need this flag. It seems to have caused a
few other rounds of problems already, from quick searches I did on
this matter...
This presents a UI from which PoseLibs can be assigned/removed from
Objects. From here, it is also possible to see the list of poses and
add/remove poses from this list.
Known Issues:
- [Py/RNA/Operators BUG ALERT!] If after immediately starting Blender
you try to remove a pose from the PoseLib using the UI buttons, you'll
get a an error the first time you do so (but not for subsequent
attempts). This seems to be caused by the "pose" enum (dynamically
generated) of the POSELIB_OT_pose_remove operator, which does not seem
to be getting initialised when the operator's exec gets called without
the invoke having been called previously
- Changing the active Pose Library still seems to be broken (to be
fixed soon)
Todos:
- Operator button to make the selected pose get shown in the 3d view
- Restore the "validate action" operator and add that to this panel
- Rename pose access
unawaliable state.
- Also changed dynamic space bar menu, so it now also wouldn't allow to
set brush stroke flags to unavaliable state.
Also tried to remove use_anchor, use_space, use_restore_mesh and
use_airbrush, so user would be unable to set flags to unavaliable state,
but it was quite difficult for non-sculpt paint modes. They don't support
all of stroke methods, so brush.stroke_method can't be used for them.
Keep this area unchanged for now.
first and last NURBS' control points (toggle cyclic flag)
- Show U/V selection menu only for surface objects. There's no
much logic in asking U/V direction for simple curves.
- Set active spline when two segments were joined.
- Disallow setting cyclic flag for single-point segment when this lonely
segment is selected
- Clear cyclic flag for single-pointed segments when finding segments which
can be merged