Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_node/node_edit.c
| Show First 20 Lines • Show All 1,320 Lines • ▼ Show 20 Lines | void NODE_OT_duplicate(wmOperatorType *ot) | ||||
| ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; | ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; | ||||
| RNA_def_boolean( | RNA_def_boolean( | ||||
| ot->srna, "keep_inputs", 0, "Keep Inputs", "Keep the input links to duplicated nodes"); | ot->srna, "keep_inputs", 0, "Keep Inputs", "Keep the input links to duplicated nodes"); | ||||
| } | } | ||||
| bool ED_node_select_check(ListBase *lb) | bool ED_node_select_check(ListBase *lb) | ||||
| { | { | ||||
| for (bNode *node = lb->first; node; node = node->next) { | LISTBASE_FOREACH (bNode *, node, lb) { | ||||
| if (node->flag & NODE_SELECT) { | if (node->flag & NODE_SELECT) { | ||||
| return true; | return true; | ||||
| } | } | ||||
| } | } | ||||
| return false; | return false; | ||||
| } | } | ||||
| void ED_node_select_all(ListBase *lb, int action) | void ED_node_select_all(ListBase *lb, int action) | ||||
| { | { | ||||
| if (action == SEL_TOGGLE) { | if (action == SEL_TOGGLE) { | ||||
| if (ED_node_select_check(lb)) { | if (ED_node_select_check(lb)) { | ||||
| action = SEL_DESELECT; | action = SEL_DESELECT; | ||||
| } | } | ||||
| else { | else { | ||||
| action = SEL_SELECT; | action = SEL_SELECT; | ||||
| } | } | ||||
| } | } | ||||
| for (bNode *node = lb->first; node; node = node->next) { | LISTBASE_FOREACH (bNode *, node, lb) { | ||||
| switch (action) { | switch (action) { | ||||
| case SEL_SELECT: | case SEL_SELECT: | ||||
| nodeSetSelected(node, true); | nodeSetSelected(node, true); | ||||
| break; | break; | ||||
| case SEL_DESELECT: | case SEL_DESELECT: | ||||
| nodeSetSelected(node, false); | nodeSetSelected(node, false); | ||||
| break; | break; | ||||
| case SEL_INVERT: | case SEL_INVERT: | ||||
| ▲ Show 20 Lines • Show All 1,464 Lines • Show Last 20 Lines | |||||