[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28574] trunk/blender/source/blender/ editors/object: render hide/unhide (Ctrl+H, Ctrl+Alt+H, Ctrl+Alt+Shift+H)

Campbell Barton ideasman42 at gmail.com
Tue May 4 17:04:29 CEST 2010


Revision: 28574
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28574
Author:   campbellbarton
Date:     2010-05-04 17:04:28 +0200 (Tue, 04 May 2010)

Log Message:
-----------
render hide/unhide (Ctrl+H, Ctrl+Alt+H, Ctrl+Alt+Shift+H)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_edit.c
    trunk/blender/source/blender/editors/object/object_intern.h
    trunk/blender/source/blender/editors/object/object_ops.c

Modified: trunk/blender/source/blender/editors/object/object_edit.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_edit.c	2010-05-04 13:42:28 UTC (rev 28573)
+++ trunk/blender/source/blender/editors/object/object_edit.c	2010-05-04 15:04:28 UTC (rev 28574)
@@ -229,7 +229,79 @@
 	
 }
 
+/* 99% same as above except no need for scene refreshing (TODO, update render preview) */
+static int object_restrictrender_clear_exec(bContext *C, wmOperator *op)
+{
+	ScrArea *sa= CTX_wm_area(C);
+	View3D *v3d= sa->spacedata.first;
+	Scene *scene= CTX_data_scene(C);
+	Base *base;
 
+
+	/* XXX need a context loop to handle such cases */
+	for(base = FIRSTBASE; base; base=base->next){
+		if((base->lay & v3d->lay) && base->object->restrictflag & OB_RESTRICT_RENDER) {
+			base->object->restrictflag &= ~OB_RESTRICT_RENDER;
+		}
+	}
+	WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL);
+	return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_restrictrender_clear(wmOperatorType *ot)
+{
+
+	/* identifiers */
+	ot->name= "Clear Restrict View";
+	ot->description = "Reveal the render object by setting the restrictrender flag";
+	ot->idname= "OBJECT_OT_restrictrender_clear";
+
+	/* api callbacks */
+	ot->exec= object_restrictrender_clear_exec;
+	ot->poll= ED_operator_view3d_active;
+
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int object_restrictrender_set_exec(bContext *C, wmOperator *op)
+{
+	int unselected= RNA_boolean_get(op->ptr, "unselected");
+
+	CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
+		if(!unselected) {
+			if (base->flag & SELECT){
+				base->object->restrictflag |= OB_RESTRICT_RENDER;
+			}
+		}
+		else {
+			if (!(base->flag & SELECT)){
+				base->object->restrictflag |= OB_RESTRICT_RENDER;
+			}
+		}
+	}
+	CTX_DATA_END;
+	WM_event_add_notifier(C, NC_SPACE|ND_SPACE_OUTLINER, NULL);
+	return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_restrictrender_set(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Set Restrict Render";
+	ot->description = "Hide the render object by setting the restrictrender flag";
+	ot->idname= "OBJECT_OT_restrictrender_set";
+
+	/* api callbacks */
+	ot->exec= object_restrictrender_set_exec;
+	ot->poll= ED_operator_view3d_active;
+
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+	RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects.");
+}
+
 /* ******************* toggle editmode operator  ***************** */
 
 void ED_object_exit_editmode(bContext *C, int flag)

Modified: trunk/blender/source/blender/editors/object/object_intern.h
===================================================================
--- trunk/blender/source/blender/editors/object/object_intern.h	2010-05-04 13:42:28 UTC (rev 28573)
+++ trunk/blender/source/blender/editors/object/object_intern.h	2010-05-04 15:04:28 UTC (rev 28574)
@@ -77,6 +77,8 @@
 void OBJECT_OT_posemode_toggle(struct wmOperatorType *ot);
 void OBJECT_OT_restrictview_set(struct wmOperatorType *ot);
 void OBJECT_OT_restrictview_clear(struct wmOperatorType *ot);
+void OBJECT_OT_restrictrender_set(struct wmOperatorType *ot);
+void OBJECT_OT_restrictrender_clear(struct wmOperatorType *ot);
 void OBJECT_OT_proxy_make(struct wmOperatorType *ot);
 void OBJECT_OT_shade_smooth(struct wmOperatorType *ot);
 void OBJECT_OT_shade_flat(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/object/object_ops.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_ops.c	2010-05-04 13:42:28 UTC (rev 28573)
+++ trunk/blender/source/blender/editors/object/object_ops.c	2010-05-04 15:04:28 UTC (rev 28574)
@@ -74,6 +74,8 @@
 	WM_operatortype_append(OBJECT_OT_proxy_make);
 	WM_operatortype_append(OBJECT_OT_restrictview_clear);
 	WM_operatortype_append(OBJECT_OT_restrictview_set);
+	WM_operatortype_append(OBJECT_OT_restrictrender_clear);
+	WM_operatortype_append(OBJECT_OT_restrictrender_set);
 	WM_operatortype_append(OBJECT_OT_shade_smooth);
 	WM_operatortype_append(OBJECT_OT_shade_flat);
 	WM_operatortype_append(OBJECT_OT_paths_calculate);
@@ -314,8 +316,13 @@
 	
 	WM_keymap_add_item(keymap, "OBJECT_OT_restrictview_clear", HKEY, KM_PRESS, KM_ALT, 0);
 	WM_keymap_add_item(keymap, "OBJECT_OT_restrictview_set", HKEY, KM_PRESS, 0, 0);
-	RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_restrictview_set", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "unselected", 1);
+	RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_restrictview_set", HKEY, KM_PRESS, KM_SHIFT, KM_CTRL)->ptr, "unselected", 1);
 
+	/* same as above but for rendering */
+	WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_clear", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 0);
+	WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_set", HKEY, KM_PRESS, KM_CTRL, 0);
+	RNA_boolean_set(WM_keymap_add_item(keymap, "OBJECT_OT_restrictrender_set", HKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0)->ptr, "unselected", 1);
+
 	WM_keymap_add_item(keymap, "OBJECT_OT_move_to_layer", MKEY, KM_PRESS, 0, 0);
 	
 	WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, 0, 0);





More information about the Bf-blender-cvs mailing list