[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21411] branches/blender2.5/blender/source /blender/editors: 2.5

Ton Roosendaal ton at blender.org
Tue Jul 7 19:30:39 CEST 2009


Revision: 21411
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21411
Author:   ton
Date:     2009-07-07 19:30:39 +0200 (Tue, 07 Jul 2009)

Log Message:
-----------
2.5

- Scrollers now only disappear for regions with a fixed total view, like
  lists, buttons, channels. More or less infinite views keep scrollers to
  indicate that you can still pan or zoom further.

- Nodes: put back SHIFT+D "Add duplicate"
  (Also fixed duplicate objects menu name... it should be a bit more 
  descriptive)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/interface/view2d.c
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_intern.h
    branches/blender2.5/blender/source/blender/editors/space_node/node_ops.c

Modified: branches/blender2.5/blender/source/blender/editors/interface/view2d.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/view2d.c	2009-07-07 17:16:05 UTC (rev 21410)
+++ branches/blender2.5/blender/source/blender/editors/interface/view2d.c	2009-07-07 17:30:39 UTC (rev 21411)
@@ -1279,8 +1279,10 @@
 		if (scrollers->hor_min > scrollers->hor_max) 
 			scrollers->hor_min= scrollers->hor_max;
 		
-		if(fac1 <= 0.0f && fac2 >= 1.0f) 
-			scrollers->horfull= 1;
+		/* check whether sliders can disappear */
+		if(v2d->keeptot)
+			if(fac1 <= 0.0f && fac2 >= 1.0f) 
+				scrollers->horfull= 1;
 	}
 	
 	/* vertical scrollers */
@@ -1304,8 +1306,10 @@
 		if (scrollers->vert_min > scrollers->vert_max) 
 			scrollers->vert_min= scrollers->vert_max;
 		
-		if(fac1 <= 0.0f && fac2 >= 1.0f) 
-			scrollers->vertfull= 1;
+		/* check whether sliders can disappear */
+		if(v2d->keeptot)
+			if(fac1 <= 0.0f && fac2 >= 1.0f) 
+				scrollers->vertfull= 1;
 	}
 	
 	/* grid markings on scrollbars */

Modified: branches/blender2.5/blender/source/blender/editors/object/object_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_edit.c	2009-07-07 17:16:05 UTC (rev 21410)
+++ branches/blender2.5/blender/source/blender/editors/object/object_edit.c	2009-07-07 17:30:39 UTC (rev 21411)
@@ -6139,8 +6139,8 @@
 {
 	
 	/* identifiers */
-	ot->name= "Add Duplicate";
-	ot->description = "Duplicate the object.";
+	ot->name= "Duplicate Objects";
+	ot->description = "Duplicate the objects.";
 	ot->idname= "OBJECT_OT_duplicate_add";
 	
 	/* api callbacks */

Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c	2009-07-07 17:16:05 UTC (rev 21410)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c	2009-07-07 17:30:39 UTC (rev 21411)
@@ -63,6 +63,7 @@
 #include "ED_previewrender.h"
 
 #include "BIF_gl.h"
+#include "BIF_transform.h"
 
 #include "BLI_arithb.h"
 #include "BLI_blenlib.h"
@@ -1686,18 +1687,54 @@
 
 }
 
-void node_adduplicate(SpaceNode *snode)
+#endif
+
+int node_duplicate_add_exec(bContext *C, wmOperator *op)
 {
+	SpaceNode *snode= (SpaceNode*)CTX_wm_space_data(C);
 	
 	ntreeCopyTree(snode->edittree, 1);	/* 1 == internally selected nodes */
 	
 	ntreeSolveOrder(snode->edittree);
 	snode_verify_groups(snode);
-	// XXX			snode_handle_recalc(snode);
+	snode_handle_recalc(C, snode);
 
-// XXX	transform_nodes(snode->edittree, 'g', "Duplicate");
+	return OPERATOR_FINISHED;
 }
 
+static int node_duplicate_add_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+	node_duplicate_add_exec(C, op);
+	
+	RNA_int_set(op->ptr, "mode", TFM_TRANSLATION);
+	WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr);
+	
+	return OPERATOR_FINISHED;
+}
+
+void NODE_OT_duplicate_add(wmOperatorType *ot)
+{
+	
+	/* identifiers */
+	ot->name= "Duplicate Nodes";
+	ot->description = "Duplicate the nodes.";
+	ot->idname= "NODE_OT_duplicate_add";
+	
+	/* api callbacks */
+	ot->invoke= node_duplicate_add_invoke;
+	ot->exec= node_duplicate_add_exec;
+	
+	ot->poll= ED_operator_node_active;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+	
+	/* to give to transform */
+	RNA_def_int(ot->srna, "mode", TFM_TRANSLATION, 0, INT_MAX, "Mode", "", 0, INT_MAX);
+}
+
+#if 0
+
 static void node_insert_convertor(SpaceNode *snode, bNodeLink *link)
 {
 	bNode *newnode= NULL;

Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_intern.h	2009-07-07 17:16:05 UTC (rev 21410)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_intern.h	2009-07-07 17:30:39 UTC (rev 21411)
@@ -82,6 +82,7 @@
 bNode *snode_get_editgroup(SpaceNode *snode);
 void snode_autoconnect(SpaceNode *snode, bNode *node_to, int flag);
 
+void NODE_OT_duplicate_add(struct wmOperatorType *ot);
 void NODE_OT_link(struct wmOperatorType *ot);
 void NODE_OT_delete(struct wmOperatorType *ot);
 void NODE_OT_resize(struct wmOperatorType *ot);

Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_ops.c	2009-07-07 17:16:05 UTC (rev 21410)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_ops.c	2009-07-07 17:30:39 UTC (rev 21411)
@@ -59,6 +59,8 @@
 	WM_operatortype_append(NODE_OT_link);
 	WM_operatortype_append(NODE_OT_resize);
 	WM_operatortype_append(NODE_OT_links_cut);
+	WM_operatortype_append(NODE_OT_duplicate_add);
+	
 }
 
 void node_keymap(struct wmWindowManager *wm)
@@ -71,6 +73,8 @@
 	RNA_enum_set(WM_keymap_add_item(keymap, "NODE_OT_select_extend", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "select_type", NODE_SELECT_MOUSE);
 	RNA_enum_set(WM_keymap_add_item(keymap, "NODE_OT_select_extend", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "select_type", NODE_SELECT_MOUSE);
 	
+	WM_keymap_add_item(keymap, "NODE_OT_duplicate_add", DKEY, KM_PRESS, KM_SHIFT, 0);
+	
 	WM_keymap_add_item(keymap, "NODE_OT_link", LEFTMOUSE, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "NODE_OT_resize", LEFTMOUSE, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "NODE_OT_visibility_toggle", LEFTMOUSE, KM_PRESS, 0, 0);





More information about the Bf-blender-cvs mailing list