Revision: 44881
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44881
Author:   lukastoenne
Date:     2012-03-14 18:10:57 +0000 (Wed, 14 Mar 2012)
Log Message:
-----------
Use helper functions in node_select when selecting/deselecting nodes and 
sockets in operators. This ensure that sockets are not selected on their own 
(parent node is always selected too).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_node/node_edit.c
    trunk/blender/source/blender/editors/space_node/node_intern.h
    trunk/blender/source/blender/editors/space_node/node_select.c

Modified: trunk/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_edit.c 2012-03-14 
17:52:50 UTC (rev 44880)
+++ trunk/blender/source/blender/editors/space_node/node_edit.c 2012-03-14 
18:10:57 UTC (rev 44881)
@@ -825,8 +825,8 @@
                
                /* deselect all other nodes, so we can also do grabbing of 
entire subtree */
                for(node= snode->nodetree->nodes.first; node; node= node->next)
-                       node->flag &= ~SELECT;
-               gnode->flag |= SELECT;
+                       node_deselect(node);
+               node_select(gnode);
        }
        else 
                snode->edittree= snode->nodetree;
@@ -2115,7 +2115,7 @@
        if(node) {
                node->locx= locx;
                node->locy= locy + 60.0f;               // arbitrary.. so its 
visible, (0,0) is top of node
-               node->flag |= SELECT;
+               node_select(node);
                
                gnode= node_tree_get_editgroup(snode->nodetree);
                if(gnode) {
@@ -2157,7 +2157,6 @@
        SpaceNode *snode= CTX_wm_space_node(C);
        bNodeTree *ntree= snode->edittree;
        bNode *node, *newnode, *lastnode;
-       bNodeSocket *sock;
        bNodeLink *link, *newlink, *lastlink;
        int keep_inputs = RNA_boolean_get(op->ptr, "keep_inputs");
        
@@ -2220,14 +2219,9 @@
                        /* has been set during copy above */
                        newnode = node->new_node;
                        
-                       node->flag &= ~(NODE_SELECT|NODE_ACTIVE);
-                       newnode->flag |= NODE_SELECT;
-               
-                       /* deselect old node sockets */
-                       for (sock=node->inputs.first; sock; sock=sock->next)
-                               sock->flag &= ~SELECT;
-                       for (sock=node->outputs.first; sock; sock=sock->next)
-                               sock->flag &= ~SELECT;
+                       node_deselect(node);
+                       node->flag &= ~NODE_ACTIVE;
+                       node_select(newnode);
                }
                
                /* make sure we don't copy new nodes again! */
@@ -2340,7 +2334,7 @@
                                        }
                                        
                                        /* hilight target socket */
-                                       tsock->flag |= SELECT;
+                                       node_socket_select(tnode, tsock);
                                }
                                else {
                                        if (link->tonode || link->tosock) {
@@ -2375,7 +2369,7 @@
                                        }
                                        
                                        /* hilight target socket */
-                                       tsock->flag |= SELECT;
+                                       node_socket_select(tnode, tsock);
                                }
                                else {
                                        if (link->tonode || link->tosock) {
@@ -2478,7 +2472,7 @@
                
                /* hilight source socket only */
                node_deselect_all_output_sockets(snode, 0);
-               nldrag->sock->flag |= SELECT;
+               node_socket_select(nldrag->node, nldrag->sock);
        }
        /* or an input? */
        else if(node_find_indicated_socket(snode, &nldrag->node, &nldrag->sock, 
SOCK_IN)) {
@@ -2504,7 +2498,7 @@
                
                /* hilight source socket only */
                node_deselect_all_input_sockets(snode, 0);
-               nldrag->sock->flag |= SELECT;
+               node_socket_select(nldrag->node, nldrag->sock);
        }
        
        return in_out;

Modified: trunk/blender/source/blender/editors/space_node/node_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_intern.h       
2012-03-14 17:52:50 UTC (rev 44880)
+++ trunk/blender/source/blender/editors/space_node/node_intern.h       
2012-03-14 18:10:57 UTC (rev 44881)
@@ -81,7 +81,11 @@
 void node_keymap(wmKeyConfig *keyconf);
 
 /* node_select.c */
+void node_select(struct bNode *node);
+void node_deselect(struct bNode *node);
 void node_deselect_all(struct SpaceNode *snode);
+void node_socket_select(struct bNode *node, struct bNodeSocket *sock);
+void node_socket_deselect(struct bNode *node, struct bNodeSocket *sock, int 
deselect_node);
 void node_deselect_all_input_sockets(struct SpaceNode *snode, int 
deselect_nodes);
 void node_deselect_all_output_sockets(struct SpaceNode *snode, int 
deselect_nodes);
 int node_select_same_type(struct SpaceNode *snode);

Modified: trunk/blender/source/blender/editors/space_node/node_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_select.c       
2012-03-14 17:52:50 UTC (rev 44880)
+++ trunk/blender/source/blender/editors/space_node/node_select.c       
2012-03-14 18:10:57 UTC (rev 44881)
@@ -173,12 +173,12 @@
        }
 }
 
-static void node_select(bNode *node)
+void node_select(bNode *node)
 {
        node->flag |= SELECT;
 }
 
-static void node_deselect(bNode *node)
+void node_deselect(bNode *node)
 {
        bNodeSocket *sock;
        
@@ -199,7 +199,7 @@
                node_select(node);
 }
 
-static void node_socket_select(bNode *node, bNodeSocket *sock)
+void node_socket_select(bNode *node, bNodeSocket *sock)
 {
        sock->flag |= SELECT;
        
@@ -208,7 +208,7 @@
                node->flag |= SELECT;
 }
 
-static void node_socket_deselect(bNode *node, bNodeSocket *sock, int 
deselect_node)
+void node_socket_deselect(bNode *node, bNodeSocket *sock, int deselect_node)
 {
        sock->flag &= ~SELECT;
        

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to