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
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2022-01-13 18:35:32 +0300
committerJulian Eisel <julian@blender.org>2022-01-13 19:01:47 +0300
commit039cc329178e9f7b14f514850479648c38fe1ea3 (patch)
tree6729e63938ab2103606d8048c7a2f52d415e1ec4
parent1a4f8ab38934891e76a56a5c31be02b934f68162 (diff)
Outliner: Compile all Outliner files in C++
We want to refactor quite some of the Outliner code using C++, this is a logical step to help the transition to a new architecture. Includes plenty of fixes to make this compile without warnings, trying not to change logic. The usual stuff (casts from `void *`, designated initializers, compound literals, etc.).
-rw-r--r--source/blender/editors/space_outliner/CMakeLists.txt26
-rw-r--r--source/blender/editors/space_outliner/outliner_collections.cc (renamed from source/blender/editors/space_outliner/outliner_collections.c)150
-rw-r--r--source/blender/editors/space_outliner/outliner_context.cc (renamed from source/blender/editors/space_outliner/outliner_context.c)2
-rw-r--r--source/blender/editors/space_outliner/outliner_dragdrop.cc (renamed from source/blender/editors/space_outliner/outliner_dragdrop.c)75
-rw-r--r--source/blender/editors/space_outliner/outliner_draw.cc (renamed from source/blender/editors/space_outliner/outliner_draw.c)137
-rw-r--r--source/blender/editors/space_outliner/outliner_edit.cc (renamed from source/blender/editors/space_outliner/outliner_edit.c)40
-rw-r--r--source/blender/editors/space_outliner/outliner_intern.hh (renamed from source/blender/editors/space_outliner/outliner_intern.h)0
-rw-r--r--source/blender/editors/space_outliner/outliner_ops.cc (renamed from source/blender/editors/space_outliner/outliner_ops.c)2
-rw-r--r--source/blender/editors/space_outliner/outliner_select.cc (renamed from source/blender/editors/space_outliner/outliner_select.c)89
-rw-r--r--source/blender/editors/space_outliner/outliner_sync.cc (renamed from source/blender/editors/space_outliner/outliner_sync.c)7
-rw-r--r--source/blender/editors/space_outliner/outliner_tools.cc (renamed from source/blender/editors/space_outliner/outliner_tools.c)88
-rw-r--r--source/blender/editors/space_outliner/outliner_tree.cc (renamed from source/blender/editors/space_outliner/outliner_tree.c)109
-rw-r--r--source/blender/editors/space_outliner/outliner_utils.cc (renamed from source/blender/editors/space_outliner/outliner_utils.c)7
-rw-r--r--source/blender/editors/space_outliner/space_outliner.cc (renamed from source/blender/editors/space_outliner/space_outliner.c)41
-rw-r--r--source/blender/editors/space_outliner/tree/tree_display_data.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_display_libraries.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_display_orphaned.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_display_override_library.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_display_scenes.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_display_sequencer.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_display_view_layer.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_anim_data.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_collection.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_driver.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_gpencil_layer.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_id.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_id_library.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_id_scene.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_nla.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_overrides.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_scene_objects.cc2
-rw-r--r--source/blender/editors/space_outliner/tree/tree_element_view_layer.cc2
-rw-r--r--source/blender/makesdna/DNA_space_types.h2
-rw-r--r--source/blender/windowmanager/WM_types.h2
34 files changed, 423 insertions, 390 deletions
diff --git a/source/blender/editors/space_outliner/CMakeLists.txt b/source/blender/editors/space_outliner/CMakeLists.txt
index c31239f0e9c..5530a1e0416 100644
--- a/source/blender/editors/space_outliner/CMakeLists.txt
+++ b/source/blender/editors/space_outliner/CMakeLists.txt
@@ -34,18 +34,18 @@ set(INC
set(SRC
- outliner_collections.c
- outliner_context.c
- outliner_dragdrop.c
- outliner_draw.c
- outliner_edit.c
- outliner_ops.c
- outliner_select.c
- outliner_sync.c
- outliner_tools.c
- outliner_tree.c
- outliner_utils.c
- space_outliner.c
+ outliner_collections.cc
+ outliner_context.cc
+ outliner_dragdrop.cc
+ outliner_draw.cc
+ outliner_edit.cc
+ outliner_ops.cc
+ outliner_select.cc
+ outliner_sync.cc
+ outliner_tools.cc
+ outliner_tree.cc
+ outliner_utils.cc
+ space_outliner.cc
tree/common.cc
tree/tree_display.cc
tree/tree_display_data.cc
@@ -68,7 +68,7 @@ set(SRC
tree/tree_element_scene_objects.cc
tree/tree_element_view_layer.cc
- outliner_intern.h
+ outliner_intern.hh
tree/tree_display.h
tree/tree_display.hh
tree/tree_element.h
diff --git a/source/blender/editors/space_outliner/outliner_collections.c b/source/blender/editors/space_outliner/outliner_collections.cc
index 946d7a0538d..222191e50ee 100644
--- a/source/blender/editors/space_outliner/outliner_collections.c
+++ b/source/blender/editors/space_outliner/outliner_collections.cc
@@ -49,7 +49,7 @@
#include "RNA_define.h"
#include "RNA_enum_types.h"
-#include "outliner_intern.h" /* own include */
+#include "outliner_intern.hh" /* own include */
/* -------------------------------------------------------------------- */
/** \name Utility API
@@ -85,7 +85,7 @@ Collection *outliner_collection_from_tree_element(const TreeElement *te)
}
if (tselem->type == TSE_LAYER_COLLECTION) {
- LayerCollection *lc = te->directdata;
+ LayerCollection *lc = reinterpret_cast<LayerCollection *>(te->directdata);
return lc->collection;
}
if (ELEM(tselem->type, TSE_SCENE_COLLECTION_BASE, TSE_VIEW_COLLECTION_BASE)) {
@@ -101,7 +101,7 @@ Collection *outliner_collection_from_tree_element(const TreeElement *te)
TreeTraversalAction outliner_find_selected_collections(TreeElement *te, void *customdata)
{
- struct IDsSelectedData *data = customdata;
+ struct IDsSelectedData *data = reinterpret_cast<IDsSelectedData *>(customdata);
TreeStoreElem *tselem = TREESTORE(te);
if (outliner_is_collection_tree_element(te)) {
@@ -118,7 +118,7 @@ TreeTraversalAction outliner_find_selected_collections(TreeElement *te, void *cu
TreeTraversalAction outliner_find_selected_objects(TreeElement *te, void *customdata)
{
- struct IDsSelectedData *data = customdata;
+ struct IDsSelectedData *data = reinterpret_cast<IDsSelectedData *>(customdata);
TreeStoreElem *tselem = TREESTORE(te);
if (outliner_is_collection_tree_element(te)) {
@@ -196,7 +196,7 @@ struct CollectionNewData {
static TreeTraversalAction collection_find_selected_to_add(TreeElement *te, void *customdata)
{
- struct CollectionNewData *data = customdata;
+ struct CollectionNewData *data = reinterpret_cast<CollectionNewData *>(customdata);
Collection *collection = outliner_collection_from_tree_element(te);
if (!collection) {
@@ -220,10 +220,7 @@ static int collection_new_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
ViewLayer *view_layer = CTX_data_view_layer(C);
- struct CollectionNewData data = {
- .error = false,
- .collection = NULL,
- };
+ CollectionNewData data{};
if (RNA_boolean_get(op->ptr, "nested")) {
outliner_build_tree(bmain, scene, view_layer, space_outliner, region);
@@ -295,7 +292,7 @@ struct CollectionEditData {
static TreeTraversalAction collection_find_data_to_edit(TreeElement *te, void *customdata)
{
- struct CollectionEditData *data = customdata;
+ CollectionEditData *data = reinterpret_cast<CollectionEditData *>(customdata);
Collection *collection = outliner_collection_from_tree_element(te);
if (!collection) {
@@ -321,10 +318,9 @@ void outliner_collection_delete(
{
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- struct CollectionEditData data = {
- .scene = scene,
- .space_outliner = space_outliner,
- };
+ CollectionEditData data{};
+ data.scene = scene;
+ data.space_outliner = space_outliner;
data.collections_to_edit = BLI_gset_ptr_new(__func__);
@@ -336,7 +332,8 @@ void outliner_collection_delete(
/* Effectively delete the collections. */
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- Collection *collection = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ Collection *collection = reinterpret_cast<Collection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
/* Test in case collection got deleted as part of another one. */
if (BLI_findindex(&bmain->collections, collection) != -1) {
@@ -440,12 +437,12 @@ struct CollectionObjectsSelectData {
static TreeTraversalAction outliner_find_first_selected_layer_collection(TreeElement *te,
void *customdata)
{
- struct CollectionObjectsSelectData *data = customdata;
+ CollectionObjectsSelectData *data = reinterpret_cast<CollectionObjectsSelectData *>(customdata);
TreeStoreElem *tselem = TREESTORE(te);
switch (tselem->type) {
case TSE_LAYER_COLLECTION:
- data->layer_collection = te->directdata;
+ data->layer_collection = reinterpret_cast<LayerCollection *>(te->directdata);
return TRAVERSE_BREAK;
case TSE_R_LAYER:
case TSE_SCENE_COLLECTION_BASE:
@@ -460,9 +457,7 @@ static LayerCollection *outliner_active_layer_collection(bContext *C)
{
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- struct CollectionObjectsSelectData data = {
- .layer_collection = NULL,
- };
+ CollectionObjectsSelectData data{};
outliner_tree_traverse(space_outliner,
&space_outliner->tree,
@@ -536,7 +531,7 @@ struct CollectionDuplicateData {
static TreeTraversalAction outliner_find_first_selected_collection(TreeElement *te,
void *customdata)
{
- struct CollectionDuplicateData *data = customdata;
+ CollectionDuplicateData *data = reinterpret_cast<CollectionDuplicateData *>(customdata);
TreeStoreElem *tselem = TREESTORE(te);
switch (tselem->type) {
@@ -555,9 +550,7 @@ static TreeElement *outliner_active_collection(bContext *C)
{
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- struct CollectionDuplicateData data = {
- .te = NULL,
- };
+ CollectionDuplicateData data = {};
outliner_tree_traverse(space_outliner,
&space_outliner->tree,
@@ -619,7 +612,8 @@ static int collection_duplicate_exec(bContext *C, wmOperator *op)
"it won't be linked to any view layer");
}
- const eDupli_ID_Flags dupli_flags = USER_DUP_OBJECT | (linked ? 0 : U.dupflag);
+ const eDupli_ID_Flags dupli_flags = (eDupli_ID_Flags)(USER_DUP_OBJECT |
+ (linked ? 0 : U.dupflag));
BKE_collection_duplicate(bmain, parent, collection, dupli_flags, LIB_ID_DUPLICATE_IS_ROOT_ID);
DEG_relations_tag_update(bmain);
@@ -674,10 +668,10 @@ static int collection_link_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
Collection *active_collection = CTX_data_layer_collection(C)->collection;
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- struct CollectionEditData data = {
- .scene = scene,
- .space_outliner = space_outliner,
- };
+
+ CollectionEditData data{};
+ data.scene = scene;
+ data.space_outliner = space_outliner;
if ((ID_IS_LINKED(active_collection) || ID_IS_OVERRIDE_LIBRARY(active_collection)) ||
((active_collection->flag & COLLECTION_IS_MASTER) &&
@@ -696,7 +690,8 @@ static int collection_link_exec(bContext *C, wmOperator *op)
/* Effectively link the collections. */
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- Collection *collection = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ Collection *collection = reinterpret_cast<Collection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
BKE_collection_child_add(bmain, active_collection, collection);
id_fake_user_clear(&collection->id);
}
@@ -738,10 +733,9 @@ static int collection_instance_exec(bContext *C, wmOperator *UNUSED(op))
Scene *scene = CTX_data_scene(C);
ViewLayer *view_layer = CTX_data_view_layer(C);
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- struct CollectionEditData data = {
- .scene = scene,
- .space_outliner = space_outliner,
- };
+ CollectionEditData data{};
+ data.scene = scene;
+ data.space_outliner = space_outliner;
data.collections_to_edit = BLI_gset_ptr_new(__func__);
@@ -755,7 +749,8 @@ static int collection_instance_exec(bContext *C, wmOperator *UNUSED(op))
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- Collection *collection = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ Collection *collection = reinterpret_cast<Collection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
while (BKE_collection_cycle_find(active_lc->collection, collection)) {
active_lc = BKE_layer_collection_activate_parent(view_layer, active_lc);
@@ -764,7 +759,8 @@ static int collection_instance_exec(bContext *C, wmOperator *UNUSED(op))
/* Effectively instance the collections. */
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- Collection *collection = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ Collection *collection = reinterpret_cast<Collection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
Object *ob = ED_object_add_type(
C, OB_EMPTY, collection->id.name + 2, scene->cursor.location, NULL, false, 0);
ob->instance_collection = collection;
@@ -805,14 +801,14 @@ void OUTLINER_OT_collection_instance(wmOperatorType *ot)
static TreeTraversalAction layer_collection_find_data_to_edit(TreeElement *te, void *customdata)
{
- struct CollectionEditData *data = customdata;
+ CollectionEditData *data = reinterpret_cast<CollectionEditData *>(customdata);
TreeStoreElem *tselem = TREESTORE(te);
if (!(tselem && tselem->type == TSE_LAYER_COLLECTION)) {
return TRAVERSE_CONTINUE;
}
- LayerCollection *lc = te->directdata;
+ LayerCollection *lc = reinterpret_cast<LayerCollection *>(te->directdata);
if (lc->collection->flag & COLLECTION_IS_MASTER) {
/* skip - showing warning/error message might be misleading
@@ -836,10 +832,9 @@ static bool collections_view_layer_poll(bContext *C, bool clear, int flag)
}
Scene *scene = CTX_data_scene(C);
- struct CollectionEditData data = {
- .scene = scene,
- .space_outliner = space_outliner,
- };
+ CollectionEditData data{};
+ data.scene = scene;
+ data.space_outliner = space_outliner;
data.collections_to_edit = BLI_gset_ptr_new(__func__);
bool result = false;
@@ -852,7 +847,8 @@ static bool collections_view_layer_poll(bContext *C, bool clear, int flag)
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- LayerCollection *lc = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ LayerCollection *lc = reinterpret_cast<LayerCollection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
if (clear && (lc->flag & flag)) {
result = true;
@@ -902,10 +898,9 @@ static int collection_view_layer_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
ViewLayer *view_layer = CTX_data_view_layer(C);
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- struct CollectionEditData data = {
- .scene = scene,
- .space_outliner = space_outliner,
- };
+ CollectionEditData data{};
+ data.scene = scene;
+ data.space_outliner = space_outliner;
bool clear = strstr(op->idname, "clear") != NULL;
int flag = strstr(op->idname, "holdout") ? LAYER_COLLECTION_HOLDOUT :
strstr(op->idname, "indirect_only") ? LAYER_COLLECTION_INDIRECT_ONLY :
@@ -922,7 +917,8 @@ static int collection_view_layer_exec(bContext *C, wmOperator *op)
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- LayerCollection *lc = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ LayerCollection *lc = reinterpret_cast<LayerCollection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
BKE_layer_collection_set_flag(lc, flag, !clear);
}
@@ -1040,10 +1036,9 @@ static int collection_isolate_exec(bContext *C, wmOperator *op)
ViewLayer *view_layer = CTX_data_view_layer(C);
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
const bool extend = RNA_boolean_get(op->ptr, "extend");
- struct CollectionEditData data = {
- .scene = scene,
- .space_outliner = space_outliner,
- };
+ CollectionEditData data{};
+ data.scene = scene;
+ data.space_outliner = space_outliner;
data.collections_to_edit = BLI_gset_ptr_new(__func__);
outliner_tree_traverse(space_outliner,
&space_outliner->tree,
@@ -1054,7 +1049,8 @@ static int collection_isolate_exec(bContext *C, wmOperator *op)
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- LayerCollection *layer_collection = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ LayerCollection *layer_collection = reinterpret_cast<LayerCollection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
if (extend) {
BKE_layer_collection_isolate_global(scene, view_layer, layer_collection, true);
@@ -1137,10 +1133,9 @@ static int collection_visibility_exec(bContext *C, wmOperator *op)
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
const bool is_inside = strstr(op->idname, "inside") != NULL;
const bool show = strstr(op->idname, "show") != NULL;
- struct CollectionEditData data = {
- .scene = scene,
- .space_outliner = space_outliner,
- };
+ CollectionEditData data{};
+ data.scene = scene;
+ data.space_outliner = space_outliner;
data.collections_to_edit = BLI_gset_ptr_new(__func__);
outliner_tree_traverse(space_outliner,
@@ -1152,7 +1147,8 @@ static int collection_visibility_exec(bContext *C, wmOperator *op)
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- LayerCollection *layer_collection = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ LayerCollection *layer_collection = reinterpret_cast<LayerCollection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
BKE_layer_collection_set_visible(view_layer, layer_collection, show, is_inside);
}
BLI_gset_free(data.collections_to_edit, NULL);
@@ -1284,10 +1280,9 @@ static int collection_flag_exec(bContext *C, wmOperator *op)
const bool is_render = strstr(op->idname, "render");
const bool clear = strstr(op->idname, "show") || strstr(op->idname, "enable");
int flag = is_render ? COLLECTION_HIDE_RENDER : COLLECTION_HIDE_VIEWPORT;
- struct CollectionEditData data = {
- .scene = scene,
- .space_outliner = space_outliner,
- };
+ CollectionEditData data{};
+ data.scene = scene;
+ data.space_outliner = space_outliner;
data.collections_to_edit = BLI_gset_ptr_new(__func__);
const bool has_layer_collection = space_outliner->outlinevis == SO_VIEW_LAYER;
@@ -1300,7 +1295,8 @@ static int collection_flag_exec(bContext *C, wmOperator *op)
&data);
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- LayerCollection *layer_collection = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ LayerCollection *layer_collection = reinterpret_cast<LayerCollection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
Collection *collection = layer_collection->collection;
if (ID_IS_LINKED(collection)) {
continue;
@@ -1328,7 +1324,8 @@ static int collection_flag_exec(bContext *C, wmOperator *op)
&data);
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- Collection *collection = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ Collection *collection = reinterpret_cast<Collection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
if (ID_IS_LINKED(collection)) {
continue;
}
@@ -1430,7 +1427,7 @@ struct OutlinerHideEditData {
static TreeTraversalAction outliner_hide_find_data_to_edit(TreeElement *te, void *customdata)
{
- struct OutlinerHideEditData *data = customdata;
+ OutlinerHideEditData *data = reinterpret_cast<OutlinerHideEditData *>(customdata);
TreeStoreElem *tselem = TREESTORE(te);
if (tselem == NULL) {
@@ -1438,7 +1435,7 @@ static TreeTraversalAction outliner_hide_find_data_to_edit(TreeElement *te, void
}
if (tselem->type == TSE_LAYER_COLLECTION) {
- LayerCollection *lc = te->directdata;
+ LayerCollection *lc = reinterpret_cast<LayerCollection *>(te->directdata);
if (lc->collection->flag & COLLECTION_IS_MASTER) {
/* Skip - showing warning/error message might be misleading
@@ -1464,11 +1461,10 @@ static int outliner_hide_exec(bContext *C, wmOperator *UNUSED(op))
Scene *scene = CTX_data_scene(C);
ViewLayer *view_layer = CTX_data_view_layer(C);
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- struct OutlinerHideEditData data = {
- .scene = scene,
- .view_layer = view_layer,
- .space_outliner = space_outliner,
- };
+ OutlinerHideEditData data{};
+ data.scene = scene;
+ data.view_layer = view_layer;
+ data.space_outliner = space_outliner;
data.collections_to_edit = BLI_gset_ptr_new("outliner_hide_exec__collections_to_edit");
data.bases_to_edit = BLI_gset_ptr_new("outliner_hide_exec__bases_to_edit");
@@ -1481,14 +1477,15 @@ static int outliner_hide_exec(bContext *C, wmOperator *UNUSED(op))
GSetIterator collections_to_edit_iter;
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
- LayerCollection *layer_collection = BLI_gsetIterator_getKey(&collections_to_edit_iter);
+ LayerCollection *layer_collection = reinterpret_cast<LayerCollection *>(
+ BLI_gsetIterator_getKey(&collections_to_edit_iter));
BKE_layer_collection_set_visible(view_layer, layer_collection, false, false);
}
BLI_gset_free(data.collections_to_edit, NULL);
GSetIterator bases_to_edit_iter;
GSET_ITER (bases_to_edit_iter, data.bases_to_edit) {
- Base *base = BLI_gsetIterator_getKey(&bases_to_edit_iter);
+ Base *base = reinterpret_cast<Base *>(BLI_gsetIterator_getKey(&bases_to_edit_iter));
base->flag |= BASE_HIDDEN;
}
BLI_gset_free(data.bases_to_edit, NULL);
@@ -1521,7 +1518,8 @@ static int outliner_unhide_all_exec(bContext *C, wmOperator *UNUSED(op))
ViewLayer *view_layer = CTX_data_view_layer(C);
/* Unhide all the collections. */
- LayerCollection *lc_master = view_layer->layer_collections.first;
+ LayerCollection *lc_master = reinterpret_cast<LayerCollection *>(
+ view_layer->layer_collections.first);
LISTBASE_FOREACH (LayerCollection *, lc_iter, &lc_master->layer_collections) {
BKE_layer_collection_set_flag(lc_iter, LAYER_COLLECTION_HIDE, false);
}
@@ -1565,9 +1563,7 @@ static int outliner_color_tag_set_exec(bContext *C, wmOperator *op)
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
const short color_tag = RNA_enum_get(op->ptr, "color");
- struct IDsSelectedData selected = {
- .selected_array = {NULL, NULL},
- };
+ IDsSelectedData selected{};
outliner_tree_traverse(space_outliner,
&space_outliner->tree,
diff --git a/source/blender/editors/space_outliner/outliner_context.c b/source/blender/editors/space_outliner/outliner_context.cc
index d61bb17f661..857d8d4e095 100644
--- a/source/blender/editors/space_outliner/outliner_context.c
+++ b/source/blender/editors/space_outliner/outliner_context.cc
@@ -27,7 +27,7 @@
#include "DNA_space_types.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
static void outliner_context_selected_ids_recursive(const ListBase *subtree,
bContextDataResult *result)
diff --git a/source/blender/editors/space_outliner/outliner_dragdrop.c b/source/blender/editors/space_outliner/outliner_dragdrop.cc
index 85fee590447..0cee0c45eae 100644
--- a/source/blender/editors/space_outliner/outliner_dragdrop.c
+++ b/source/blender/editors/space_outliner/outliner_dragdrop.cc
@@ -58,7 +58,7 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
static Collection *collection_parent_from_ID(ID *id);
@@ -157,7 +157,7 @@ static TreeElement *outliner_drop_insert_find(bContext *C,
return te_hovered;
}
*r_insert_type = TE_INSERT_BEFORE;
- return te_hovered->subtree.first;
+ return reinterpret_cast<TreeElement *>(te_hovered->subtree.first);
}
*r_insert_type = TE_INSERT_AFTER;
return te_hovered;
@@ -172,8 +172,8 @@ static TreeElement *outliner_drop_insert_find(bContext *C,
/* Mouse doesn't hover any item (ignoring x-axis),
* so it's either above list bounds or below. */
- TreeElement *first = space_outliner->tree.first;
- TreeElement *last = space_outliner->tree.last;
+ TreeElement *first = reinterpret_cast<TreeElement *>(space_outliner->tree.first);
+ TreeElement *last = reinterpret_cast<TreeElement *>(space_outliner->tree.last);
if (view_mval[1] < last->ys) {
*r_insert_type = TE_INSERT_AFTER;
@@ -430,10 +430,11 @@ static int parent_drop_invoke(bContext *C, wmOperator *op, const wmEvent *event)
return OPERATOR_CANCELLED;
}
- ListBase *lb = event->customdata;
- wmDrag *drag = lb->first;
+ ListBase *lb = reinterpret_cast<ListBase *>(event->customdata);
+ wmDrag *drag = reinterpret_cast<wmDrag *>(lb->first);
- parent_drop_set_parents(C, op->reports, drag->ids.first, par, PAR_OBJECT, event->alt);
+ parent_drop_set_parents(
+ C, op->reports, reinterpret_cast<wmDragID *>(drag->ids.first), par, PAR_OBJECT, event->alt);
return OPERATOR_FINISHED;
}
@@ -504,8 +505,8 @@ static int parent_clear_invoke(bContext *C, wmOperator *UNUSED(op), const wmEven
return OPERATOR_CANCELLED;
}
- ListBase *lb = event->customdata;
- wmDrag *drag = lb->first;
+ ListBase *lb = reinterpret_cast<ListBase *>(event->customdata);
+ wmDrag *drag = reinterpret_cast<wmDrag *>(lb->first);
LISTBASE_FOREACH (wmDragID *, drag_id, &drag->ids) {
if (GS(drag_id->id->name) == ID_OB) {
@@ -686,7 +687,7 @@ static void datastack_drop_data_init(wmDrag *drag,
TreeStoreElem *tselem,
void *directdata)
{
- StackDropData *drop_data = MEM_callocN(sizeof(*drop_data), "datastack drop data");
+ StackDropData *drop_data = MEM_cnew<StackDropData>("datastack drop data");
drop_data->ob_parent = ob;
drop_data->pchan_parent = pchan;
@@ -836,7 +837,7 @@ static bool datastack_drop_poll(bContext *C, wmDrag *drag, const wmEvent *event)
bool changed = outliner_flag_set(
&space_outliner->tree, TSE_HIGHLIGHTED_ANY | TSE_DRAG_ANY, false);
- StackDropData *drop_data = drag->poin;
+ StackDropData *drop_data = reinterpret_cast<StackDropData *>(drag->poin);
if (!drop_data) {
return false;
}
@@ -874,7 +875,7 @@ static char *datastack_drop_tooltip(bContext *UNUSED(C),
const int UNUSED(xy[2]),
struct wmDropBox *UNUSED(drop))
{
- StackDropData *drop_data = drag->poin;
+ StackDropData *drop_data = reinterpret_cast<StackDropData *>(drag->poin);
switch (drop_data->drop_action) {
case DATA_STACK_DROP_REORDER:
return BLI_strdup(TIP_("Reorder"));
@@ -951,20 +952,28 @@ static void datastack_drop_copy(bContext *C, StackDropData *drop_data)
switch (drop_data->drag_tselem->type) {
case TSE_MODIFIER:
if (drop_data->ob_parent->type == OB_GPENCIL && ob_dst->type == OB_GPENCIL) {
- ED_object_gpencil_modifier_copy_to_object(ob_dst, drop_data->drag_directdata);
+ ED_object_gpencil_modifier_copy_to_object(
+ ob_dst, reinterpret_cast<GpencilModifierData *>(drop_data->drag_directdata));
}
else if (drop_data->ob_parent->type != OB_GPENCIL && ob_dst->type != OB_GPENCIL) {
ED_object_modifier_copy_to_object(
- C, ob_dst, drop_data->ob_parent, drop_data->drag_directdata);
+ C,
+ ob_dst,
+ drop_data->ob_parent,
+ reinterpret_cast<ModifierData *>(drop_data->drag_directdata));
}
break;
case TSE_CONSTRAINT:
if (tselem->type == TSE_POSE_CHANNEL) {
ED_object_constraint_copy_for_pose(
- bmain, ob_dst, drop_data->drop_te->directdata, drop_data->drag_directdata);
+ bmain,
+ ob_dst,
+ reinterpret_cast<bPoseChannel *>(drop_data->drop_te->directdata),
+ reinterpret_cast<bConstraint *>(drop_data->drag_directdata));
}
else {
- ED_object_constraint_copy_for_object(bmain, ob_dst, drop_data->drag_directdata);
+ ED_object_constraint_copy_for_object(
+ bmain, ob_dst, reinterpret_cast<bConstraint *>(drop_data->drag_directdata));
}
break;
case TSE_GPENCIL_EFFECT: {
@@ -972,7 +981,8 @@ static void datastack_drop_copy(bContext *C, StackDropData *drop_data)
return;
}
- ED_object_shaderfx_copy(ob_dst, drop_data->drag_directdata);
+ ED_object_shaderfx_copy(ob_dst,
+ reinterpret_cast<ShaderFxData *>(drop_data->drag_directdata));
break;
}
}
@@ -998,11 +1008,16 @@ static void datastack_drop_reorder(bContext *C, ReportList *reports, StackDropDa
if (ob->type == OB_GPENCIL) {
index = outliner_get_insert_index(
drag_te, drop_te, insert_type, &ob->greasepencil_modifiers);
- ED_object_gpencil_modifier_move_to_index(reports, ob, drop_data->drag_directdata, index);
+ ED_object_gpencil_modifier_move_to_index(
+ reports,
+ ob,
+ reinterpret_cast<GpencilModifierData *>(drop_data->drag_directdata),
+ index);
}
else {
index = outliner_get_insert_index(drag_te, drop_te, insert_type, &ob->modifiers);
- ED_object_modifier_move_to_index(reports, ob, drop_data->drag_directdata, index);
+ ED_object_modifier_move_to_index(
+ reports, ob, reinterpret_cast<ModifierData *>(drop_data->drag_directdata), index);
}
break;
case TSE_CONSTRAINT:
@@ -1013,12 +1028,14 @@ static void datastack_drop_reorder(bContext *C, ReportList *reports, StackDropDa
else {
index = outliner_get_insert_index(drag_te, drop_te, insert_type, &ob->constraints);
}
- ED_object_constraint_move_to_index(ob, drop_data->drag_directdata, index);
+ ED_object_constraint_move_to_index(
+ ob, reinterpret_cast<bConstraint *>(drop_data->drag_directdata), index);
break;
case TSE_GPENCIL_EFFECT:
index = outliner_get_insert_index(drag_te, drop_te, insert_type, &ob->shader_fx);
- ED_object_shaderfx_move_to_index(reports, ob, drop_data->drag_directdata, index);
+ ED_object_shaderfx_move_to_index(
+ reports, ob, reinterpret_cast<ShaderFxData *>(drop_data->drag_directdata), index);
}
}
@@ -1028,9 +1045,9 @@ static int datastack_drop_invoke(bContext *C, wmOperator *op, const wmEvent *eve
return OPERATOR_CANCELLED;
}
- ListBase *lb = event->customdata;
- wmDrag *drag = lb->first;
- StackDropData *drop_data = drag->poin;
+ ListBase *lb = reinterpret_cast<ListBase *>(event->customdata);
+ wmDrag *drag = reinterpret_cast<wmDrag *>(lb->first);
+ StackDropData *drop_data = reinterpret_cast<StackDropData *>(drag->poin);
switch (drop_data->drop_action) {
case DATA_STACK_DROP_LINK:
@@ -1111,7 +1128,7 @@ static bool collection_drop_init(
return false;
}
- wmDragID *drag_id = drag->ids.first;
+ wmDragID *drag_id = reinterpret_cast<wmDragID *>(drag->ids.first);
if (drag_id == NULL) {
return false;
}
@@ -1258,8 +1275,8 @@ static int collection_drop_invoke(bContext *C, wmOperator *UNUSED(op), const wmE
return OPERATOR_CANCELLED;
}
- ListBase *lb = event->customdata;
- wmDrag *drag = lb->first;
+ ListBase *lb = reinterpret_cast<ListBase *>(event->customdata);
+ wmDrag *drag = reinterpret_cast<wmDrag *>(lb->first);
CollectionDrop data;
if (!collection_drop_init(C, drag, event->xy, event->ctrl, &data)) {
@@ -1419,9 +1436,7 @@ static int outliner_item_drag_drop_invoke(bContext *C,
}
/* Gather all selected elements. */
- struct IDsSelectedData selected = {
- .selected_array = {NULL, NULL},
- };
+ IDsSelectedData selected{};
if (GS(data.drag_id->name) == ID_OB) {
outliner_tree_traverse(space_outliner,
diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.cc
index 8bcd50161bd..49a6d2a55f5 100644
--- a/source/blender/editors/space_outliner/outliner_draw.c
+++ b/source/blender/editors/space_outliner/outliner_draw.cc
@@ -78,7 +78,7 @@
#include "RNA_access.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
#include "tree/tree_display.h"
/* Disable - this is far too slow - campbell. */
@@ -142,9 +142,7 @@ static void restrictbutton_recursive_ebone(bArmature *arm,
int flag,
bool set_flag)
{
- EditBone *ebone;
-
- for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
+ LISTBASE_FOREACH (EditBone *, ebone, arm->edbo) {
if (ED_armature_ebone_is_child_recursive(ebone_parent, ebone)) {
if (set_flag) {
ebone->flag &= ~(BONE_TIPSEL | BONE_SELECTED | BONE_ROOTSEL);
@@ -159,8 +157,7 @@ static void restrictbutton_recursive_ebone(bArmature *arm,
static void restrictbutton_recursive_bone(Bone *bone_parent, int flag, bool set_flag)
{
- Bone *bone;
- for (bone = bone_parent->childbase.first; bone; bone = bone->next) {
+ LISTBASE_FOREACH (Bone *, bone, &bone_parent->childbase) {
if (set_flag) {
bone->flag &= ~(BONE_TIPSEL | BONE_SELECTED | BONE_ROOTSEL);
bone->flag |= flag;
@@ -282,7 +279,8 @@ static void outliner_object_set_flag_recursive_fn(bContext *C,
Object *ob_parent = ob ? ob : base->object;
- for (Object *ob_iter = bmain->objects.first; ob_iter; ob_iter = ob_iter->id.next) {
+ for (Object *ob_iter = reinterpret_cast<Object *>(bmain->objects.first); ob_iter;
+ ob_iter = reinterpret_cast<Object *>(ob_iter->id.next)) {
if (BKE_object_is_child_recursive(ob_parent, ob_iter)) {
if (ob) {
RNA_id_pointer_create(&ob_iter->id, &ptr);
@@ -316,8 +314,8 @@ static void outliner_object_set_flag_recursive_fn(bContext *C,
*/
static void outliner__object_set_flag_recursive_fn(bContext *C, void *poin, void *poin2)
{
- Object *ob = poin;
- char *propname = poin2;
+ Object *ob = reinterpret_cast<Object *>(poin);
+ char *propname = reinterpret_cast<char *>(poin2);
outliner_object_set_flag_recursive_fn(C, NULL, ob, propname);
}
@@ -326,8 +324,8 @@ static void outliner__object_set_flag_recursive_fn(bContext *C, void *poin, void
*/
static void outliner__base_set_flag_recursive_fn(bContext *C, void *poin, void *poin2)
{
- Base *base = poin;
- char *propname = poin2;
+ Base *base = reinterpret_cast<Base *>(poin);
+ char *propname = reinterpret_cast<char *>(poin2);
outliner_object_set_flag_recursive_fn(C, base, NULL, propname);
}
@@ -491,8 +489,10 @@ void outliner_collection_isolate_flag(Scene *scene,
PointerRNA ptr;
const bool is_hide = strstr(propname, "hide_") != NULL;
- LayerCollection *top_layer_collection = layer_collection ? view_layer->layer_collections.first :
- NULL;
+ LayerCollection *top_layer_collection = layer_collection ?
+ reinterpret_cast<LayerCollection *>(
+ view_layer->layer_collections.first) :
+ NULL;
Collection *top_collection = collection ? scene->master_collection : NULL;
bool was_isolated = (value == is_hide);
@@ -556,7 +556,7 @@ void outliner_collection_isolate_flag(Scene *scene,
else {
CollectionParent *parent;
Collection *child = collection;
- while ((parent = child->parents.first)) {
+ while ((parent = reinterpret_cast<CollectionParent *>(child->parents.first))) {
if (parent->collection->flag & COLLECTION_IS_MASTER) {
break;
}
@@ -635,8 +635,8 @@ static void view_layer__layer_collection_set_flag_recursive_fn(bContext *C,
void *poin,
void *poin2)
{
- LayerCollection *layer_collection = poin;
- char *propname = poin2;
+ LayerCollection *layer_collection = reinterpret_cast<LayerCollection *>(poin);
+ char *propname = reinterpret_cast<char *>(poin2);
outliner_collection_set_flag_recursive_fn(C, layer_collection, NULL, propname);
}
@@ -646,8 +646,8 @@ static void view_layer__layer_collection_set_flag_recursive_fn(bContext *C,
*/
static void view_layer__collection_set_flag_recursive_fn(bContext *C, void *poin, void *poin2)
{
- LayerCollection *layer_collection = poin;
- char *propname = poin2;
+ LayerCollection *layer_collection = reinterpret_cast<LayerCollection *>(poin);
+ char *propname = reinterpret_cast<char *>(poin2);
outliner_collection_set_flag_recursive_fn(
C, layer_collection, layer_collection->collection, propname);
}
@@ -658,8 +658,8 @@ static void view_layer__collection_set_flag_recursive_fn(bContext *C, void *poin
*/
static void scenes__collection_set_flag_recursive_fn(bContext *C, void *poin, void *poin2)
{
- Collection *collection = poin;
- char *propname = poin2;
+ Collection *collection = reinterpret_cast<Collection *>(poin);
+ char *propname = reinterpret_cast<char *>(poin2);
outliner_collection_set_flag_recursive_fn(C, NULL, collection, propname);
}
@@ -669,7 +669,7 @@ static void namebutton_fn(bContext *C, void *tsep, char *oldname)
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
struct wmMsgBus *mbus = CTX_wm_message_bus(C);
BLI_mempool *ts = space_outliner->treestore;
- TreeStoreElem *tselem = tsep;
+ TreeStoreElem *tselem = reinterpret_cast<TreeStoreElem *>(tsep);
if (ts && tselem) {
TreeElement *te = outliner_find_tree_element(&space_outliner->tree, tselem);
@@ -733,7 +733,7 @@ static void namebutton_fn(bContext *C, void *tsep, char *oldname)
switch (tselem->type) {
case TSE_DEFGROUP: {
Object *ob = (Object *)tselem->id;
- bDeformGroup *vg = te->directdata;
+ bDeformGroup *vg = reinterpret_cast<bDeformGroup *>(te->directdata);
BKE_object_defgroup_unique_name(vg, ob);
WM_msg_publish_rna_prop(mbus, &ob->id, vg, VertexGroup, name);
break;
@@ -747,7 +747,7 @@ static void namebutton_fn(bContext *C, void *tsep, char *oldname)
case TSE_EBONE: {
bArmature *arm = (bArmature *)tselem->id;
if (arm->edbo) {
- EditBone *ebone = te->directdata;
+ EditBone *ebone = reinterpret_cast<EditBone *>(te->directdata);
char newname[sizeof(ebone->name)];
/* restore bone name */
@@ -765,7 +765,7 @@ static void namebutton_fn(bContext *C, void *tsep, char *oldname)
outliner_viewcontext_init(C, &tvc);
bArmature *arm = (bArmature *)tselem->id;
- Bone *bone = te->directdata;
+ Bone *bone = reinterpret_cast<Bone *>(te->directdata);
char newname[sizeof(bone->name)];
/* always make current object active */
@@ -785,7 +785,7 @@ static void namebutton_fn(bContext *C, void *tsep, char *oldname)
Object *ob = (Object *)tselem->id;
bArmature *arm = (bArmature *)ob->data;
- bPoseChannel *pchan = te->directdata;
+ bPoseChannel *pchan = reinterpret_cast<bPoseChannel *>(te->directdata);
char newname[sizeof(pchan->name)];
/* always make current pose-bone active */
@@ -796,14 +796,15 @@ static void namebutton_fn(bContext *C, void *tsep, char *oldname)
/* restore bone name */
BLI_strncpy(newname, pchan->name, sizeof(pchan->name));
BLI_strncpy(pchan->name, oldname, sizeof(pchan->name));
- ED_armature_bone_rename(bmain, ob->data, oldname, newname);
+ ED_armature_bone_rename(
+ bmain, reinterpret_cast<bArmature *>(ob->data), oldname, newname);
WM_msg_publish_rna_prop(mbus, &arm->id, pchan->bone, Bone, name);
WM_event_add_notifier(C, NC_OBJECT | ND_POSE, NULL);
break;
}
case TSE_POSEGRP: {
Object *ob = (Object *)tselem->id; /* id = object. */
- bActionGroup *grp = te->directdata;
+ bActionGroup *grp = reinterpret_cast<bActionGroup *>(te->directdata);
BLI_uniquename(&ob->pose->agroups,
grp,
@@ -817,7 +818,7 @@ static void namebutton_fn(bContext *C, void *tsep, char *oldname)
}
case TSE_GP_LAYER: {
bGPdata *gpd = (bGPdata *)tselem->id; /* id = GP Datablock */
- bGPDlayer *gpl = te->directdata;
+ bGPDlayer *gpl = reinterpret_cast<bGPDlayer *>(te->directdata);
/* always make layer active */
BKE_gpencil_layer_active_set(gpd, gpl);
@@ -833,7 +834,7 @@ static void namebutton_fn(bContext *C, void *tsep, char *oldname)
}
case TSE_R_LAYER: {
Scene *scene = (Scene *)tselem->id;
- ViewLayer *view_layer = te->directdata;
+ ViewLayer *view_layer = reinterpret_cast<ViewLayer *>(te->directdata);
/* Restore old name. */
char newname[sizeof(view_layer->name)];
@@ -983,8 +984,9 @@ static bool outliner_restrict_properties_collection_set(Scene *scene,
RestrictPropertiesActive *props_active)
{
TreeStoreElem *tselem = TREESTORE(te);
- LayerCollection *layer_collection = (tselem->type == TSE_LAYER_COLLECTION) ? te->directdata :
- NULL;
+ LayerCollection *layer_collection = (tselem->type == TSE_LAYER_COLLECTION) ?
+ reinterpret_cast<LayerCollection *>(te->directdata) :
+ NULL;
Collection *collection = outliner_collection_from_tree_element(te);
if (collection->flag & COLLECTION_IS_MASTER) {
@@ -1097,7 +1099,7 @@ static void outliner_draw_restrictbuts(uiBlock *block,
ELEM(space_outliner->outlinevis, SO_SCENES, SO_VIEW_LAYER)) {
if (space_outliner->show_restrict_flags & SO_RESTRICT_RENDER) {
/* View layer render toggle. */
- ViewLayer *layer = te->directdata;
+ ViewLayer *layer = reinterpret_cast<ViewLayer *>(te->directdata);
bt = uiDefIconButBitS(block,
UI_BTYPE_ICON_TOGGLE_N,
@@ -1321,7 +1323,7 @@ static void outliner_draw_restrictbuts(uiBlock *block,
bPoseChannel *pchan = (bPoseChannel *)te->directdata;
Bone *bone = pchan->bone;
Object *ob = (Object *)tselem->id;
- bArmature *arm = ob->data;
+ bArmature *arm = reinterpret_cast<bArmature *>(ob->data);
RNA_pointer_create(&arm->id, &RNA_Bone, bone, &ptr);
@@ -1471,7 +1473,8 @@ static void outliner_draw_restrictbuts(uiBlock *block,
scene, te, &collection_ptr, &layer_collection_ptr, &props, &props_active)) {
LayerCollection *layer_collection = (tselem->type == TSE_LAYER_COLLECTION) ?
- te->directdata :
+ reinterpret_cast<LayerCollection *>(
+ te->directdata) :
NULL;
Collection *collection = outliner_collection_from_tree_element(te);
@@ -1903,7 +1906,7 @@ static void outliner_draw_rnabuts(
if (te->ys + 2 * UI_UNIT_Y >= region->v2d.cur.ymin && te->ys <= region->v2d.cur.ymax) {
if (tselem->type == TSE_RNA_PROPERTY) {
ptr = &te->rnaptr;
- prop = te->directdata;
+ prop = reinterpret_cast<PropertyRNA *>(te->directdata);
if (!TSELEM_OPEN(tselem, space_outliner)) {
if (RNA_property_type(prop) == PROP_POINTER) {
@@ -1947,7 +1950,7 @@ static void outliner_draw_rnabuts(
}
else if (tselem->type == TSE_RNA_ARRAY_ELEM) {
ptr = &te->rnaptr;
- prop = te->directdata;
+ prop = reinterpret_cast<PropertyRNA *>(te->directdata);
uiDefAutoButR(block,
ptr,
@@ -2257,7 +2260,7 @@ TreeElementIcon tree_element_get_icon(TreeStoreElem *tselem, TreeElement *te)
data.drag_id = tselem->id;
break;
case TSE_CONSTRAINT: {
- bConstraint *con = te->directdata;
+ bConstraint *con = reinterpret_cast<bConstraint *>(te->directdata);
data.drag_id = tselem->id;
switch ((eBConstraint_Types)con->type) {
case CONSTRAINT_TYPE_CAMERASOLVER:
@@ -2370,8 +2373,10 @@ TreeElementIcon tree_element_get_icon(TreeStoreElem *tselem, TreeElement *te)
data.drag_id = tselem->id;
if (ob->type != OB_GPENCIL) {
- ModifierData *md = BLI_findlink(&ob->modifiers, tselem->nr);
- const ModifierTypeInfo *modifier_type = BKE_modifier_get_info(md->type);
+ ModifierData *md = reinterpret_cast<ModifierData *>(
+ BLI_findlink(&ob->modifiers, tselem->nr));
+ const ModifierTypeInfo *modifier_type = reinterpret_cast<const ModifierTypeInfo *>(
+ BKE_modifier_get_info((ModifierType)md->type));
if (modifier_type != NULL) {
data.icon = modifier_type->icon;
}
@@ -2381,7 +2386,8 @@ TreeElementIcon tree_element_get_icon(TreeStoreElem *tselem, TreeElement *te)
}
else {
/* grease pencil modifiers */
- GpencilModifierData *md = BLI_findlink(&ob->greasepencil_modifiers, tselem->nr);
+ GpencilModifierData *md = reinterpret_cast<GpencilModifierData *>(
+ BLI_findlink(&ob->greasepencil_modifiers, tselem->nr));
switch ((GpencilModifierType)md->type) {
case eGpencilModifierType_Noise:
data.icon = ICON_MOD_NOISE;
@@ -2880,18 +2886,15 @@ static void outliner_draw_iconrow_number(const uiFontStyle *fstyle,
const float color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
float ufac = 0.25f * UI_UNIT_X;
float offset_x = (float)offsx + UI_UNIT_X * 0.35f;
+ rctf rect{};
+ BLI_rctf_init(&rect,
+ offset_x + ufac,
+ offset_x + UI_UNIT_X - ufac,
+ (float)ys - UI_UNIT_Y * 0.2f + ufac,
+ (float)ys - UI_UNIT_Y * 0.2f + UI_UNIT_Y - ufac);
UI_draw_roundbox_corner_set(UI_CNR_ALL);
- UI_draw_roundbox_aa(
- &(const rctf){
- .xmin = offset_x + ufac,
- .xmax = offset_x + UI_UNIT_X - ufac,
- .ymin = (float)ys - UI_UNIT_Y * 0.2f + ufac,
- .ymax = (float)ys - UI_UNIT_Y * 0.2f + UI_UNIT_Y - ufac,
- },
- true,
- (float)UI_UNIT_Y / 2.0f - ufac,
- color);
+ UI_draw_roundbox_aa(&rect, true, (float)UI_UNIT_Y / 2.0f - ufac, color);
/* Now the numbers. */
uchar text_col[4];
@@ -2904,7 +2907,7 @@ static void outliner_draw_iconrow_number(const uiFontStyle *fstyle,
/* We treat +99 as 4 digits to make sure the (eyeballed) alignment looks nice. */
int num_digits = 4;
- char number_text[4] = "+99\0";
+ char number_text[4] = "+99";
if (num_elements < 100) {
BLI_snprintf(number_text, sizeof(number_text), "%d", num_elements);
num_digits = num_elements < 10 ? 1 : 2;
@@ -2939,28 +2942,12 @@ static void outliner_draw_active_indicator(const float minx,
{
const float ufac = UI_UNIT_X / 20.0f;
const float radius = UI_UNIT_Y / 4.0f;
+ rctf rect{};
+ BLI_rctf_init(&rect, minx, maxx, miny + ufac, maxy - ufac);
UI_draw_roundbox_corner_set(UI_CNR_ALL);
- UI_draw_roundbox_aa(
- &(const rctf){
- .xmin = minx,
- .xmax = maxx,
- .ymin = miny + ufac,
- .ymax = maxy - ufac,
- },
- true,
- radius,
- icon_color);
- UI_draw_roundbox_aa(
- &(const rctf){
- .xmin = minx,
- .xmax = maxx,
- .ymin = miny + ufac,
- .ymax = maxy - ufac,
- },
- false,
- radius,
- icon_border);
+ UI_draw_roundbox_aa(&rect, true, radius, icon_color);
+ UI_draw_roundbox_aa(&rect, false, radius, icon_border);
GPU_blend(GPU_BLEND_ALPHA); /* Roundbox disables. */
}
@@ -3027,11 +3014,11 @@ int tree_element_id_type_to_index(TreeElement *te)
return id_index + OB_TYPE_MAX;
}
-typedef struct MergedIconRow {
+struct MergedIconRow {
eOLDrawState active[INDEX_ID_MAX + OB_TYPE_MAX];
int num_elements[INDEX_ID_MAX + OB_TYPE_MAX];
TreeElement *tree_element[INDEX_ID_MAX + OB_TYPE_MAX];
-} MergedIconRow;
+};
static void outliner_draw_iconrow(bContext *C,
uiBlock *block,
@@ -3323,7 +3310,7 @@ static void outliner_draw_tree_element(bContext *C,
if (ELEM(tselem->type, TSE_SOME_ID, TSE_LAYER_COLLECTION) ||
((tselem->type == TSE_RNA_STRUCT) && RNA_struct_is_ID(te->rnaptr.type))) {
- const BIFIconID lib_icon = UI_icon_from_library(tselem->id);
+ const BIFIconID lib_icon = (BIFIconID)UI_icon_from_library(tselem->id);
if (lib_icon != ICON_NONE) {
UI_icon_draw_alpha(
(float)startx + offsx + 2 * ufac, (float)*starty + 2 * ufac, lib_icon, alpha_fac);
@@ -3356,7 +3343,7 @@ static void outliner_draw_tree_element(bContext *C,
GPU_blend(GPU_BLEND_ALPHA);
- MergedIconRow merged = {{0}};
+ MergedIconRow merged{};
outliner_draw_iconrow(C,
block,
fstyle,
diff --git a/source/blender/editors/space_outliner/outliner_edit.c b/source/blender/editors/space_outliner/outliner_edit.cc
index 8ddd58bcc18..94eb2bee375 100644
--- a/source/blender/editors/space_outliner/outliner_edit.c
+++ b/source/blender/editors/space_outliner/outliner_edit.cc
@@ -73,7 +73,7 @@
#include "GPU_material.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
static void outliner_show_active(SpaceOutliner *space_outliner,
ARegion *region,
@@ -258,7 +258,7 @@ static int outliner_item_openclose_invoke(bContext *C, wmOperator *op, const wmE
}
/* Store last expanded tselem and x coordinate of disclosure triangle */
- OpenCloseData *toggle_data = MEM_callocN(sizeof(OpenCloseData), "open_close_data");
+ OpenCloseData *toggle_data = MEM_cnew<OpenCloseData>("open_close_data");
toggle_data->prev_tselem = tselem;
toggle_data->open = open;
toggle_data->x_location = te->xs;
@@ -575,10 +575,10 @@ static int outliner_id_remap_exec(bContext *C, wmOperator *op)
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
const short id_type = (short)RNA_enum_get(op->ptr, "id_type");
- ID *old_id = BLI_findlink(which_libbase(CTX_data_main(C), id_type),
- RNA_enum_get(op->ptr, "old_id"));
- ID *new_id = BLI_findlink(which_libbase(CTX_data_main(C), id_type),
- RNA_enum_get(op->ptr, "new_id"));
+ ID *old_id = reinterpret_cast<ID *>(
+ BLI_findlink(which_libbase(CTX_data_main(C), id_type), RNA_enum_get(op->ptr, "old_id")));
+ ID *new_id = reinterpret_cast<ID *>(
+ BLI_findlink(which_libbase(CTX_data_main(C), id_type), RNA_enum_get(op->ptr, "new_id")));
/* check for invalid states */
if (space_outliner == NULL) {
@@ -671,9 +671,9 @@ static const EnumPropertyItem *outliner_id_itemf(bContext *C,
int i = 0;
short id_type = (short)RNA_enum_get(ptr, "id_type");
- ID *id = which_libbase(CTX_data_main(C), id_type)->first;
+ ID *id = reinterpret_cast<ID *>(which_libbase(CTX_data_main(C), id_type)->first);
- for (; id; id = id->next) {
+ for (; id; id = reinterpret_cast<ID *>(id->next)) {
item_tmp.identifier = item_tmp.name = id->name + 2;
item_tmp.value = i++;
RNA_enum_item_add(&item, &totitem, &item_tmp);
@@ -709,7 +709,7 @@ void OUTLINER_OT_id_remap(wmOperatorType *ot)
prop = RNA_def_enum(ot->srna, "old_id", DummyRNA_NULL_items, 0, "Old ID", "Old ID to replace");
RNA_def_property_enum_funcs_runtime(prop, NULL, NULL, outliner_id_itemf);
- RNA_def_property_flag(prop, PROP_ENUM_NO_TRANSLATE | PROP_HIDDEN);
+ RNA_def_property_flag(prop, (PropertyFlag)(PROP_ENUM_NO_TRANSLATE | PROP_HIDDEN));
ot->prop = RNA_def_enum(ot->srna,
"new_id",
@@ -1739,19 +1739,19 @@ static void tree_element_to_path(TreeElement *te,
/* step 1: flatten out hierarchy of parents into a flat chain */
for (tem = te->parent; tem; tem = tem->parent) {
- ld = MEM_callocN(sizeof(LinkData), "LinkData for tree_element_to_path()");
+ ld = MEM_cnew<LinkData>("LinkData for tree_element_to_path()");
ld->data = tem;
BLI_addhead(&hierarchy, ld);
}
/* step 2: step down hierarchy building the path
* (NOTE: addhead in previous loop was needed so that we can loop like this) */
- for (ld = hierarchy.first; ld; ld = ld->next) {
+ for (ld = reinterpret_cast<LinkData *>(hierarchy.first); ld; ld = ld->next) {
/* get data */
tem = (TreeElement *)ld->data;
tse = TREESTORE(tem);
ptr = &tem->rnaptr;
- prop = tem->directdata;
+ prop = reinterpret_cast<PropertyRNA *>(tem->directdata);
/* check if we're looking for first ID, or appending to path */
if (*id) {
@@ -1812,7 +1812,7 @@ static void tree_element_to_path(TreeElement *te,
/* ptr->data not ptr->owner_id seems to be the one we want,
* since ptr->data is sometimes the owner of this ID? */
if (RNA_struct_is_ID(ptr->type)) {
- *id = ptr->data;
+ *id = reinterpret_cast<ID *>(ptr->data);
/* clear path */
if (*path) {
@@ -1828,7 +1828,7 @@ static void tree_element_to_path(TreeElement *te,
if (*id) {
/* add the active property to the path */
ptr = &te->rnaptr;
- prop = te->directdata;
+ prop = reinterpret_cast<PropertyRNA *>(te->directdata);
/* array checks */
if (tselem->type == TSE_RNA_ARRAY_ELEM) {
@@ -1888,7 +1888,7 @@ static void do_outliner_drivers_editop(SpaceOutliner *space_outliner,
/* check if RNA-property described by this selected element is an animatable prop */
if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) &&
- RNA_property_animateable(&te->rnaptr, te->directdata)) {
+ RNA_property_animateable(&te->rnaptr, reinterpret_cast<PropertyRNA *>(te->directdata))) {
/* get id + path + index info from the selected element */
tree_element_to_path(te, tselem, &id, &path, &array_index, &flag, &groupmode);
}
@@ -1901,7 +1901,8 @@ static void do_outliner_drivers_editop(SpaceOutliner *space_outliner,
/* array checks */
if (flag & KSP_FLAG_WHOLE_ARRAY) {
/* entire array was selected, so add drivers for all */
- arraylen = RNA_property_array_length(&te->rnaptr, te->directdata);
+ arraylen = RNA_property_array_length(&te->rnaptr,
+ reinterpret_cast<PropertyRNA *>(te->directdata));
}
else {
arraylen = array_index;
@@ -2051,7 +2052,8 @@ static KeyingSet *verify_active_keyingset(Scene *scene, short add)
/* try to find one from scene */
if (scene->active_keyingset > 0) {
- ks = BLI_findlink(&scene->keyingsets, scene->active_keyingset - 1);
+ ks = reinterpret_cast<KeyingSet *>(
+ BLI_findlink(&scene->keyingsets, scene->active_keyingset - 1));
}
/* Add if none found */
@@ -2083,7 +2085,7 @@ static void do_outliner_keyingset_editop(SpaceOutliner *space_outliner,
/* check if RNA-property described by this selected element is an animatable prop */
if (ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM) &&
- RNA_property_animateable(&te->rnaptr, te->directdata)) {
+ RNA_property_animateable(&te->rnaptr, reinterpret_cast<PropertyRNA *>(te->directdata))) {
/* get id + path + index info from the selected element */
tree_element_to_path(te, tselem, &id, &path, &array_index, &flag, &groupmode);
}
@@ -2336,7 +2338,7 @@ void OUTLINER_OT_orphans_purge(wmOperatorType *ot)
/* properties */
PropertyRNA *prop = RNA_def_int(ot->srna, "num_deleted", 0, 0, INT_MAX, "", "", 0, INT_MAX);
- RNA_def_property_flag(prop, PROP_SKIP_SAVE | PROP_HIDDEN);
+ RNA_def_property_flag(prop, (PropertyFlag)(PROP_SKIP_SAVE | PROP_HIDDEN));
RNA_def_boolean(ot->srna,
"do_local_ids",
diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.hh
index 24e86e06f68..24e86e06f68 100644
--- a/source/blender/editors/space_outliner/outliner_intern.h
+++ b/source/blender/editors/space_outliner/outliner_intern.hh
diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.cc
index 7e5b0c90714..4664a3150a1 100644
--- a/source/blender/editors/space_outliner/outliner_ops.c
+++ b/source/blender/editors/space_outliner/outliner_ops.cc
@@ -25,7 +25,7 @@
#include "ED_screen.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
/* ************************** registration **********************************/
diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.cc
index 855975eb2dc..0db83ba250b 100644
--- a/source/blender/editors/space_outliner/outliner_select.c
+++ b/source/blender/editors/space_outliner/outliner_select.cc
@@ -79,7 +79,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
/**
* \note changes to selection are by convention and not essential.
@@ -165,7 +165,7 @@ static void do_outliner_item_posemode_toggle(bContext *C, Scene *scene, Base *ba
*/
static void do_outliner_item_mode_toggle_generic(bContext *C, TreeViewContext *tvc, Base *base)
{
- const int active_mode = tvc->obact->mode;
+ const eObjectMode active_mode = (eObjectMode)tvc->obact->mode;
ED_undo_group_begin(C);
if (ED_object_mode_set(C, OB_MODE_OBJECT)) {
@@ -222,7 +222,7 @@ static void tree_element_viewlayer_activate(bContext *C, TreeElement *te)
return;
}
- ViewLayer *view_layer = te->directdata;
+ ViewLayer *view_layer = reinterpret_cast<ViewLayer *>(te->directdata);
wmWindow *win = CTX_wm_window(C);
Scene *scene = WM_window_get_active_scene(win);
@@ -241,7 +241,7 @@ static void do_outliner_object_select_recursive(ViewLayer *view_layer,
{
Base *base;
- for (base = FIRSTBASE(view_layer); base; base = base->next) {
+ for (base = reinterpret_cast<Base *>(FIRSTBASE(view_layer)); base; base = base->next) {
Object *ob = base->object;
if ((((base->flag & BASE_VISIBLE_DEPSGRAPH) != 0) &&
BKE_object_is_child_recursive(ob_parent, ob))) {
@@ -252,8 +252,7 @@ static void do_outliner_object_select_recursive(ViewLayer *view_layer,
static void do_outliner_bone_select_recursive(bArmature *arm, Bone *bone_parent, bool select)
{
- Bone *bone;
- for (bone = bone_parent->childbase.first; bone; bone = bone->next) {
+ LISTBASE_FOREACH (Bone *, bone, &bone_parent->childbase) {
if (select && PBONE_SELECTABLE(arm, bone)) {
bone->flag |= BONE_SELECTED;
}
@@ -325,7 +324,7 @@ static void tree_element_object_activate(bContext *C,
if (scene->toolsettings->object_flag & SCE_OBJECT_MODE_LOCK) {
if (base != NULL) {
Object *obact = OBACT(view_layer);
- const eObjectMode object_mode = obact ? obact->mode : OB_MODE_OBJECT;
+ const eObjectMode object_mode = obact ? (eObjectMode)obact->mode : OB_MODE_OBJECT;
if (base && !BKE_object_is_mode_compat(base->object, object_mode)) {
if (object_mode == OB_MODE_OBJECT) {
struct Main *bmain = CTX_data_main(C);
@@ -421,7 +420,7 @@ static void tree_element_camera_activate(bContext *C, Scene *scene, TreeElement
scene->camera = ob;
Main *bmain = CTX_data_main(C);
- wmWindowManager *wm = bmain->wm.first;
+ wmWindowManager *wm = reinterpret_cast<wmWindowManager *>(bmain->wm.first);
WM_windows_scene_data_sync(&wm->windows, scene);
DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE);
@@ -461,7 +460,7 @@ static void tree_element_defgroup_activate(bContext *C, TreeElement *te, TreeSto
static void tree_element_gplayer_activate(bContext *C, TreeElement *te, TreeStoreElem *tselem)
{
bGPdata *gpd = (bGPdata *)tselem->id;
- bGPDlayer *gpl = te->directdata;
+ bGPDlayer *gpl = reinterpret_cast<bGPDlayer *>(te->directdata);
/* We can only have a single "active" layer at a time
* and there must always be an active layer... */
@@ -489,8 +488,8 @@ static void tree_element_posechannel_activate(bContext *C,
bool recursive)
{
Object *ob = (Object *)tselem->id;
- bArmature *arm = ob->data;
- bPoseChannel *pchan = te->directdata;
+ bArmature *arm = reinterpret_cast<bArmature *>(ob->data);
+ bPoseChannel *pchan = reinterpret_cast<bPoseChannel *>(te->directdata);
if (!(pchan->bone->flag & BONE_HIDDEN_P)) {
if (set != OL_SETSEL_EXTEND) {
@@ -506,13 +505,12 @@ static void tree_element_posechannel_activate(bContext *C,
continue;
}
- bPoseChannel *pchannel;
- for (pchannel = ob_iter->pose->chanbase.first; pchannel; pchannel = pchannel->next) {
+ LISTBASE_FOREACH (bPoseChannel *, pchannel, &ob_iter->pose->chanbase) {
pchannel->bone->flag &= ~(BONE_TIPSEL | BONE_SELECTED | BONE_ROOTSEL);
}
if (ob != ob_iter) {
- DEG_id_tag_update(ob_iter->data, ID_RECALC_SELECT);
+ DEG_id_tag_update(reinterpret_cast<ID *>(ob_iter->data), ID_RECALC_SELECT);
}
}
MEM_freeN(objects);
@@ -545,14 +543,14 @@ static void tree_element_bone_activate(bContext *C,
bool recursive)
{
bArmature *arm = (bArmature *)tselem->id;
- Bone *bone = te->directdata;
+ Bone *bone = reinterpret_cast<Bone *>(te->directdata);
if (!(bone->flag & BONE_HIDDEN_P)) {
Object *ob = OBACT(view_layer);
if (ob) {
if (set != OL_SETSEL_EXTEND) {
/* single select forces all other bones to get unselected */
- for (Bone *bone_iter = arm->bonebase.first; bone_iter != NULL;
+ for (Bone *bone_iter = reinterpret_cast<Bone *>(arm->bonebase.first); bone_iter != NULL;
bone_iter = bone_iter->next) {
bone_iter->flag &= ~(BONE_TIPSEL | BONE_SELECTED | BONE_ROOTSEL);
do_outliner_bone_select_recursive(arm, bone_iter, false);
@@ -594,13 +592,18 @@ static void tree_element_ebone_activate(bContext *C,
bool recursive)
{
bArmature *arm = (bArmature *)tselem->id;
- EditBone *ebone = te->directdata;
+ EditBone *ebone = reinterpret_cast<EditBone *>(te->directdata);
if (set == OL_SETSEL_NORMAL) {
if (!(ebone->flag & BONE_HIDDEN_A)) {
uint bases_len = 0;
- Base **bases = BKE_view_layer_array_from_bases_in_edit_mode_unique_data(
- view_layer, NULL, &bases_len);
+
+ ObjectsInModeParams ob_params{};
+ ob_params.object_mode = OB_MODE_EDIT;
+ ob_params.no_dup_data = true;
+
+ Base **bases = BKE_view_layer_array_from_bases_in_mode_params(
+ view_layer, NULL, &bases_len, &ob_params);
ED_armature_edit_deselect_all_multi_ex(bases, bases_len);
MEM_freeN(bases);
@@ -701,7 +704,7 @@ static void tree_element_sequence_dup_activate(Scene *scene, TreeElement *UNUSED
#if 0
select_single_seq(seq, 1);
#endif
- Sequence *p = ed->seqbasep->first;
+ Sequence *p = reinterpret_cast<Sequence *>(ed->seqbasep->first);
while (p) {
if ((!p->strip) || (!p->strip->stripdata) || (p->strip->stripdata->name[0] == '\0')) {
p = p->next;
@@ -720,7 +723,8 @@ static void tree_element_sequence_dup_activate(Scene *scene, TreeElement *UNUSED
static void tree_element_master_collection_activate(const bContext *C)
{
ViewLayer *view_layer = CTX_data_view_layer(C);
- LayerCollection *layer_collection = view_layer->layer_collections.first;
+ LayerCollection *layer_collection = reinterpret_cast<LayerCollection *>(
+ view_layer->layer_collections.first);
BKE_layer_collection_activate(view_layer, layer_collection);
/* A very precise notifier - ND_LAYER alone is quite vague, we want to avoid unnecessary work
* when only the active collection changes. */
@@ -730,7 +734,7 @@ static void tree_element_master_collection_activate(const bContext *C)
static void tree_element_layer_collection_activate(bContext *C, TreeElement *te)
{
Scene *scene = CTX_data_scene(C);
- LayerCollection *layer_collection = te->directdata;
+ LayerCollection *layer_collection = reinterpret_cast<LayerCollection *>(te->directdata);
ViewLayer *view_layer = BKE_view_layer_find_from_collection(scene, layer_collection);
BKE_layer_collection_activate(view_layer, layer_collection);
/* A very precise notifier - ND_LAYER alone is quite vague, we want to avoid unnecessary work
@@ -854,7 +858,7 @@ static eOLDrawState tree_element_bone_state_get(const ViewLayer *view_layer,
const TreeStoreElem *tselem)
{
const bArmature *arm = (const bArmature *)tselem->id;
- const Bone *bone = te->directdata;
+ const Bone *bone = reinterpret_cast<Bone *>(te->directdata);
const Object *ob = OBACT(view_layer);
if (ob && ob->data == arm) {
if (bone->flag & BONE_SELECTED) {
@@ -866,7 +870,7 @@ static eOLDrawState tree_element_bone_state_get(const ViewLayer *view_layer,
static eOLDrawState tree_element_ebone_state_get(const TreeElement *te)
{
- const EditBone *ebone = te->directdata;
+ const EditBone *ebone = reinterpret_cast<EditBone *>(te->directdata);
if (ebone->flag & BONE_SELECTED) {
return OL_DRAWSEL_NORMAL;
}
@@ -910,7 +914,7 @@ static eOLDrawState tree_element_posechannel_state_get(const Object *ob_pose,
const TreeStoreElem *tselem)
{
const Object *ob = (const Object *)tselem->id;
- const bPoseChannel *pchan = te->directdata;
+ const bPoseChannel *pchan = reinterpret_cast<bPoseChannel *>(te->directdata);
if (ob == ob_pose && ob->pose) {
if (pchan->bone->flag & BONE_SELECTED) {
return OL_DRAWSEL_NORMAL;
@@ -926,7 +930,7 @@ static eOLDrawState tree_element_viewlayer_state_get(const bContext *C, const Tr
return OL_DRAWSEL_NONE;
}
- const ViewLayer *view_layer = te->directdata;
+ const ViewLayer *view_layer = reinterpret_cast<ViewLayer *>(te->directdata);
if (CTX_data_view_layer(C) == view_layer) {
return OL_DRAWSEL_NORMAL;
@@ -1223,7 +1227,7 @@ static void outliner_set_properties_tab(bContext *C, TreeElement *te, TreeStoreE
/* Expand the selected constraint in the properties editor. */
if (tselem->type != TSE_CONSTRAINT_BASE) {
- BKE_constraint_panel_expand(te->directdata);
+ BKE_constraint_panel_expand(reinterpret_cast<bConstraint *>(te->directdata));
}
break;
}
@@ -1236,7 +1240,8 @@ static void outliner_set_properties_tab(bContext *C, TreeElement *te, TreeStoreE
Object *ob = (Object *)tselem->id;
if (ob->type == OB_GPENCIL) {
- BKE_gpencil_modifier_panel_expand(te->directdata);
+ BKE_gpencil_modifier_panel_expand(
+ reinterpret_cast<GpencilModifierData *>(te->directdata));
}
else {
ModifierData *md = (ModifierData *)te->directdata;
@@ -1269,12 +1274,12 @@ static void outliner_set_properties_tab(bContext *C, TreeElement *te, TreeStoreE
context = BCONTEXT_SHADERFX;
if (tselem->type != TSE_GPENCIL_EFFECT_BASE) {
- BKE_shaderfx_panel_expand(te->directdata);
+ BKE_shaderfx_panel_expand(reinterpret_cast<ShaderFxData *>(te->directdata));
}
break;
case TSE_BONE: {
bArmature *arm = (bArmature *)tselem->id;
- Bone *bone = te->directdata;
+ Bone *bone = reinterpret_cast<Bone *>(te->directdata);
RNA_pointer_create(&arm->id, &RNA_Bone, bone, &ptr);
context = BCONTEXT_BONE;
@@ -1282,7 +1287,7 @@ static void outliner_set_properties_tab(bContext *C, TreeElement *te, TreeStoreE
}
case TSE_EBONE: {
bArmature *arm = (bArmature *)tselem->id;
- EditBone *ebone = te->directdata;
+ EditBone *ebone = reinterpret_cast<EditBone *>(te->directdata);
RNA_pointer_create(&arm->id, &RNA_EditBone, ebone, &ptr);
context = BCONTEXT_BONE;
@@ -1290,8 +1295,8 @@ static void outliner_set_properties_tab(bContext *C, TreeElement *te, TreeStoreE
}
case TSE_POSE_CHANNEL: {
Object *ob = (Object *)tselem->id;
- bArmature *arm = ob->data;
- bPoseChannel *pchan = te->directdata;
+ bArmature *arm = reinterpret_cast<bArmature *>(ob->data);
+ bPoseChannel *pchan = reinterpret_cast<bPoseChannel *>(te->directdata);
RNA_pointer_create(&arm->id, &RNA_PoseBone, pchan, &ptr);
context = BCONTEXT_BONE;
@@ -1299,7 +1304,7 @@ static void outliner_set_properties_tab(bContext *C, TreeElement *te, TreeStoreE
}
case TSE_POSE_BASE: {
Object *ob = (Object *)tselem->id;
- bArmature *arm = ob->data;
+ bArmature *arm = reinterpret_cast<bArmature *>(ob->data);
RNA_pointer_create(&arm->id, &RNA_Armature, arm, &ptr);
context = BCONTEXT_DATA;
@@ -1307,7 +1312,7 @@ static void outliner_set_properties_tab(bContext *C, TreeElement *te, TreeStoreE
}
case TSE_R_LAYER_BASE:
case TSE_R_LAYER: {
- ViewLayer *view_layer = te->directdata;
+ ViewLayer *view_layer = reinterpret_cast<ViewLayer *>(te->directdata);
RNA_pointer_create(tselem->id, &RNA_ViewLayer, view_layer, &ptr);
context = BCONTEXT_VIEW_LAYER;
@@ -1316,7 +1321,7 @@ static void outliner_set_properties_tab(bContext *C, TreeElement *te, TreeStoreE
case TSE_POSEGRP_BASE:
case TSE_POSEGRP: {
Object *ob = (Object *)tselem->id;
- bArmature *arm = ob->data;
+ bArmature *arm = reinterpret_cast<bArmature *>(ob->data);
RNA_pointer_create(&arm->id, &RNA_Armature, arm, &ptr);
context = BCONTEXT_DATA;
@@ -1392,7 +1397,7 @@ static void do_outliner_item_activate_tree_element(bContext *C,
Collection *gr = (Collection *)tselem->id;
if (extend) {
- int sel = BA_SELECT;
+ eObjectSelect_Mode sel = BA_SELECT;
FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN (gr, object) {
Base *base = BKE_view_layer_base_find(tvc->view_layer, object);
if (base && (base->flag & BASE_SELECTED)) {
@@ -1730,7 +1735,7 @@ static int outliner_box_select_exec(bContext *C, wmOperator *op)
ARegion *region = CTX_wm_region(C);
rctf rectf;
- const eSelectOp sel_op = RNA_enum_get(op->ptr, "mode");
+ const eSelectOp sel_op = (eSelectOp)RNA_enum_get(op->ptr, "mode");
const bool select = (sel_op != SEL_OP_SUB);
if (SEL_OP_USE_PRE_DESELECT(sel_op)) {
outliner_flag_set(&space_outliner->tree, TSE_SELECTED, 0);
@@ -1816,7 +1821,7 @@ static TreeElement *outliner_find_rightmost_visible_child(SpaceOutliner *space_o
{
while (te->subtree.last) {
if (TSELEM_OPEN(TREESTORE(te), space_outliner)) {
- te = te->subtree.last;
+ te = reinterpret_cast<TreeElement *>(te->subtree.last);
}
else {
break;
@@ -1860,7 +1865,7 @@ static TreeElement *outliner_find_next_element(SpaceOutliner *space_outliner, Tr
TreeStoreElem *tselem = TREESTORE(te);
if (TSELEM_OPEN(tselem, space_outliner) && te->subtree.first) {
- te = te->subtree.first;
+ te = reinterpret_cast<TreeElement *>(te->subtree.first);
}
else if (te->next) {
te = te->next;
@@ -1897,7 +1902,7 @@ static TreeElement *outliner_walk_right(SpaceOutliner *space_outliner,
/* Only walk down a level if the element is open and not toggling expand */
if (!toggle_all && TSELEM_OPEN(tselem, space_outliner) && !BLI_listbase_is_empty(&te->subtree)) {
- te = te->subtree.first;
+ te = reinterpret_cast<TreeElement *>(te->subtree.first);
}
else {
outliner_item_openclose(space_outliner, te, true, toggle_all);
@@ -1948,7 +1953,7 @@ static TreeElement *find_walk_select_start_element(SpaceOutliner *space_outliner
/* If no active element exists, use the first element in the tree */
if (!active_te) {
- active_te = space_outliner->tree.first;
+ active_te = reinterpret_cast<TreeElement *>(space_outliner->tree.first);
*changed = true;
}
diff --git a/source/blender/editors/space_outliner/outliner_sync.c b/source/blender/editors/space_outliner/outliner_sync.cc
index d95a0dde858..e4af3030f7b 100644
--- a/source/blender/editors/space_outliner/outliner_sync.c
+++ b/source/blender/editors/space_outliner/outliner_sync.cc
@@ -50,7 +50,7 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
void ED_outliner_select_sync_from_object_tag(bContext *C)
{
@@ -93,7 +93,8 @@ void ED_outliner_select_sync_flag_outliners(const bContext *C)
Main *bmain = CTX_data_main(C);
wmWindowManager *wm = CTX_wm_manager(C);
- for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) {
+ for (bScreen *screen = reinterpret_cast<bScreen *>(bmain->screens.first); screen;
+ screen = reinterpret_cast<bScreen *>(screen->id.next)) {
LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) {
if (sl->spacetype == SPACE_OUTLINER) {
@@ -274,7 +275,7 @@ static void outliner_select_sync_to_pose_bone(TreeElement *te,
GSet *selected_pbones)
{
Object *ob = (Object *)tselem->id;
- bArmature *arm = ob->data;
+ bArmature *arm = reinterpret_cast<bArmature *>(ob->data);
bPoseChannel *pchan = (bPoseChannel *)te->directdata;
short bone_flag = pchan->bone->flag;
diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.cc
index 4849da16685..910c0ed0230 100644
--- a/source/blender/editors/space_outliner/outliner_tools.c
+++ b/source/blender/editors/space_outliner/outliner_tools.cc
@@ -95,7 +95,7 @@
#include "SEQ_relations.h"
#include "SEQ_sequencer.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
static CLG_LogRef LOG = {"ed.outliner.tools"};
@@ -488,7 +488,7 @@ static bool scene_fn(bContext *C,
static int outliner_scene_operation_exec(bContext *C, wmOperator *op)
{
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- const eOutliner_PropSceneOps event = RNA_enum_get(op->ptr, "type");
+ const eOutliner_PropSceneOps event = (eOutliner_PropSceneOps)RNA_enum_get(op->ptr, "type");
if (outliner_do_scene_operation(C, event, &space_outliner->tree, scene_fn) == false) {
return OPERATOR_CANCELLED;
@@ -641,7 +641,8 @@ static uiBlock *merged_element_search_menu(bContext *C, ARegion *region, void *d
NULL);
/* Center the menu on the cursor */
- UI_block_bounds_set_popup(block, 6, (const int[2]){-(menu_width / 2), 0});
+ const int offset[2] = {-(menu_width / 2), 0};
+ UI_block_bounds_set_popup(block, 6, offset);
return block;
}
@@ -650,7 +651,7 @@ void merged_element_search_menu_invoke(bContext *C,
TreeElement *parent_te,
TreeElement *activate_te)
{
- MergedSearchData *select_data = MEM_callocN(sizeof(MergedSearchData), "merge_search_data");
+ MergedSearchData *select_data = MEM_cnew<MergedSearchData>("merge_search_data");
select_data->parent_element = parent_te;
select_data->select_element = activate_te;
@@ -810,7 +811,7 @@ static void id_override_library_create_fn(bContext *C,
{
BLI_assert(TSE_IS_REAL_ID(tselem));
ID *id_root = tselem->id;
- OutlinerLibOverrideData *data = user_data;
+ OutlinerLibOverrideData *data = reinterpret_cast<OutlinerLibOverrideData *>(user_data);
const bool do_hierarchy = data->do_hierarchy;
bool success = false;
@@ -903,7 +904,7 @@ static void id_override_library_reset_fn(bContext *C,
{
BLI_assert(TSE_IS_REAL_ID(tselem));
ID *id_root = tselem->id;
- OutlinerLibOverrideData *data = user_data;
+ OutlinerLibOverrideData *data = reinterpret_cast<OutlinerLibOverrideData *>(user_data);
const bool do_hierarchy = data->do_hierarchy;
if (ID_IS_OVERRIDE_LIBRARY_REAL(id_root)) {
@@ -934,7 +935,7 @@ static void id_override_library_resync_fn(bContext *C,
{
BLI_assert(TSE_IS_REAL_ID(tselem));
ID *id_root = tselem->id;
- OutlinerLibOverrideData *data = user_data;
+ OutlinerLibOverrideData *data = reinterpret_cast<OutlinerLibOverrideData *>(user_data);
const bool do_hierarchy_enforce = data->do_resync_hierarchy_enforce;
if (ID_IS_OVERRIDE_LIBRARY_REAL(id_root)) {
@@ -953,13 +954,10 @@ static void id_override_library_resync_fn(bContext *C,
te->store_elem->id->tag |= LIB_TAG_DOIT;
}
- BKE_lib_override_library_resync(bmain,
- scene,
- CTX_data_view_layer(C),
- id_root,
- NULL,
- do_hierarchy_enforce,
- &(struct BlendFileReadReport){.reports = reports});
+ BlendFileReadReport report{};
+ report.reports = reports;
+ BKE_lib_override_library_resync(
+ bmain, scene, CTX_data_view_layer(C), id_root, NULL, do_hierarchy_enforce, &report);
WM_event_add_notifier(C, NC_WINDOW, NULL);
}
@@ -1341,7 +1339,7 @@ static void data_select_linked_fn(int event,
if (event == OL_DOP_SELECT_LINKED) {
if (RNA_struct_is_ID(te->rnaptr.type)) {
bContext *C = (bContext *)C_v;
- ID *id = te->rnaptr.data;
+ ID *id = reinterpret_cast<ID *>(te->rnaptr.data);
ED_object_select_linked_by_id(C, id);
}
@@ -1350,7 +1348,7 @@ static void data_select_linked_fn(int event,
static void constraint_fn(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem), void *C_v)
{
- bContext *C = C_v;
+ bContext *C = reinterpret_cast<bContext *>(C_v);
Main *bmain = CTX_data_main(C);
bConstraint *constraint = (bConstraint *)te->directdata;
Object *ob = (Object *)outliner_search_back(te, ID_OB);
@@ -1445,7 +1443,8 @@ static Base *outliner_batch_delete_hierarchy(
}
object = base->object;
- for (child_base = view_layer->object_bases.first; child_base; child_base = base_next) {
+ for (child_base = reinterpret_cast<Base *>(view_layer->object_bases.first); child_base;
+ child_base = base_next) {
base_next = child_base->next;
for (parent = child_base->object->parent; parent && (parent != object);
parent = parent->parent) {
@@ -1967,7 +1966,7 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op)
TreeElement *te = get_target_element(space_outliner);
get_element_operation_type(te, &scenelevel, &objectlevel, &idlevel, &datalevel);
- eOutlinerIdOpTypes event = RNA_enum_get(op->ptr, "type");
+ eOutlinerIdOpTypes event = (eOutlinerIdOpTypes)RNA_enum_get(op->ptr, "type");
switch (event) {
case OUTLINER_IDOP_UNLINK: {
/* unlink datablock from its parent */
@@ -2050,24 +2049,27 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op)
break;
}
case OUTLINER_IDOP_OVERRIDE_LIBRARY_CREATE: {
+ OutlinerLibOverrideData override_data{};
outliner_do_libdata_operation(C,
op->reports,
scene,
space_outliner,
&space_outliner->tree,
id_override_library_create_fn,
- &(OutlinerLibOverrideData){.do_hierarchy = false});
+ &override_data);
ED_undo_push(C, "Overridden Data");
break;
}
case OUTLINER_IDOP_OVERRIDE_LIBRARY_CREATE_HIERARCHY: {
+ OutlinerLibOverrideData override_data{};
+ override_data.do_hierarchy = true;
outliner_do_libdata_operation(C,
op->reports,
scene,
space_outliner,
&space_outliner->tree,
id_override_library_create_fn,
- &(OutlinerLibOverrideData){.do_hierarchy = true});
+ &override_data);
ED_undo_push(C, "Overridden Data Hierarchy");
break;
}
@@ -2082,58 +2084,67 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op)
break;
}
case OUTLINER_IDOP_OVERRIDE_LIBRARY_RESET: {
+ OutlinerLibOverrideData override_data{};
outliner_do_libdata_operation(C,
op->reports,
scene,
space_outliner,
&space_outliner->tree,
id_override_library_reset_fn,
- &(OutlinerLibOverrideData){.do_hierarchy = false});
+ &override_data);
ED_undo_push(C, "Reset Overridden Data");
break;
}
case OUTLINER_IDOP_OVERRIDE_LIBRARY_RESET_HIERARCHY: {
+ OutlinerLibOverrideData override_data{};
+ override_data.do_hierarchy = true;
outliner_do_libdata_operation(C,
op->reports,
scene,
space_outliner,
&space_outliner->tree,
id_override_library_reset_fn,
- &(OutlinerLibOverrideData){.do_hierarchy = true});
+ &override_data);
ED_undo_push(C, "Reset Overridden Data Hierarchy");
break;
}
case OUTLINER_IDOP_OVERRIDE_LIBRARY_RESYNC_HIERARCHY: {
+ OutlinerLibOverrideData override_data{};
+ override_data.do_hierarchy = true;
outliner_do_libdata_operation(C,
op->reports,
scene,
space_outliner,
&space_outliner->tree,
id_override_library_resync_fn,
- &(OutlinerLibOverrideData){.do_hierarchy = true});
+ &override_data);
ED_undo_push(C, "Resync Overridden Data Hierarchy");
break;
}
case OUTLINER_IDOP_OVERRIDE_LIBRARY_RESYNC_HIERARCHY_ENFORCE: {
- outliner_do_libdata_operation(
- C,
- op->reports,
- scene,
- space_outliner,
- &space_outliner->tree,
- id_override_library_resync_fn,
- &(OutlinerLibOverrideData){.do_hierarchy = true, .do_resync_hierarchy_enforce = true});
+ OutlinerLibOverrideData override_data{};
+ override_data.do_hierarchy = true;
+ override_data.do_resync_hierarchy_enforce = true;
+ outliner_do_libdata_operation(C,
+ op->reports,
+ scene,
+ space_outliner,
+ &space_outliner->tree,
+ id_override_library_resync_fn,
+ &override_data);
ED_undo_push(C, "Resync Overridden Data Hierarchy");
break;
}
case OUTLINER_IDOP_OVERRIDE_LIBRARY_DELETE_HIERARCHY: {
+ OutlinerLibOverrideData override_data{};
+ override_data.do_hierarchy = true;
outliner_do_libdata_operation(C,
op->reports,
scene,
space_outliner,
&space_outliner->tree,
id_override_library_delete_fn,
- &(OutlinerLibOverrideData){.do_hierarchy = true});
+ &override_data);
ED_undo_push(C, "Delete Overridden Data Hierarchy");
break;
}
@@ -2320,7 +2331,7 @@ static int outliner_lib_operation_exec(bContext *C, wmOperator *op)
TreeElement *te = get_target_element(space_outliner);
get_element_operation_type(te, &scenelevel, &objectlevel, &idlevel, &datalevel);
- eOutlinerLibOpTypes event = RNA_enum_get(op->ptr, "type");
+ eOutlinerLibOpTypes event = (eOutlinerLibOpTypes)RNA_enum_get(op->ptr, "type");
switch (event) {
case OL_LIB_RENAME: {
outliner_do_libdata_operation(
@@ -2438,7 +2449,8 @@ static int outliner_action_set_exec(bContext *C, wmOperator *op)
get_element_operation_type(te, &scenelevel, &objectlevel, &idlevel, &datalevel);
/* get action to use */
- act = BLI_findlink(&bmain->actions, RNA_enum_get(op->ptr, "action"));
+ act = reinterpret_cast<bAction *>(
+ BLI_findlink(&bmain->actions, RNA_enum_get(op->ptr, "action")));
if (act == NULL) {
BKE_report(op->reports, RPT_ERROR, "No valid action to add");
@@ -2545,7 +2557,7 @@ static int outliner_animdata_operation_exec(bContext *C, wmOperator *op)
}
/* perform the core operation */
- eOutliner_AnimDataOps event = RNA_enum_get(op->ptr, "type");
+ eOutliner_AnimDataOps event = (eOutliner_AnimDataOps)RNA_enum_get(op->ptr, "type");
switch (event) {
case OUTLINER_ANIMOP_CLEAR_ADT:
/* Remove Animation Data - this may remove the active action, in some cases... */
@@ -2635,7 +2647,7 @@ static const EnumPropertyItem prop_constraint_op_types[] = {
static int outliner_constraint_operation_exec(bContext *C, wmOperator *op)
{
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- eOutliner_PropConstraintOps event = RNA_enum_get(op->ptr, "type");
+ eOutliner_PropConstraintOps event = (eOutliner_PropConstraintOps)RNA_enum_get(op->ptr, "type");
outliner_do_data_operation(
space_outliner, TSE_CONSTRAINT, event, &space_outliner->tree, constraint_fn, C);
@@ -2682,7 +2694,7 @@ static const EnumPropertyItem prop_modifier_op_types[] = {
static int outliner_modifier_operation_exec(bContext *C, wmOperator *op)
{
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
- eOutliner_PropModifierOps event = RNA_enum_get(op->ptr, "type");
+ eOutliner_PropModifierOps event = (eOutliner_PropModifierOps)RNA_enum_get(op->ptr, "type");
outliner_do_data_operation(
space_outliner, TSE_MODIFIER, event, &space_outliner->tree, modifier_fn, C);
@@ -2725,7 +2737,7 @@ static int outliner_data_operation_exec(bContext *C, wmOperator *op)
TreeElement *te = get_target_element(space_outliner);
get_element_operation_type(te, &scenelevel, &objectlevel, &idlevel, &datalevel);
- eOutliner_PropDataOps event = RNA_enum_get(op->ptr, "type");
+ eOutliner_PropDataOps event = (eOutliner_PropDataOps)RNA_enum_get(op->ptr, "type");
switch (datalevel) {
case TSE_POSE_CHANNEL: {
outliner_do_data_operation(
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.cc
index e461eb4c69e..de0f7a0f9df 100644
--- a/source/blender/editors/space_outliner/outliner_tree.c
+++ b/source/blender/editors/space_outliner/outliner_tree.cc
@@ -76,7 +76,7 @@
#include "UI_interface.h"
#include "UI_resources.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
#include "tree/tree_display.h"
#include "tree/tree_element.h"
@@ -102,7 +102,7 @@ static void outliner_storage_cleanup(SpaceOutliner *space_outliner)
BLI_mempool_iter iter;
BLI_mempool_iternew(ts, &iter);
- while ((tselem = BLI_mempool_iterstep(&iter))) {
+ while ((tselem = reinterpret_cast<TreeStoreElem *>(BLI_mempool_iterstep(&iter)))) {
tselem->used = 0;
}
@@ -112,7 +112,7 @@ static void outliner_storage_cleanup(SpaceOutliner *space_outliner)
space_outliner->storeflag &= ~SO_TREESTORE_CLEANUP;
BLI_mempool_iternew(ts, &iter);
- while ((tselem = BLI_mempool_iterstep(&iter))) {
+ while ((tselem = reinterpret_cast<TreeStoreElem *>(BLI_mempool_iterstep(&iter)))) {
if (tselem->id == NULL) {
unused++;
}
@@ -132,9 +132,9 @@ static void outliner_storage_cleanup(SpaceOutliner *space_outliner)
BLI_mempool *new_ts = BLI_mempool_create(
sizeof(TreeStoreElem), BLI_mempool_len(ts) - unused, 512, BLI_MEMPOOL_ALLOW_ITER);
BLI_mempool_iternew(ts, &iter);
- while ((tselem = BLI_mempool_iterstep(&iter))) {
+ while ((tselem = reinterpret_cast<TreeStoreElem *>(BLI_mempool_iterstep(&iter)))) {
if (tselem->id) {
- tsenew = BLI_mempool_alloc(new_ts);
+ tsenew = reinterpret_cast<TreeStoreElem *>(BLI_mempool_alloc(new_ts));
*tsenew = *tselem;
}
}
@@ -163,8 +163,8 @@ static void check_persistent(
sizeof(TreeStoreElem), 1, 512, BLI_MEMPOOL_ALLOW_ITER);
}
if (space_outliner->runtime->treehash == NULL) {
- space_outliner->runtime->treehash = BKE_outliner_treehash_create_from_treestore(
- space_outliner->treestore);
+ space_outliner->runtime->treehash = reinterpret_cast<GHash *>(
+ BKE_outliner_treehash_create_from_treestore(space_outliner->treestore));
}
/* find any unused tree element in treestore and mark it as used
@@ -178,7 +178,7 @@ static void check_persistent(
}
/* add 1 element to treestore */
- tselem = BLI_mempool_alloc(space_outliner->treestore);
+ tselem = reinterpret_cast<TreeStoreElem *>(BLI_mempool_alloc(space_outliner->treestore));
tselem->type = type;
tselem->nr = type ? nr : 0;
tselem->id = id;
@@ -314,7 +314,7 @@ static void outliner_add_object_contents(SpaceOutliner *space_outliner,
outliner_add_element(space_outliner, &te->subtree, ob->data, te, TSE_SOME_ID, 0);
if (ob->pose) {
- bArmature *arm = ob->data;
+ bArmature *arm = reinterpret_cast<bArmature *>(ob->data);
TreeElement *tenla = outliner_add_element(
space_outliner, &te->subtree, ob, te, TSE_POSE_BASE, 0);
tenla->name = IFACE_("Pose");
@@ -360,7 +360,7 @@ static void outliner_add_object_contents(SpaceOutliner *space_outliner,
}
}
/* make hierarchy */
- TreeElement *ten = tenla->subtree.first;
+ TreeElement *ten = reinterpret_cast<TreeElement *>(tenla->subtree.first);
while (ten) {
TreeElement *nten = ten->next, *par;
tselem = TREESTORE(ten);
@@ -715,13 +715,15 @@ static void outliner_add_id_contents(SpaceOutliner *space_outliner,
ebone->temp.p = ten;
}
/* make hierarchy */
- TreeElement *ten = arm->edbo->first ? ((EditBone *)arm->edbo->first)->temp.p : NULL;
+ TreeElement *ten = arm->edbo->first ? reinterpret_cast<TreeElement *>(
+ ((EditBone *)arm->edbo->first)->temp.p) :
+ NULL;
while (ten) {
TreeElement *nten = ten->next, *par;
EditBone *ebone = (EditBone *)ten->directdata;
if (ebone->parent) {
BLI_remlink(&te->subtree, ten);
- par = ebone->parent->temp.p;
+ par = reinterpret_cast<TreeElement *>(ebone->parent->temp.p);
BLI_addtail(&par->subtree, ten);
ten->parent = par;
}
@@ -855,12 +857,12 @@ TreeElement *outliner_add_element(SpaceOutliner *space_outliner,
short type,
short index)
{
- ID *id = idv;
+ ID *id = reinterpret_cast<ID *>(idv);
if (ELEM(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) {
id = ((PointerRNA *)idv)->owner_id;
if (!id) {
- id = ((PointerRNA *)idv)->data;
+ id = reinterpret_cast<ID *>(((PointerRNA *)idv)->data);
}
}
else if (type == TSE_GP_LAYER) {
@@ -881,7 +883,7 @@ TreeElement *outliner_add_element(SpaceOutliner *space_outliner,
BLI_assert(TREESTORE_ID_TYPE(id));
}
- TreeElement *te = MEM_callocN(sizeof(TreeElement), __func__);
+ TreeElement *te = MEM_cnew<TreeElement>(__func__);
/* add to the visual tree */
BLI_addtail(lb, te);
/* add to the storage */
@@ -1047,7 +1049,8 @@ TreeElement *outliner_add_element(SpaceOutliner *space_outliner,
CLAMP_MAX(tot, tot_limit);
/* auto open these cases */
- if (!parent || (RNA_property_type(parent->directdata)) == PROP_POINTER) {
+ if (!parent || (RNA_property_type(reinterpret_cast<PropertyRNA *>(parent->directdata))) ==
+ PROP_POINTER) {
if (!tselem->used) {
tselem->flag &= ~TSE_CLOSED;
}
@@ -1057,7 +1060,7 @@ TreeElement *outliner_add_element(SpaceOutliner *space_outliner,
for (int a = 0; a < tot; a++) {
PointerRNA propptr;
RNA_property_collection_lookup_int(ptr, iterprop, a, &propptr);
- if (!(RNA_property_flag(propptr.data) & PROP_HIDDEN)) {
+ if (!(RNA_property_flag(reinterpret_cast<PropertyRNA *>(propptr.data)) & PROP_HIDDEN)) {
outliner_add_element(
space_outliner, &te->subtree, (void *)ptr, te, TSE_RNA_PROPERTY, a);
}
@@ -1075,7 +1078,7 @@ TreeElement *outliner_add_element(SpaceOutliner *space_outliner,
PropertyRNA *iterprop = RNA_struct_iterator_property(ptr->type);
RNA_property_collection_lookup_int(ptr, iterprop, index, &propptr);
- PropertyRNA *prop = propptr.data;
+ PropertyRNA *prop = reinterpret_cast<PropertyRNA *>(propptr.data);
PropertyType proptype = RNA_property_type(prop);
te->name = RNA_property_ui_name(prop);
@@ -1132,7 +1135,7 @@ TreeElement *outliner_add_element(SpaceOutliner *space_outliner,
}
}
else if (type == TSE_RNA_ARRAY_ELEM) {
- PropertyRNA *prop = parent->directdata;
+ PropertyRNA *prop = reinterpret_cast<PropertyRNA *>(parent->directdata);
te->directdata = prop;
te->rnaptr = *ptr;
@@ -1140,7 +1143,7 @@ TreeElement *outliner_add_element(SpaceOutliner *space_outliner,
char c = RNA_property_array_item_char(prop, index);
- te->name = MEM_callocN(sizeof(char[20]), "OutlinerRNAArrayName");
+ te->name = reinterpret_cast<char *>(MEM_callocN(sizeof(char[20]), "OutlinerRNAArrayName"));
if (c) {
sprintf((char *)te->name, " %c", c);
}
@@ -1203,7 +1206,7 @@ void outliner_make_object_parent_hierarchy(ListBase *lb)
{
/* build hierarchy */
/* XXX also, set extents here... */
- TreeElement *te = lb->first;
+ TreeElement *te = reinterpret_cast<TreeElement *>(lb->first);
while (te) {
TreeElement *ten = te->next;
TreeStoreElem *tselem = TREESTORE(te);
@@ -1233,7 +1236,8 @@ typedef struct tTreeSort {
/* alphabetical comparator, trying to put objects first */
static int treesort_alpha_ob(const void *v1, const void *v2)
{
- const tTreeSort *x1 = v1, *x2 = v2;
+ const tTreeSort *x1 = reinterpret_cast<const tTreeSort *>(v1);
+ const tTreeSort *x2 = reinterpret_cast<const tTreeSort *>(v2);
/* first put objects last (hierarchy) */
int comp = (x1->idcode == ID_OB);
@@ -1271,7 +1275,8 @@ static int treesort_alpha_ob(const void *v1, const void *v2)
/* Move children that are not in the collection to the end of the list. */
static int treesort_child_not_in_collection(const void *v1, const void *v2)
{
- const tTreeSort *x1 = v1, *x2 = v2;
+ const tTreeSort *x1 = reinterpret_cast<const tTreeSort *>(v1);
+ const tTreeSort *x2 = reinterpret_cast<const tTreeSort *>(v2);
/* Among objects first come the ones in the collection, followed by the ones not on it.
* This way we can have the dashed lines in a separate style connecting the former. */
@@ -1284,7 +1289,8 @@ static int treesort_child_not_in_collection(const void *v1, const void *v2)
/* alphabetical comparator */
static int treesort_alpha(const void *v1, const void *v2)
{
- const tTreeSort *x1 = v1, *x2 = v2;
+ const tTreeSort *x1 = reinterpret_cast<const tTreeSort *>(v1);
+ const tTreeSort *x2 = reinterpret_cast<const tTreeSort *>(v2);
int comp = BLI_strcasecmp_natural(x1->name, x2->name);
@@ -1341,24 +1347,25 @@ static int treesort_obtype_alpha(const void *v1, const void *v2)
/* sort happens on each subtree individual */
static void outliner_sort(ListBase *lb)
{
- TreeElement *te = lb->last;
- if (te == NULL) {
+ TreeElement *last_te = reinterpret_cast<TreeElement *>(lb->last);
+ if (last_te == NULL) {
return;
}
- TreeStoreElem *tselem = TREESTORE(te);
+ TreeStoreElem *last_tselem = TREESTORE(last_te);
/* Sorting rules; only object lists, ID lists, or deform-groups. */
- if (ELEM(tselem->type, TSE_DEFGROUP, TSE_ID_BASE) ||
- ((tselem->type == TSE_SOME_ID) && (te->idcode == ID_OB))) {
+ if (ELEM(last_tselem->type, TSE_DEFGROUP, TSE_ID_BASE) ||
+ ((last_tselem->type == TSE_SOME_ID) && (last_te->idcode == ID_OB))) {
int totelem = BLI_listbase_count(lb);
if (totelem > 1) {
- tTreeSort *tear = MEM_mallocN(totelem * sizeof(tTreeSort), "tree sort array");
+ tTreeSort *tear = reinterpret_cast<tTreeSort *>(
+ MEM_mallocN(totelem * sizeof(tTreeSort), "tree sort array"));
tTreeSort *tp = tear;
int skip = 0;
- for (te = lb->first; te; te = te->next, tp++) {
- tselem = TREESTORE(te);
+ LISTBASE_FOREACH (TreeElement *, te, lb) {
+ TreeStoreElem *tselem = TREESTORE(te);
tp->te = te;
tp->name = te->name;
tp->idcode = te->idcode;
@@ -1371,6 +1378,7 @@ static void outliner_sort(ListBase *lb)
}
tp->id = tselem->id;
+ tp++;
}
/* just sort alphabetically */
@@ -1407,26 +1415,28 @@ static void outliner_sort(ListBase *lb)
static void outliner_collections_children_sort(ListBase *lb)
{
- TreeElement *te = lb->last;
- if (te == NULL) {
+ TreeElement *last_te = reinterpret_cast<TreeElement *>(lb->last);
+ if (last_te == NULL) {
return;
}
- TreeStoreElem *tselem = TREESTORE(te);
+ TreeStoreElem *last_tselem = TREESTORE(last_te);
/* Sorting rules: only object lists. */
- if ((tselem->type == TSE_SOME_ID) && (te->idcode == ID_OB)) {
+ if ((last_tselem->type == TSE_SOME_ID) && (last_te->idcode == ID_OB)) {
int totelem = BLI_listbase_count(lb);
if (totelem > 1) {
- tTreeSort *tear = MEM_mallocN(totelem * sizeof(tTreeSort), "tree sort array");
+ tTreeSort *tear = reinterpret_cast<tTreeSort *>(
+ MEM_mallocN(totelem * sizeof(tTreeSort), "tree sort array"));
tTreeSort *tp = tear;
- for (te = lb->first; te; te = te->next, tp++) {
- tselem = TREESTORE(te);
+ LISTBASE_FOREACH (TreeElement *, te, lb) {
+ TreeStoreElem *tselem = TREESTORE(te);
tp->te = te;
tp->name = te->name;
tp->idcode = te->idcode;
tp->id = tselem->id;
+ tp++;
}
qsort(tear, totelem, sizeof(tTreeSort), treesort_child_not_in_collection);
@@ -1506,9 +1516,8 @@ static TreeElement *outliner_find_first_desired_element_at_y_recursive(
}
if (TSELEM_OPEN(te->store_elem, space_outliner)) {
- TreeElement *te_iter, *te_sub;
- for (te_iter = te->subtree.first; te_iter; te_iter = te_iter->next) {
- te_sub = outliner_find_first_desired_element_at_y_recursive(
+ LISTBASE_FOREACH (TreeElement *, te_iter, &te->subtree) {
+ TreeElement *te_sub = outliner_find_first_desired_element_at_y_recursive(
space_outliner, te_iter, limit, callback_test);
if (te_sub != NULL) {
return te_sub;
@@ -1784,7 +1793,8 @@ static TreeElement *outliner_extract_children_from_subtree(TreeElement *element,
if (outliner_element_is_collection_or_object(element)) {
TreeElement *te_prev = NULL;
- for (TreeElement *te = element->subtree.last; te; te = te_prev) {
+ for (TreeElement *te = reinterpret_cast<TreeElement *>(element->subtree.last); te;
+ te = te_prev) {
te_prev = te->prev;
if (!outliner_element_is_collection_or_object(te)) {
@@ -1811,7 +1821,7 @@ static int outliner_filter_subtree(SpaceOutliner *space_outliner,
TreeElement *te, *te_next;
TreeStoreElem *tselem;
- for (te = lb->first; te; te = te_next) {
+ for (te = reinterpret_cast<TreeElement *>(lb->first); te; te = te_next) {
te_next = te->next;
if ((outliner_element_visible_get(view_layer, te, exclude_filter) == false)) {
/* Don't free the tree, but extract the children from the parent and add to this tree. */
@@ -1932,13 +1942,16 @@ void outliner_build_tree(Main *mainvar,
outliner_storage_cleanup(space_outliner);
outliner_tree_display_destroy(&space_outliner->runtime->tree_display);
- space_outliner->runtime->tree_display = outliner_tree_display_create(space_outliner->outlinevis,
- space_outliner);
+ space_outliner->runtime->tree_display = outliner_tree_display_create(
+ (eSpaceOutliner_Mode)space_outliner->outlinevis, space_outliner);
/* All tree displays should be created as sub-classes of AbstractTreeDisplay. */
- BLI_assert(space_outliner->runtime->tree_display != NULL);
+ BLI_assert(space_outliner->runtime->tree_display != nullptr);
- TreeSourceData source_data = {.bmain = mainvar, .scene = scene, .view_layer = view_layer};
+ TreeSourceData source_data{};
+ source_data.bmain = mainvar;
+ source_data.scene = scene;
+ source_data.view_layer = view_layer;
space_outliner->tree = outliner_tree_display_build_tree(space_outliner->runtime->tree_display,
&source_data);
diff --git a/source/blender/editors/space_outliner/outliner_utils.c b/source/blender/editors/space_outliner/outliner_utils.cc
index d370d508198..cf442074035 100644
--- a/source/blender/editors/space_outliner/outliner_utils.c
+++ b/source/blender/editors/space_outliner/outliner_utils.cc
@@ -42,7 +42,7 @@
#include "UI_interface.h"
#include "UI_view2d.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
/* -------------------------------------------------------------------- */
/** \name Tree View Context
@@ -111,7 +111,7 @@ static TreeElement *outliner_find_item_at_x_in_row_recursive(const TreeElement *
float view_co_x,
bool *r_is_merged_icon)
{
- TreeElement *child_te = parent_te->subtree.first;
+ TreeElement *child_te = reinterpret_cast<TreeElement *>(parent_te->subtree.first);
while (child_te) {
const bool over_element = (view_co_x > child_te->xs) && (view_co_x < child_te->xend);
@@ -295,7 +295,8 @@ bool outliner_tree_traverse(const SpaceOutliner *space_outliner,
TreeTraversalFunc func,
void *customdata)
{
- for (TreeElement *te = tree->first, *te_next; te; te = te_next) {
+ for (TreeElement *te = reinterpret_cast<TreeElement *>(tree->first), *te_next; te;
+ te = te_next) {
TreeTraversalAction func_retval = TRAVERSE_CONTINUE;
/* in case te is freed in callback */
TreeStoreElem *tselem = TREESTORE(te);
diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.cc
index 6c45d39e0d8..4e51797b552 100644
--- a/source/blender/editors/space_outliner/space_outliner.c
+++ b/source/blender/editors/space_outliner/space_outliner.cc
@@ -49,7 +49,7 @@
#include "UI_resources.h"
#include "UI_view2d.h"
-#include "outliner_intern.h"
+#include "outliner_intern.hh"
#include "tree/tree_display.h"
static void outliner_main_region_init(wmWindowManager *wm, ARegion *region)
@@ -104,7 +104,7 @@ static void outliner_main_region_listener(const wmRegionListenerParams *params)
ScrArea *area = params->area;
ARegion *region = params->region;
wmNotifier *wmn = params->notifier;
- SpaceOutliner *space_outliner = area->spacedata.first;
+ SpaceOutliner *space_outliner = reinterpret_cast<SpaceOutliner *>(area->spacedata.first);
/* context changes */
switch (wmn->category) {
@@ -267,13 +267,12 @@ static void outliner_main_region_message_subscribe(const wmRegionMessageSubscrib
struct wmMsgBus *mbus = params->message_bus;
ScrArea *area = params->area;
ARegion *region = params->region;
- SpaceOutliner *space_outliner = area->spacedata.first;
+ SpaceOutliner *space_outliner = reinterpret_cast<SpaceOutliner *>(area->spacedata.first);
- wmMsgSubscribeValue msg_sub_value_region_tag_redraw = {
- .owner = region,
- .user_data = region,
- .notify = ED_region_do_msg_notify_tag_redraw,
- };
+ wmMsgSubscribeValue msg_sub_value_region_tag_redraw{};
+ msg_sub_value_region_tag_redraw.owner = region;
+ msg_sub_value_region_tag_redraw.user_data = region;
+ msg_sub_value_region_tag_redraw.notify = ED_region_do_msg_notify_tag_redraw;
if (ELEM(space_outliner->outlinevis, SO_VIEW_LAYER, SO_SCENES, SO_OVERRIDES_LIBRARY)) {
WM_msg_subscribe_rna_anon_prop(mbus, Window, view_layer, &msg_sub_value_region_tag_redraw);
@@ -324,7 +323,7 @@ static SpaceLink *outliner_create(const ScrArea *UNUSED(area), const Scene *UNUS
ARegion *region;
SpaceOutliner *space_outliner;
- space_outliner = MEM_callocN(sizeof(SpaceOutliner), "initoutliner");
+ space_outliner = MEM_cnew<SpaceOutliner>("initoutliner");
space_outliner->spacetype = SPACE_OUTLINER;
space_outliner->filter_id_type = ID_GR;
space_outliner->show_restrict_flags = SO_RESTRICT_ENABLE | SO_RESTRICT_HIDE | SO_RESTRICT_RENDER;
@@ -334,14 +333,14 @@ static SpaceLink *outliner_create(const ScrArea *UNUSED(area), const Scene *UNUS
space_outliner->filter = SO_FILTER_NO_VIEW_LAYERS;
/* header */
- region = MEM_callocN(sizeof(ARegion), "header for outliner");
+ region = MEM_cnew<ARegion>("header for outliner");
BLI_addtail(&space_outliner->regionbase, region);
region->regiontype = RGN_TYPE_HEADER;
region->alignment = (U.uiflag & USER_HEADER_BOTTOM) ? RGN_ALIGN_BOTTOM : RGN_ALIGN_TOP;
/* main region */
- region = MEM_callocN(sizeof(ARegion), "main region for outliner");
+ region = MEM_cnew<ARegion>("main region for outliner");
BLI_addtail(&space_outliner->regionbase, region);
region->regiontype = RGN_TYPE_WINDOW;
@@ -371,18 +370,17 @@ static void outliner_free(SpaceLink *sl)
/* spacetype; init callback */
static void outliner_init(wmWindowManager *UNUSED(wm), ScrArea *area)
{
- SpaceOutliner *space_outliner = area->spacedata.first;
+ SpaceOutliner *space_outliner = reinterpret_cast<SpaceOutliner *>(area->spacedata.first);
if (space_outliner->runtime == NULL) {
- space_outliner->runtime = MEM_callocN(sizeof(*space_outliner->runtime),
- "SpaceOutliner_Runtime");
+ space_outliner->runtime = MEM_cnew<SpaceOutliner_Runtime>("SpaceOutliner_Runtime");
}
}
static SpaceLink *outliner_duplicate(SpaceLink *sl)
{
SpaceOutliner *space_outliner = (SpaceOutliner *)sl;
- SpaceOutliner *space_outliner_new = MEM_dupallocN(space_outliner);
+ SpaceOutliner *space_outliner_new = MEM_new<SpaceOutliner>(__func__, *space_outliner);
BLI_listbase_clear(&space_outliner_new->tree);
space_outliner_new->treestore = NULL;
@@ -390,7 +388,8 @@ static SpaceLink *outliner_duplicate(SpaceLink *sl)
space_outliner_new->sync_select_dirty = WM_OUTLINER_SYNC_SELECT_FROM_ALL;
if (space_outliner->runtime) {
- space_outliner_new->runtime = MEM_dupallocN(space_outliner->runtime);
+ space_outliner_new->runtime = MEM_new<SpaceOutliner_Runtime>("SpaceOutliner_runtime dup",
+ *space_outliner->runtime);
space_outliner_new->runtime->tree_display = NULL;
space_outliner_new->runtime->treehash = NULL;
}
@@ -417,7 +416,7 @@ static void outliner_id_remap(ScrArea *area, SpaceLink *slink, ID *old_id, ID *n
bool changed = false;
BLI_mempool_iternew(space_outliner->treestore, &iter);
- while ((tselem = BLI_mempool_iterstep(&iter))) {
+ while ((tselem = reinterpret_cast<TreeStoreElem *>(BLI_mempool_iterstep(&iter)))) {
if (tselem->id == old_id) {
tselem->id = new_id;
changed = true;
@@ -444,14 +443,14 @@ static void outliner_id_remap(ScrArea *area, SpaceLink *slink, ID *old_id, ID *n
static void outliner_deactivate(struct ScrArea *area)
{
/* Remove hover highlights */
- SpaceOutliner *space_outliner = area->spacedata.first;
+ SpaceOutliner *space_outliner = reinterpret_cast<SpaceOutliner *>(area->spacedata.first);
outliner_flag_set(&space_outliner->tree, TSE_HIGHLIGHTED_ANY, false);
ED_region_tag_redraw_no_rebuild(BKE_area_find_region_type(area, RGN_TYPE_WINDOW));
}
void ED_spacetype_outliner(void)
{
- SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype time");
+ SpaceType *st = MEM_cnew<SpaceType>("spacetype time");
ARegionType *art;
st->spaceid = SPACE_OUTLINER;
@@ -469,7 +468,7 @@ void ED_spacetype_outliner(void)
st->context = outliner_context;
/* regions: main window */
- art = MEM_callocN(sizeof(ARegionType), "spacetype outliner region");
+ art = MEM_cnew<ARegionType>("spacetype outliner region");
art->regionid = RGN_TYPE_WINDOW;
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D;
@@ -481,7 +480,7 @@ void ED_spacetype_outliner(void)
BLI_addhead(&st->regiontypes, art);
/* regions: header */
- art = MEM_callocN(sizeof(ARegionType), "spacetype outliner header region");
+ art = MEM_cnew<ARegionType>("spacetype outliner header region");
art->regionid = RGN_TYPE_HEADER;
art->prefsizey = HEADERY;
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D | ED_KEYMAP_HEADER;
diff --git a/source/blender/editors/space_outliner/tree/tree_display_data.cc b/source/blender/editors/space_outliner/tree/tree_display_data.cc
index 8a5c2e7d9f3..f0c94257917 100644
--- a/source/blender/editors/space_outliner/tree/tree_display_data.cc
+++ b/source/blender/editors/space_outliner/tree/tree_display_data.cc
@@ -23,7 +23,7 @@
#include "RNA_access.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.hh"
namespace blender::ed::outliner {
diff --git a/source/blender/editors/space_outliner/tree/tree_display_libraries.cc b/source/blender/editors/space_outliner/tree/tree_display_libraries.cc
index 461104e6bad..8b6096dea7f 100644
--- a/source/blender/editors/space_outliner/tree/tree_display_libraries.cc
+++ b/source/blender/editors/space_outliner/tree/tree_display_libraries.cc
@@ -28,7 +28,7 @@
#include "BLT_translation.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.hh"
namespace blender::ed::outliner {
diff --git a/source/blender/editors/space_outliner/tree/tree_display_orphaned.cc b/source/blender/editors/space_outliner/tree/tree_display_orphaned.cc
index eeb3ca6893a..3efdaa51921 100644
--- a/source/blender/editors/space_outliner/tree/tree_display_orphaned.cc
+++ b/source/blender/editors/space_outliner/tree/tree_display_orphaned.cc
@@ -26,7 +26,7 @@
#include "BKE_main.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.hh"
namespace blender::ed::outliner {
diff --git a/source/blender/editors/space_outliner/tree/tree_display_override_library.cc b/source/blender/editors/space_outliner/tree/tree_display_override_library.cc
index bf9fba30c9f..b1aea801db4 100644
--- a/source/blender/editors/space_outliner/tree/tree_display_override_library.cc
+++ b/source/blender/editors/space_outliner/tree/tree_display_override_library.cc
@@ -28,7 +28,7 @@
#include "BLT_translation.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.hh"
namespace blender::ed::outliner {
diff --git a/source/blender/editors/space_outliner/tree/tree_display_scenes.cc b/source/blender/editors/space_outliner/tree/tree_display_scenes.cc
index 29442aace37..4b489479e28 100644
--- a/source/blender/editors/space_outliner/tree/tree_display_scenes.cc
+++ b/source/blender/editors/space_outliner/tree/tree_display_scenes.cc
@@ -24,7 +24,7 @@
#include "BKE_main.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.hh"
namespace blender::ed::outliner {
diff --git a/source/blender/editors/space_outliner/tree/tree_display_sequencer.cc b/source/blender/editors/space_outliner/tree/tree_display_sequencer.cc
index aa28b164584..26afb720197 100644
--- a/source/blender/editors/space_outliner/tree/tree_display_sequencer.cc
+++ b/source/blender/editors/space_outliner/tree/tree_display_sequencer.cc
@@ -26,7 +26,7 @@
#include "SEQ_sequencer.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.hh"
namespace blender::ed::outliner {
diff --git a/source/blender/editors/space_outliner/tree/tree_display_view_layer.cc b/source/blender/editors/space_outliner/tree/tree_display_view_layer.cc
index ebbc9baaa9f..7782abd7c11 100644
--- a/source/blender/editors/space_outliner/tree/tree_display_view_layer.cc
+++ b/source/blender/editors/space_outliner/tree/tree_display_view_layer.cc
@@ -32,7 +32,7 @@
#include "BLT_translation.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.hh"
namespace blender::ed::outliner {
diff --git a/source/blender/editors/space_outliner/tree/tree_element_anim_data.cc b/source/blender/editors/space_outliner/tree/tree_element_anim_data.cc
index c0fef7c98e2..8b0afb28588 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_anim_data.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_anim_data.cc
@@ -25,7 +25,7 @@
#include "BLT_translation.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.h"
#include "tree_element_anim_data.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_collection.cc b/source/blender/editors/space_outliner/tree/tree_element_collection.cc
index 1add61db7f1..c1894733c62 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_collection.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_collection.cc
@@ -22,7 +22,7 @@
#include "BLT_translation.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.h"
#include "tree_element_collection.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_driver.cc b/source/blender/editors/space_outliner/tree/tree_element_driver.cc
index 42f51908eaa..9fd1d18ba80 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_driver.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_driver.cc
@@ -27,7 +27,7 @@
#include "BLT_translation.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.h"
#include "tree_element_driver.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_gpencil_layer.cc b/source/blender/editors/space_outliner/tree/tree_element_gpencil_layer.cc
index 91e6fdcde4b..6f5db2b3f12 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_gpencil_layer.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_gpencil_layer.cc
@@ -22,7 +22,7 @@
#include "DNA_gpencil_types.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_element_gpencil_layer.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_id.cc b/source/blender/editors/space_outliner/tree/tree_element_id.cc
index 7ff5a3285f1..7b73c33f510 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_id.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_id.cc
@@ -29,7 +29,7 @@
#include "RNA_access.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.h"
#include "tree_element_id_library.hh"
#include "tree_element_id_scene.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_id_library.cc b/source/blender/editors/space_outliner/tree/tree_element_id_library.cc
index 36f536c9845..9261b2ca537 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_id_library.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_id_library.cc
@@ -20,7 +20,7 @@
#include "DNA_listBase.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_element_id_library.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_id_scene.cc b/source/blender/editors/space_outliner/tree/tree_element_id_scene.cc
index ae81b44a1e4..a92e3ba9089 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_id_scene.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_id_scene.cc
@@ -20,7 +20,7 @@
#include "DNA_listBase.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.h"
#include "tree_element_id_scene.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_nla.cc b/source/blender/editors/space_outliner/tree/tree_element_nla.cc
index 65832e8f981..a4be8fa0fdc 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_nla.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_nla.cc
@@ -25,7 +25,7 @@
#include "BLT_translation.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.h"
#include "tree_element_nla.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_overrides.cc b/source/blender/editors/space_outliner/tree/tree_element_overrides.cc
index 731beb3956e..91f56d20a65 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_overrides.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_overrides.cc
@@ -29,7 +29,7 @@
#include "RNA_access.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.h"
#include "tree_element_overrides.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_scene_objects.cc b/source/blender/editors/space_outliner/tree/tree_element_scene_objects.cc
index a46e8de1bdd..af058e9eea8 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_scene_objects.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_scene_objects.cc
@@ -24,7 +24,7 @@
#include "BLT_translation.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.h"
#include "tree_element_scene_objects.hh"
diff --git a/source/blender/editors/space_outliner/tree/tree_element_view_layer.cc b/source/blender/editors/space_outliner/tree/tree_element_view_layer.cc
index 7bb9405147e..86e680b20ad 100644
--- a/source/blender/editors/space_outliner/tree/tree_element_view_layer.cc
+++ b/source/blender/editors/space_outliner/tree/tree_element_view_layer.cc
@@ -24,7 +24,7 @@
#include "BLT_translation.h"
-#include "../outliner_intern.h"
+#include "../outliner_intern.hh"
#include "tree_display.h"
#include "tree_element_view_layer.hh"
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index 5981d20cc38..45ac596695f 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -259,7 +259,7 @@ typedef enum eSpaceButtons_OutlinerSync {
/** \name Outliner
* \{ */
-/** Defined in `outliner_intern.h`. */
+/** Defined in `outliner_intern.hh`. */
typedef struct SpaceOutliner_Runtime SpaceOutliner_Runtime;
/** Outliner */
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 3d56303a424..d1f790ce3e2 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -118,6 +118,7 @@ struct wmOperator;
struct wmWindowManager;
#include "BLI_compiler_attrs.h"
+#include "BLI_utildefines.h"
#include "DNA_listBase.h"
#include "DNA_uuid_types.h"
#include "DNA_vec_types.h"
@@ -976,6 +977,7 @@ typedef enum eWM_DragFlags {
WM_DRAG_NOP = 0,
WM_DRAG_FREE_DATA = 1,
} eWM_DragFlags;
+ENUM_OPERATORS(eWM_DragFlags, WM_DRAG_FREE_DATA)
/* NOTE: structs need not exported? */