Multi-View: Show multiview image properties only in the places where
authorDalai Felinto <dfelinto@gmail.com>
Sat, 13 Jun 2015 17:04:39 +0000 (14:04 -0300)
committerDalai Felinto <dfelinto@gmail.com>
Sat, 13 Jun 2015 17:09:22 +0000 (14:09 -0300)
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

release/scripts/startup/bl_ui/space_image.py
source/blender/editors/include/UI_interface.h
source/blender/editors/space_image/image_buttons.c
source/blender/editors/space_node/drawnode.c
source/blender/makesrna/intern/rna_ui_api.c

index 4c6966b31d2533f8b45a4147143f4009f441ebf8..1345a2c51fb8e3642f530226897d1f10876e2bae 100644 (file)
@@ -574,7 +574,7 @@ class IMAGE_PT_image_properties(Panel):
         sima = context.space_data
         iuser = sima.image_user
 
-        layout.template_image(sima, "image", iuser)
+        layout.template_image(sima, "image", iuser, multiview=True)
 
 
 class IMAGE_PT_game_properties(Panel):
index 1976d9953f9e3d8e3042a00a08d8be6de479ab00..b5e1b9f08b14e36b2c8be521e86b07e646d1358b 100644 (file)
@@ -901,7 +901,7 @@ void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, const char *prop
                       PointerRNA *used_ptr, const char *used_propname, int active_layer);
 void uiTemplateGameStates(uiLayout *layout, struct PointerRNA *ptr, const char *propname,
                       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 uiTemplateImageStereo3d(uiLayout *layout, struct PointerRNA *stereo3d_format_ptr);
 void uiTemplateImageViews(uiLayout *layout, struct PointerRNA *imaptr);
index 43030cac42ed70267d8c431693f74d678a2e40d2..fac9369928b2a66b9f5a80ee053e046cc11497b4 100644 (file)
@@ -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);
 }
 
-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;
        PointerRNA imaptr;
@@ -940,11 +940,13 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
                                                BKE_image_release_ibuf(ima, ibuf, NULL);
                                        }
 
-                                       if ((scene->r.scemode & R_MULTIVIEW) != 0) {
-                                               uiItemR(layout, &imaptr, "use_multiview", 0, NULL, ICON_NONE);
+                                       if (multiview) {
+                                               if ((scene->r.scemode & R_MULTIVIEW) != 0) {
+                                                       uiItemR(layout, &imaptr, "use_multiview", 0, NULL, ICON_NONE);
 
-                                               if (RNA_boolean_get(&imaptr, "use_multiview")) {
-                                                       uiTemplateImageViews(layout, &imaptr);
+                                                       if (RNA_boolean_get(&imaptr, "use_multiview")) {
+                                                               uiTemplateImageViews(layout, &imaptr);
+                                                       }
                                                }
                                        }
 
index 648c93ff20c90f5fe96d4ab026dcf3f6ed494616..7f35884cb658f5174410660784c543bf3b63f68a 100644 (file)
@@ -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)
 {
        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)
@@ -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);
        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)
@@ -2787,7 +2787,7 @@ static void node_texture_buts_image_ex(uiLayout *layout, bContext *C, PointerRNA
        PointerRNA 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)
index cf387644d66af94a1236bda6e413cfb4056a5fbe..d75966f6599e4a23f4f26703c2bfdafafd6ebf63 100644 (file)
@@ -773,6 +773,7 @@ void RNA_api_ui_layout(StructRNA *srna)
        parm = RNA_def_pointer(func, "image_user", "ImageUser", "", "");
        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, "multiview", false, "", "Expose Multi-View options");
 
        func = RNA_def_function(srna, "template_image_settings", "uiTemplateImageSettings");
        RNA_def_function_ui_description(func, "User interface for setting image format options");