From 25e5ec245c17c95480acbc231600d581a53702c0 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Thu, 31 May 2018 14:34:16 +0200 Subject: Support Move / Link to collection in the outliner as well --- .../editors/space_outliner/outliner_collections.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'source/blender/editors/space_outliner/outliner_collections.c') diff --git a/source/blender/editors/space_outliner/outliner_collections.c b/source/blender/editors/space_outliner/outliner_collections.c index ff8868d87e7..909938ad606 100644 --- a/source/blender/editors/space_outliner/outliner_collections.c +++ b/source/blender/editors/space_outliner/outliner_collections.c @@ -42,6 +42,7 @@ #include "DEG_depsgraph_build.h" #include "ED_object.h" +#include "ED_outliner.h" #include "ED_screen.h" #include "WM_api.h" @@ -695,3 +696,21 @@ void OUTLINER_OT_collection_include_set(wmOperatorType *ot) /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } + +/** + * Populates the \param objects ListBase with all the outliner selected objects + * We store it as (Object *)LinkData->data + * \param objects expected to be empty + */ +void ED_outliner_selected_objects_get(const bContext *C, ListBase *objects) +{ + SpaceOops *soops = CTX_wm_space_outliner(C); + struct ObjectsSelectedData data = {{NULL}}; + outliner_tree_traverse(soops, &soops->tree, 0, TSE_SELECTED, outliner_find_selected_objects, &data); + LISTBASE_FOREACH (LinkData *, link, &data.objects_selected_array) { + TreeElement *ten_selected = (TreeElement *)link->data; + Object *ob = (Object *)TREESTORE(ten_selected)->id; + BLI_addtail(objects, BLI_genericNodeN(ob)); + } + BLI_freelistN(&data.objects_selected_array); +} -- cgit v1.2.3