[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