[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35921] trunk/blender/source/blender: blender had no option to add a new scene from the UI, only to copy the existing one.

Campbell Barton ideasman42 at gmail.com
Thu Mar 31 16:34:00 CEST 2011


Revision: 35921
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35921
Author:   campbellbarton
Date:     2011-03-31 14:33:59 +0000 (Thu, 31 Mar 2011)
Log Message:
-----------
blender had no option to add a new scene from the UI, only to copy the existing one.
added a new scene option which doesnt copy any render settings from the previous.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_scene.h
    trunk/blender/source/blender/editors/screen/screen_ops.c

Modified: trunk/blender/source/blender/blenkernel/BKE_scene.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_scene.h	2011-03-31 12:45:54 UTC (rev 35920)
+++ trunk/blender/source/blender/blenkernel/BKE_scene.h	2011-03-31 14:33:59 UTC (rev 35921)
@@ -50,10 +50,11 @@
 struct Text;
 struct Text;
 
-#define SCE_COPY_EMPTY		0
-#define SCE_COPY_LINK_OB	1
-#define SCE_COPY_LINK_DATA	2
-#define SCE_COPY_FULL		3
+#define SCE_COPY_NEW		0
+#define SCE_COPY_EMPTY		1
+#define SCE_COPY_LINK_OB	2
+#define SCE_COPY_LINK_DATA	3
+#define SCE_COPY_FULL		4
 
 #define SETLOOPER(_sce_basis, _sce_iter, _base) _sce_iter= _sce_basis, _base= _setlooper_base_step(&_sce_iter, NULL); _base; _base= _setlooper_base_step(&_sce_iter, _base)
 struct Base *_setlooper_base_step(struct Scene **sce_iter, struct Base *base);

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2011-03-31 12:45:54 UTC (rev 35920)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2011-03-31 14:33:59 UTC (rev 35921)
@@ -3164,15 +3164,22 @@
 	Scene *newscene, *scene= CTX_data_scene(C);
 	Main *bmain= CTX_data_main(C);
 	int type= RNA_enum_get(op->ptr, "type");
+
+	if(type == SCE_COPY_NEW) {
+		newscene= add_scene("Scene");
+	}
+	else { /* different kinds of copying */
+		newscene= copy_scene(scene, type);
+
+		/* these can't be handled in blenkernel curently, so do them here */
+		if(type == SCE_COPY_LINK_DATA) {
+			ED_object_single_users(bmain, newscene, 0);
+		}
+		else if(type == SCE_COPY_FULL) {
+			ED_object_single_users(bmain, newscene, 1);
+		}
+	}
 	
-	newscene= copy_scene(scene, type);
-	
-	/* these can't be handled in blenkernel curently, so do them here */
-	if(type == SCE_COPY_LINK_DATA)
-		ED_object_single_users(bmain, newscene, 0);
-	else if(type == SCE_COPY_FULL)
-		ED_object_single_users(bmain, newscene, 1);
-	
 	WM_event_add_notifier(C, NC_SCENE|ND_SCENEBROWSE, newscene);
 	
 	return OPERATOR_FINISHED;
@@ -3181,7 +3188,8 @@
 static void SCENE_OT_new(wmOperatorType *ot)
 {
 	static EnumPropertyItem type_items[]= {
-		{SCE_COPY_EMPTY, "EMPTY", 0, "Empty", "Add empty scene"},
+		{SCE_COPY_NEW, "NEW", 0, "New", "Add new scene"},
+		{SCE_COPY_EMPTY, "EMPTY", 0, "Copy Settings", "Make a copy without any objects"},
 		{SCE_COPY_LINK_OB, "LINK_OBJECTS", 0, "Link Objects", "Link to the objects from the current scene"},
 		{SCE_COPY_LINK_DATA, "LINK_OBJECT_DATA", 0, "Link Object Data", "Copy objects linked to data from the current scene"},
 		{SCE_COPY_FULL, "FULL_COPY", 0, "Full Copy", "Make a full copy of the current scene"},




More information about the Bf-blender-cvs mailing list