Anim: remove bone groups from the outliner
Bone groups have been replaced by bone collections. The data in DNA is there just for versioning & forward compatibility, so the UI elements are being removed from Blender 4.0.
This commit is contained in:
parent
1b3141c06e
commit
d7e9497a06
|
@ -78,7 +78,6 @@ set(SRC
|
|||
tree/tree_element_overrides.cc
|
||||
tree/tree_element_particle_system.cc
|
||||
tree/tree_element_pose.cc
|
||||
tree/tree_element_pose_group.cc
|
||||
tree/tree_element_rna.cc
|
||||
tree/tree_element_scene_objects.cc
|
||||
tree/tree_element_seq.cc
|
||||
|
@ -121,7 +120,6 @@ set(SRC
|
|||
tree/tree_element_overrides.hh
|
||||
tree/tree_element_particle_system.hh
|
||||
tree/tree_element_pose.hh
|
||||
tree/tree_element_pose_group.hh
|
||||
tree/tree_element_rna.hh
|
||||
tree/tree_element_scene_objects.hh
|
||||
tree/tree_element_seq.hh
|
||||
|
|
|
@ -822,21 +822,6 @@ static void namebutton_fn(bContext *C, void *tsep, char *oldname)
|
|||
DEG_id_tag_update(&arm->id, ID_RECALC_COPY_ON_WRITE);
|
||||
break;
|
||||
}
|
||||
case TSE_POSEGRP: {
|
||||
Object *ob = (Object *)tselem->id; /* id = object. */
|
||||
bActionGroup *grp = static_cast<bActionGroup *>(te->directdata);
|
||||
|
||||
BLI_uniquename(&ob->pose->agroups,
|
||||
grp,
|
||||
CTX_DATA_(BLT_I18NCONTEXT_ID_ACTION, "Group"),
|
||||
'.',
|
||||
offsetof(bActionGroup, name),
|
||||
sizeof(grp->name));
|
||||
WM_msg_publish_rna_prop(mbus, &ob->id, grp, ActionGroup, name);
|
||||
WM_event_add_notifier(C, NC_OBJECT | ND_POSE, ob);
|
||||
DEG_id_tag_update(tselem->id, ID_RECALC_COPY_ON_WRITE);
|
||||
break;
|
||||
}
|
||||
case TSE_GP_LAYER: {
|
||||
bGPdata *gpd = (bGPdata *)tselem->id; /* id = GP Datablock */
|
||||
bGPDlayer *gpl = static_cast<bGPDlayer *>(te->directdata);
|
||||
|
@ -2813,8 +2798,6 @@ TreeElementIcon tree_element_get_icon(TreeStoreElem *tselem, TreeElement *te)
|
|||
case TSE_R_LAYER:
|
||||
data.icon = ICON_RENDER_RESULT;
|
||||
break;
|
||||
case TSE_POSEGRP_BASE:
|
||||
case TSE_POSEGRP:
|
||||
data.icon = ICON_GROUP_BONE;
|
||||
break;
|
||||
case TSE_SEQUENCE: {
|
||||
|
@ -3196,7 +3179,6 @@ static void outliner_draw_iconrow(bContext *C,
|
|||
TSE_BONE,
|
||||
TSE_EBONE,
|
||||
TSE_POSE_CHANNEL,
|
||||
TSE_POSEGRP,
|
||||
TSE_DEFGROUP))
|
||||
{
|
||||
outliner_draw_iconrow_doit(block, te, xmax, offsx, ys, alpha_fac, active, 1);
|
||||
|
|
|
@ -318,7 +318,6 @@ static void do_item_rename(ARegion *region,
|
|||
TSE_MODIFIER_BASE,
|
||||
TSE_DRIVER_BASE,
|
||||
TSE_POSE_BASE,
|
||||
TSE_POSEGRP_BASE,
|
||||
TSE_R_LAYER_BASE,
|
||||
TSE_SCENE_COLLECTION_BASE,
|
||||
TSE_VIEW_COLLECTION_BASE,
|
||||
|
|
|
@ -506,15 +506,6 @@ static void tree_element_grease_pencil_layer_activate(bContext *C,
|
|||
}
|
||||
}
|
||||
|
||||
static void tree_element_posegroup_activate(bContext *C, TreeElement *te, TreeStoreElem *tselem)
|
||||
{
|
||||
Object *ob = (Object *)tselem->id;
|
||||
if (ob->pose) {
|
||||
ob->pose->active_group = te->index + 1;
|
||||
WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob);
|
||||
}
|
||||
}
|
||||
|
||||
static void tree_element_posechannel_activate(bContext *C,
|
||||
const Scene *scene,
|
||||
ViewLayer *view_layer,
|
||||
|
@ -863,8 +854,6 @@ void tree_element_type_active_set(bContext *C,
|
|||
case TSE_R_LAYER:
|
||||
tree_element_viewlayer_activate(C, te);
|
||||
break;
|
||||
case TSE_POSEGRP:
|
||||
tree_element_posegroup_activate(C, te, tselem);
|
||||
break;
|
||||
case TSE_SEQUENCE:
|
||||
tree_element_sequence_activate(C, tvc->scene, te, set);
|
||||
|
@ -991,22 +980,6 @@ static eOLDrawState tree_element_viewlayer_state_get(const bContext *C, const Tr
|
|||
return OL_DRAWSEL_NONE;
|
||||
}
|
||||
|
||||
static eOLDrawState tree_element_posegroup_state_get(const Scene *scene,
|
||||
ViewLayer *view_layer,
|
||||
const TreeElement *te,
|
||||
const TreeStoreElem *tselem)
|
||||
{
|
||||
const Object *ob = (const Object *)tselem->id;
|
||||
|
||||
BKE_view_layer_synced_ensure(scene, view_layer);
|
||||
if (ob == BKE_view_layer_active_object_get(view_layer) && ob->pose) {
|
||||
if (ob->pose->active_group == te->index + 1) {
|
||||
return OL_DRAWSEL_NORMAL;
|
||||
}
|
||||
}
|
||||
return OL_DRAWSEL_NONE;
|
||||
}
|
||||
|
||||
static eOLDrawState tree_element_sequence_state_get(const Scene *scene, const TreeElement *te)
|
||||
{
|
||||
const TreeElementSequence *te_seq = tree_element_cast<TreeElementSequence>(te);
|
||||
|
@ -1183,8 +1156,6 @@ eOLDrawState tree_element_type_active_state_get(const bContext *C,
|
|||
return OL_DRAWSEL_NONE;
|
||||
case TSE_R_LAYER:
|
||||
return tree_element_viewlayer_state_get(C, te);
|
||||
case TSE_POSEGRP:
|
||||
return tree_element_posegroup_state_get(tvc->scene, tvc->view_layer, te, tselem);
|
||||
case TSE_SEQUENCE:
|
||||
return tree_element_sequence_state_get(tvc->scene, te);
|
||||
case TSE_SEQUENCE_DUP:
|
||||
|
@ -1389,15 +1360,6 @@ static void outliner_set_properties_tab(bContext *C, TreeElement *te, TreeStoreE
|
|||
context = BCONTEXT_VIEW_LAYER;
|
||||
break;
|
||||
}
|
||||
case TSE_POSEGRP_BASE:
|
||||
case TSE_POSEGRP: {
|
||||
Object *ob = (Object *)tselem->id;
|
||||
bArmature *arm = static_cast<bArmature *>(ob->data);
|
||||
|
||||
ptr = RNA_pointer_create(&arm->id, &RNA_Armature, arm);
|
||||
context = BCONTEXT_DATA;
|
||||
break;
|
||||
}
|
||||
case TSE_LINKED_PSYS: {
|
||||
Object *ob = (Object *)tselem->id;
|
||||
ParticleSystem *psys = psys_get_current(ob);
|
||||
|
|
|
@ -334,9 +334,6 @@ TreeElement *AbstractTreeDisplay::add_element(ListBase *lb,
|
|||
else if (ELEM(type, TSE_POSE_BASE, TSE_POSE_CHANNEL)) {
|
||||
/* pass */
|
||||
}
|
||||
else if (ELEM(type, TSE_POSEGRP, TSE_POSEGRP_BASE)) {
|
||||
/* pass */
|
||||
}
|
||||
else if (ELEM(type, TSE_R_LAYER, TSE_R_LAYER_BASE)) {
|
||||
/* pass */
|
||||
}
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
#include "tree_element_overrides.hh"
|
||||
#include "tree_element_particle_system.hh"
|
||||
#include "tree_element_pose.hh"
|
||||
#include "tree_element_pose_group.hh"
|
||||
#include "tree_element_rna.hh"
|
||||
#include "tree_element_scene_objects.hh"
|
||||
#include "tree_element_seq.hh"
|
||||
|
@ -176,13 +175,6 @@ std::unique_ptr<AbstractTreeElement> AbstractTreeElement::create_from_type(const
|
|||
return std::make_unique<TreeElementPoseChannel>(legacy_te,
|
||||
*reinterpret_cast<Object *>(owner_id),
|
||||
*static_cast<bPoseChannel *>(create_data));
|
||||
case TSE_POSEGRP_BASE:
|
||||
return std::make_unique<TreeElementPoseGroupBase>(legacy_te,
|
||||
*reinterpret_cast<Object *>(owner_id));
|
||||
case TSE_POSEGRP:
|
||||
return std::make_unique<TreeElementPoseGroup>(legacy_te,
|
||||
*reinterpret_cast<Object *>(owner_id),
|
||||
*static_cast<bActionGroup *>(create_data));
|
||||
case TSE_MODIFIER_BASE:
|
||||
return std::make_unique<TreeElementModifierBase>(legacy_te,
|
||||
*reinterpret_cast<Object *>(owner_id));
|
||||
|
|
|
@ -64,11 +64,6 @@ void TreeElementIDObject::expand_pose() const
|
|||
return;
|
||||
}
|
||||
add_element(&legacy_te_.subtree, &object_.id, nullptr, &legacy_te_, TSE_POSE_BASE, 0);
|
||||
|
||||
/* Pose Groups */
|
||||
if (!BLI_listbase_is_empty(&object_.pose->agroups)) {
|
||||
add_element(&legacy_te_.subtree, &object_.id, nullptr, &legacy_te_, TSE_POSEGRP_BASE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void TreeElementIDObject::expand_materials() const
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
/** \file
|
||||
* \ingroup spoutliner
|
||||
*/
|
||||
|
||||
#include "DNA_action_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
#include "DNA_outliner_types.h"
|
||||
|
||||
#include "BLI_listbase.h"
|
||||
|
||||
#include "BLT_translation.h"
|
||||
|
||||
#include "../outliner_intern.hh"
|
||||
|
||||
#include "tree_element_pose_group.hh"
|
||||
|
||||
namespace blender::ed::outliner {
|
||||
|
||||
TreeElementPoseGroupBase::TreeElementPoseGroupBase(TreeElement &legacy_te, Object &object)
|
||||
: AbstractTreeElement(legacy_te), object_(object)
|
||||
{
|
||||
BLI_assert(legacy_te.store_elem->type == TSE_POSEGRP_BASE);
|
||||
legacy_te.name = IFACE_("Bone Groups");
|
||||
}
|
||||
|
||||
void TreeElementPoseGroupBase::expand(SpaceOutliner & /*space_outliner*/) const
|
||||
{
|
||||
int index;
|
||||
LISTBASE_FOREACH_INDEX (bActionGroup *, agrp, &object_.pose->agroups, index) {
|
||||
add_element(&legacy_te_.subtree, &object_.id, agrp, &legacy_te_, TSE_POSEGRP, index);
|
||||
}
|
||||
}
|
||||
|
||||
TreeElementPoseGroup::TreeElementPoseGroup(TreeElement &legacy_te,
|
||||
Object & /* object */,
|
||||
bActionGroup &agrp)
|
||||
: AbstractTreeElement(legacy_te), /* object_(object), */ agrp_(agrp)
|
||||
{
|
||||
BLI_assert(legacy_te.store_elem->type == TSE_POSEGRP);
|
||||
legacy_te.name = agrp_.name;
|
||||
legacy_te.directdata = &agrp_;
|
||||
}
|
||||
|
||||
} // namespace blender::ed::outliner
|
|
@ -1,35 +0,0 @@
|
|||
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
/** \file
|
||||
* \ingroup spoutliner
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "tree_element.hh"
|
||||
|
||||
struct Object;
|
||||
struct bActionGroup;
|
||||
|
||||
namespace blender::ed::outliner {
|
||||
|
||||
class TreeElementPoseGroupBase final : public AbstractTreeElement {
|
||||
Object &object_;
|
||||
|
||||
public:
|
||||
TreeElementPoseGroupBase(TreeElement &legacy_te, Object &object);
|
||||
void expand(SpaceOutliner &) const override;
|
||||
};
|
||||
|
||||
class TreeElementPoseGroup final : public AbstractTreeElement {
|
||||
/* Not needed right now, avoid unused member variable warning. */
|
||||
// Object &object_;
|
||||
bActionGroup &agrp_;
|
||||
|
||||
public:
|
||||
TreeElementPoseGroup(TreeElement &legacy_te, Object &object, bActionGroup &agrp);
|
||||
};
|
||||
|
||||
} // namespace blender::ed::outliner
|
|
@ -89,8 +89,6 @@ typedef enum eTreeStoreElemType {
|
|||
/* TSE_LINKED_MAT = 22, */
|
||||
/* NOTE: is used for light group. */
|
||||
/* TSE_LINKED_LAMP = 23, */
|
||||
TSE_POSEGRP_BASE = 24,
|
||||
TSE_POSEGRP = 25,
|
||||
TSE_SEQUENCE = 26, /* NO ID */
|
||||
TSE_SEQ_STRIP = 27, /* NO ID */
|
||||
TSE_SEQUENCE_DUP = 28, /* NO ID */
|
||||
|
|
Loading…
Reference in New Issue