Outliner ID Remap Users: hide ID type from the UI

The correct type should be set by invoke already, changing it to a non-
matching type (e.g. trying to remap Mesh users with a Camera block) does
not really make sense afaict, reason being that we would be presented
with the "Invalid old/new ID pair" message in such case anyways (code
checks GS(old_id->name) == GS(new_id->name)).

This alone wouldnt be a pressing issue, but since doing this with an
object ID type crashes atm., it seems to make sense to clean this up now
(of course the crash should be looked into, but this is for a separate
patch -- if that is solved, we could also think about adding the "Remap
Users" entry back in the context menu for objects as well [which was
removed in rB17bd5c9d4b1e for some reason]).

Part of T93799.

Differential Revision: https://developer.blender.org/D13512
This commit is contained in:
Philipp Oeser 2021-12-08 12:45:56 +01:00
parent 9690b7c91b
commit 7c9e409985
Notes: blender-bot 2023-02-14 03:46:57 +01:00
Referenced by issue #93814, Outliner: Remap Users spawns multiple dialogs on top of each other
Referenced by issue #93799, Outliner: Remap Users crash (for `ID Type` `Object`)
1 changed files with 2 additions and 0 deletions

View File

@ -703,6 +703,8 @@ void OUTLINER_OT_id_remap(wmOperatorType *ot)
prop = RNA_def_enum(ot->srna, "id_type", rna_enum_id_type_items, ID_OB, "ID Type", "");
RNA_def_property_translation_context(prop, BLT_I18NCONTEXT_ID_ID);
/* Changing ID type wont make sense, would return early with "Invalid old/new ID pair" anyways. */
RNA_def_property_flag(prop, PROP_HIDDEN);
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);