forked from bartvdbraak/blender
Multi-View: Show multiview image properties only in the places where
they are supported aka, remove multiview properties from the texture panel, the textures node (image), and any other parts. The multiview options are now to be explicitly set in the image template in order to have them available in the respective panel
This commit is contained in:
parent
e944af67f7
commit
9326820a1b
@ -574,7 +574,7 @@ class IMAGE_PT_image_properties(Panel):
|
|||||||
sima = context.space_data
|
sima = context.space_data
|
||||||
iuser = sima.image_user
|
iuser = sima.image_user
|
||||||
|
|
||||||
layout.template_image(sima, "image", iuser)
|
layout.template_image(sima, "image", iuser, multiview=True)
|
||||||
|
|
||||||
|
|
||||||
class IMAGE_PT_game_properties(Panel):
|
class IMAGE_PT_game_properties(Panel):
|
||||||
|
@ -901,7 +901,7 @@ void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, const char *prop
|
|||||||
PointerRNA *used_ptr, const char *used_propname, int active_layer);
|
PointerRNA *used_ptr, const char *used_propname, int active_layer);
|
||||||
void uiTemplateGameStates(uiLayout *layout, struct PointerRNA *ptr, const char *propname,
|
void uiTemplateGameStates(uiLayout *layout, struct PointerRNA *ptr, const char *propname,
|
||||||
PointerRNA *used_ptr, const char *used_propname, int active_state);
|
PointerRNA *used_ptr, const char *used_propname, int active_state);
|
||||||
void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *userptr, int compact);
|
void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *userptr, int compact, int multiview);
|
||||||
void uiTemplateImageSettings(uiLayout *layout, struct PointerRNA *imfptr, int color_management);
|
void uiTemplateImageSettings(uiLayout *layout, struct PointerRNA *imfptr, int color_management);
|
||||||
void uiTemplateImageStereo3d(uiLayout *layout, struct PointerRNA *stereo3d_format_ptr);
|
void uiTemplateImageStereo3d(uiLayout *layout, struct PointerRNA *stereo3d_format_ptr);
|
||||||
void uiTemplateImageViews(uiLayout *layout, struct PointerRNA *imaptr);
|
void uiTemplateImageViews(uiLayout *layout, struct PointerRNA *imaptr);
|
||||||
|
@ -787,7 +787,7 @@ static void rna_update_cb(bContext *C, void *arg_cb, void *UNUSED(arg))
|
|||||||
RNA_property_update(C, &cb->ptr, cb->prop);
|
RNA_property_update(C, &cb->ptr, cb->prop);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, PointerRNA *userptr, int compact)
|
void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, PointerRNA *userptr, int compact, int multiview)
|
||||||
{
|
{
|
||||||
PropertyRNA *prop;
|
PropertyRNA *prop;
|
||||||
PointerRNA imaptr;
|
PointerRNA imaptr;
|
||||||
@ -940,11 +940,13 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
|
|||||||
BKE_image_release_ibuf(ima, ibuf, NULL);
|
BKE_image_release_ibuf(ima, ibuf, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((scene->r.scemode & R_MULTIVIEW) != 0) {
|
if (multiview) {
|
||||||
uiItemR(layout, &imaptr, "use_multiview", 0, NULL, ICON_NONE);
|
if ((scene->r.scemode & R_MULTIVIEW) != 0) {
|
||||||
|
uiItemR(layout, &imaptr, "use_multiview", 0, NULL, ICON_NONE);
|
||||||
|
|
||||||
if (RNA_boolean_get(&imaptr, "use_multiview")) {
|
if (RNA_boolean_get(&imaptr, "use_multiview")) {
|
||||||
uiTemplateImageViews(layout, &imaptr);
|
uiTemplateImageViews(layout, &imaptr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -831,7 +831,7 @@ static void node_shader_buts_tex_image(uiLayout *layout, bContext *C, PointerRNA
|
|||||||
static void node_shader_buts_tex_image_ex(uiLayout *layout, bContext *C, PointerRNA *ptr)
|
static void node_shader_buts_tex_image_ex(uiLayout *layout, bContext *C, PointerRNA *ptr)
|
||||||
{
|
{
|
||||||
PointerRNA iuserptr = RNA_pointer_get(ptr, "image_user");
|
PointerRNA iuserptr = RNA_pointer_get(ptr, "image_user");
|
||||||
uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0);
|
uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_shader_buts_tex_environment(uiLayout *layout, bContext *C, PointerRNA *ptr)
|
static void node_shader_buts_tex_environment(uiLayout *layout, bContext *C, PointerRNA *ptr)
|
||||||
@ -1259,7 +1259,7 @@ static void node_composit_buts_image_ex(uiLayout *layout, bContext *C, PointerRN
|
|||||||
|
|
||||||
RNA_pointer_create((ID *)ptr->id.data, &RNA_ImageUser, node->storage, &iuserptr);
|
RNA_pointer_create((ID *)ptr->id.data, &RNA_ImageUser, node->storage, &iuserptr);
|
||||||
uiLayoutSetContextPointer(layout, "image_user", &iuserptr);
|
uiLayoutSetContextPointer(layout, "image_user", &iuserptr);
|
||||||
uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0);
|
uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, PointerRNA *ptr)
|
static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, PointerRNA *ptr)
|
||||||
@ -2787,7 +2787,7 @@ static void node_texture_buts_image_ex(uiLayout *layout, bContext *C, PointerRNA
|
|||||||
PointerRNA iuserptr;
|
PointerRNA iuserptr;
|
||||||
|
|
||||||
RNA_pointer_create((ID *)ptr->id.data, &RNA_ImageUser, node->storage, &iuserptr);
|
RNA_pointer_create((ID *)ptr->id.data, &RNA_ImageUser, node->storage, &iuserptr);
|
||||||
uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0);
|
uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void node_texture_buts_output(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
|
static void node_texture_buts_output(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
|
||||||
|
@ -773,6 +773,7 @@ void RNA_api_ui_layout(StructRNA *srna)
|
|||||||
parm = RNA_def_pointer(func, "image_user", "ImageUser", "", "");
|
parm = RNA_def_pointer(func, "image_user", "ImageUser", "", "");
|
||||||
RNA_def_property_flag(parm, PROP_REQUIRED | PROP_RNAPTR | PROP_NEVER_NULL);
|
RNA_def_property_flag(parm, PROP_REQUIRED | PROP_RNAPTR | PROP_NEVER_NULL);
|
||||||
RNA_def_boolean(func, "compact", false, "", "Use more compact layout");
|
RNA_def_boolean(func, "compact", false, "", "Use more compact layout");
|
||||||
|
RNA_def_boolean(func, "multiview", false, "", "Expose Multi-View options");
|
||||||
|
|
||||||
func = RNA_def_function(srna, "template_image_settings", "uiTemplateImageSettings");
|
func = RNA_def_function(srna, "template_image_settings", "uiTemplateImageSettings");
|
||||||
RNA_def_function_ui_description(func, "User interface for setting image format options");
|
RNA_def_function_ui_description(func, "User interface for setting image format options");
|
||||||
|
Loading…
Reference in New Issue
Block a user