From e83854e759f61ed82c9c0ceedadf55c9a670245a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 5 Mar 2019 18:30:06 +1100 Subject: Nodes: move select all into a utility function --- source/blender/editors/space_node/node_edit.c | 31 ++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'source/blender/editors/space_node/node_edit.c') 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... -- cgit v1.2.3