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:
Diffstat (limited to 'source/blender/editors/space_outliner/outliner_collections.cc')
-rw-r--r--source/blender/editors/space_outliner/outliner_collections.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/source/blender/editors/space_outliner/outliner_collections.cc b/source/blender/editors/space_outliner/outliner_collections.cc
index a4ff44512ef..8ca2ffe6a9c 100644
--- a/source/blender/editors/space_outliner/outliner_collections.cc
+++ b/source/blender/editors/space_outliner/outliner_collections.cc
@@ -354,7 +354,7 @@ void outliner_collection_delete(
else {
LISTBASE_FOREACH (CollectionParent *, cparent, &collection->parents) {
Collection *parent = cparent->collection;
- if (ID_IS_LINKED(parent)) {
+ if (ID_IS_LINKED(parent) || ID_IS_OVERRIDE_LIBRARY(parent)) {
skip = true;
break;
}
@@ -366,7 +366,7 @@ void outliner_collection_delete(
ID *scene_owner = id_type->owner_get(bmain, &parent->id);
BLI_assert(GS(scene_owner->name) == ID_SCE);
- if (ID_IS_LINKED(scene_owner)) {
+ if (ID_IS_LINKED(scene_owner) || ID_IS_OVERRIDE_LIBRARY(scene_owner)) {
skip = true;
break;
}
@@ -603,7 +603,9 @@ static int collection_duplicate_exec(bContext *C, wmOperator *op)
if (ID_IS_LINKED(scene_owner) || ID_IS_OVERRIDE_LIBRARY(scene_owner)) {
scene_owner = CTX_data_scene(C);
- parent = ID_IS_LINKED(scene_owner) ? nullptr : scene_owner->master_collection;
+ parent = (ID_IS_LINKED(scene_owner) || ID_IS_OVERRIDE_LIBRARY(scene_owner)) ?
+ nullptr :
+ scene_owner->master_collection;
}
}
@@ -1293,6 +1295,7 @@ static bool collection_disable_render_poll(bContext *C)
static int collection_flag_exec(bContext *C, wmOperator *op)
{
+ Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
ViewLayer *view_layer = CTX_data_view_layer(C);
SpaceOutliner *space_outliner = CTX_wm_space_outliner(C);
@@ -1319,7 +1322,7 @@ static int collection_flag_exec(bContext *C, wmOperator *op)
LayerCollection *layer_collection = reinterpret_cast<LayerCollection *>(
BLI_gsetIterator_getKey(&collections_to_edit_iter));
Collection *collection = layer_collection->collection;
- if (ID_IS_LINKED(collection)) {
+ if (!BKE_id_is_editable(bmain, &collection->id)) {
continue;
}
if (clear) {
@@ -1347,7 +1350,7 @@ static int collection_flag_exec(bContext *C, wmOperator *op)
GSET_ITER (collections_to_edit_iter, data.collections_to_edit) {
Collection *collection = reinterpret_cast<Collection *>(
BLI_gsetIterator_getKey(&collections_to_edit_iter));
- if (ID_IS_LINKED(collection)) {
+ if (!BKE_id_is_editable(bmain, &collection->id)) {
continue;
}
@@ -1600,7 +1603,7 @@ static int outliner_color_tag_set_exec(bContext *C, wmOperator *op)
if (collection == scene->master_collection) {
continue;
}
- if (ID_IS_LINKED(collection)) {
+ if (!BKE_id_is_editable(CTX_data_main(C), &collection->id)) {
BKE_report(op->reports, RPT_WARNING, "Can't add a color tag to a linked collection");
continue;
}