[Bf-blender-cvs] [e83854e759f] master: Nodes: move select all into a utility function

Campbell Barton noreply at git.blender.org
Tue Mar 5 08:40:43 CET 2019


Commit: e83854e759f61ed82c9c0ceedadf55c9a670245a
Author: Campbell Barton
Date:   Tue Mar 5 18:30:06 2019 +1100
Branches: master
https://developer.blender.org/rBe83854e759f61ed82c9c0ceedadf55c9a670245a

Nodes: move select all into a utility function

===================================================================

M	source/blender/editors/include/ED_node.h
M	source/blender/editors/space_node/node_edit.c
M	source/blender/editors/space_node/node_select.c

===================================================================

diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h
index 5498ad8252d..09449687e6e 100644
--- a/source/blender/editors/include/ED_node.h
+++ b/source/blender/editors/include/ED_node.h
@@ -91,6 +91,7 @@ void ED_node_shader_default(const struct bContext *C, struct ID *id);
 void ED_node_composit_default(const struct bContext *C, struct Scene *scene);
 void ED_node_texture_default(const struct bContext *C, struct Tex *tex);
 bool ED_node_select_check(ListBase *lb);
+void ED_node_select_all(ListBase *lb, int action);
 void ED_node_post_apply_transform(struct bContext *C, struct bNodeTree *ntree);
 void ED_node_set_active(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node);
 
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 038ab62af78..66f0e17db0f 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -48,6 +48,7 @@
 
 
 #include "ED_node.h"  /* own include */
+#include "ED_select_utils.h"
 #include "ED_screen.h"
 #include "ED_render.h"
 
@@ -1216,12 +1217,8 @@ void NODE_OT_duplicate(wmOperatorType *ot)
 }
 
 bool ED_node_select_check(ListBase *lb)
-
-
 {
-	bNode *node;
-
-	for (node = lb->first; node; node = node->next) {
+	for (bNode *node = lb->first; node; node = node->next) {
 		if (node->flag & NODE_SELECT) {
 			return true;
 		}
@@ -1230,6 +1227,30 @@ bool ED_node_select_check(ListBase *lb)
 	return false;
 }
 
+void ED_node_select_all(ListBase *lb, int action)
+{
+	if (action == SEL_TOGGLE) {
+		if (ED_node_select_check(lb))
+			action = SEL_DESELECT;
+		else
+			action = SEL_SELECT;
+	}
+
+	for (bNode *node = lb->first; node; node = node->next) {
+		switch (action) {
+			case SEL_SELECT:
+				nodeSetSelected(node, true);
+				break;
+			case SEL_DESELECT:
+				nodeSetSelected(node, false);
+				break;
+			case SEL_INVERT:
+				nodeSetSelected(node, !(node->flag & SELECT));
+				break;
+		}
+	}
+}
+
 /* ******************************** */
 // XXX some code needing updating to operators...
 
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index 143ca1ffd32..747af14499e 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -763,29 +763,9 @@ static int node_select_all_exec(bContext *C, wmOperator *op)
 {
 	SpaceNode *snode = CTX_wm_space_node(C);
 	ListBase *node_lb = &snode->edittree->nodes;
-	bNode *node;
 	int action = RNA_enum_get(op->ptr, "action");
 
-	if (action == SEL_TOGGLE) {
-		if (ED_node_select_check(node_lb))
-			action = SEL_DESELECT;
-		else
-			action = SEL_SELECT;
-	}
-
-	for (node = node_lb->first; node; node = node->next) {
-		switch (action) {
-			case SEL_SELECT:
-				nodeSetSelected(node, true);
-				break;
-			case SEL_DESELECT:
-				nodeSetSelected(node, false);
-				break;
-			case SEL_INVERT:
-				nodeSetSelected(node, !(node->flag & SELECT));
-				break;
-		}
-	}
+	ED_node_select_all(node_lb, action);
 
 	ED_node_sort(snode->edittree);



More information about the Bf-blender-cvs mailing list