[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29172] trunk/blender: Logic Editor: clear properties operator + logics in the object menu

Dalai Felinto dfelinto at gmail.com
Thu Jun 3 08:41:24 CEST 2010


Revision: 29172
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29172
Author:   dfelinto
Date:     2010-06-03 08:41:24 +0200 (Thu, 03 Jun 2010)

Log Message:
-----------
Logic Editor: clear properties operator + logics in the object menu
clear properties operator
- now it's not part of the copy properties anymore (Matt's suggestion).

If anyone want to change the menu, please help yourself (renaming, putting in it's own submenu, making it invisible when mode is not Game ..)

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_view3d.py
    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/release/scripts/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py	2010-06-03 06:09:11 UTC (rev 29171)
+++ trunk/blender/release/scripts/ui/space_view3d.py	2010-06-03 06:41:24 UTC (rev 29172)
@@ -675,7 +675,11 @@
         layout.menu("VIEW3D_MT_object_track")
         layout.menu("VIEW3D_MT_object_group")
         layout.menu("VIEW3D_MT_object_constraints")
+
+        layout.separator()
+
         layout.menu("VIEW3D_MT_object_game_properties")
+        layout.menu("VIEW3D_MT_object_game_logicbricks")
 
         layout.separator()
 
@@ -853,9 +857,19 @@
 
         layout.operator("object.game_property_copy", text="Replace").operation="REPLACE"
         layout.operator("object.game_property_copy", text="Merge").operation="MERGE"
-        # layout.operator("object.game_property_copy").operation="CLEAR" doesn't really belong as part of copy...
         layout.operator_menu_enum("object.game_property_copy", "property", text="Copy...")
+        layout.separator()
+        layout.operator("object.game_property_clear")
 
+
+class VIEW3D_MT_object_game_logicbricks(bpy.types.Menu):
+    bl_label = "Logic Bricks"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.operator("object.logic_bricks_copy", text="Copy")
+
 # ********** Vertex paint menu **********
 
 
@@ -2222,10 +2236,11 @@
     VIEW3D_MT_object_track,
     VIEW3D_MT_object_group,
     VIEW3D_MT_object_constraints,
-    VIEW3D_MT_object_game_properties,
     VIEW3D_MT_object_showhide,
     VIEW3D_MT_make_single_user,
     VIEW3D_MT_make_links,
+    VIEW3D_MT_object_game_properties,
+    VIEW3D_MT_object_game_logicbricks,
 
     VIEW3D_MT_hook,
     VIEW3D_MT_vertex_group,

Modified: trunk/blender/source/blender/editors/object/object_edit.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_edit.c	2010-06-03 06:09:11 UTC (rev 29171)
+++ trunk/blender/source/blender/editors/object/object_edit.c	2010-06-03 06:41:24 UTC (rev 29172)
@@ -2151,6 +2151,7 @@
 	BLI_addtail(&ob->prop, prop);
 	unique_property(NULL, prop, 0); // make_unique_prop_names(prop->name);
 
+	WM_event_add_notifier(C, NC_LOGIC, NULL);
 	return OPERATOR_FINISHED;
 }
 
@@ -2183,6 +2184,8 @@
 	if(prop) {
 		BLI_remlink(&ob->prop, prop);
 		free_property(prop);
+
+		WM_event_add_notifier(C, NC_LOGIC, NULL);
 		return OPERATOR_FINISHED;
 	}
 	else {
@@ -2208,13 +2211,11 @@
 
 #define COPY_PROPERTIES_REPLACE	1
 #define COPY_PROPERTIES_MERGE	2
-#define COPY_PROPERTIES_CLEAR	3
-#define COPY_PROPERTIES_COPY	4
+#define COPY_PROPERTIES_COPY	3
 
 static EnumPropertyItem game_properties_copy_operations[] ={
 	{COPY_PROPERTIES_REPLACE, "REPLACE", 0, "Replace Properties", ""},
 	{COPY_PROPERTIES_MERGE, "MERGE", 0, "Merge Properties", ""},
-	{COPY_PROPERTIES_CLEAR, "CLEAR", 0, "Clear All", ""},
 	{COPY_PROPERTIES_COPY, "COPY", 0, "Copy a Property", ""},
 	{0, NULL, 0, NULL, NULL}};
 
@@ -2264,7 +2265,7 @@
 			} CTX_DATA_END;
 		}
 	}
-	else if (ELEM3(type, COPY_PROPERTIES_REPLACE, COPY_PROPERTIES_MERGE, COPY_PROPERTIES_CLEAR)) {
+	else if (ELEM(type, COPY_PROPERTIES_REPLACE, COPY_PROPERTIES_MERGE)) {
 		CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
 			if (ob != ob_iter) {
 				if (ob->data != ob_iter->data){
@@ -2272,7 +2273,7 @@
 						for(prop = ob->prop.first; prop; prop= prop->next ) {
 							set_ob_property(ob_iter, prop);
 						}
-					} else /* replace or clear */
+					} else /* replace */
 						copy_properties( &ob_iter->prop, &ob->prop );
 				}
 			}
@@ -2303,6 +2304,33 @@
 	ot->prop=prop;
 }
 
+static int game_property_clear_exec(bContext *C, wmOperator *op)
+{
+	Object *ob=ED_object_active_context(C);
+	bProperty *prop;
+
+	CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
+		free_properties(&ob_iter->prop);
+	}
+	CTX_DATA_END;
+
+	WM_event_add_notifier(C, NC_LOGIC, NULL);
+	return OPERATOR_FINISHED;
+}
+void OBJECT_OT_game_property_clear(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Clear Game Property";
+	ot->idname= "OBJECT_OT_game_property_clear";
+
+	/* api callbacks */
+	ot->exec= game_property_clear_exec;
+	ot->poll= ED_operator_object_active_editable;
+
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
 /************************ Copy Logic Bricks ***********************/
 
 static int logicbricks_copy_exec(bContext *C, wmOperator *op)

Modified: trunk/blender/source/blender/editors/object/object_intern.h
===================================================================
--- trunk/blender/source/blender/editors/object/object_intern.h	2010-06-03 06:09:11 UTC (rev 29171)
+++ trunk/blender/source/blender/editors/object/object_intern.h	2010-06-03 06:41:24 UTC (rev 29172)
@@ -88,6 +88,7 @@
 void OBJECT_OT_game_property_new(struct wmOperatorType *ot);
 void OBJECT_OT_game_property_remove(struct wmOperatorType *ot);
 void OBJECT_OT_game_property_copy(struct wmOperatorType *ot);
+void OBJECT_OT_game_property_clear(struct wmOperatorType *ot);
 void OBJECT_OT_logic_bricks_copy(struct wmOperatorType *ot);
 
 /* object_select.c */

Modified: trunk/blender/source/blender/editors/object/object_ops.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_ops.c	2010-06-03 06:09:11 UTC (rev 29171)
+++ trunk/blender/source/blender/editors/object/object_ops.c	2010-06-03 06:41:24 UTC (rev 29172)
@@ -184,6 +184,7 @@
 	WM_operatortype_append(OBJECT_OT_game_property_new);
 	WM_operatortype_append(OBJECT_OT_game_property_remove);
 	WM_operatortype_append(OBJECT_OT_game_property_copy);
+	WM_operatortype_append(OBJECT_OT_game_property_clear);
 	WM_operatortype_append(OBJECT_OT_logic_bricks_copy);
 
 	WM_operatortype_append(OBJECT_OT_shape_key_add);





More information about the Bf-blender-cvs mailing list