Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Toenne <lukas.toenne@googlemail.com>2013-06-05 23:28:59 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2013-06-05 23:28:59 +0400
commitad09731c30d60ff73159f52803e4575768a63a04 (patch)
tree85050f8b71ff8889ae6fe4572d6cfff37ebc1ad0 /source/blender/editors
parent22a29e906f975cd384bca4427417d11038b4fa3a (diff)
Removed the "Make Local?" popup from group node edit operator on linked node groups. This is no longer necessary since we can now quite safely display linked node trees in general (this check was already
meaningless for material node trees and the like as demonstrated by bug #35640, so rather pointless).
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/space_node/node_group.c53
1 files changed, 26 insertions, 27 deletions
diff --git a/source/blender/editors/space_node/node_group.c b/source/blender/editors/space_node/node_group.c
index 30997e31249..62732de0ab3 100644
--- a/source/blender/editors/space_node/node_group.c
+++ b/source/blender/editors/space_node/node_group.c
@@ -69,7 +69,26 @@
#include "NOD_common.h"
#include "NOD_socket.h"
-static int node_group_operator_poll(bContext *C)
+static int node_group_operator_active(bContext *C)
+{
+ if (ED_operator_node_active(C)) {
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ /* Group operators only defined for standard node tree types.
+ * Disabled otherwise to allow pynodes define their own operators
+ * with same keymap.
+ */
+ if (STREQ(snode->tree_idname, "ShaderNodeTree") ||
+ STREQ(snode->tree_idname, "CompositorNodeTree") ||
+ STREQ(snode->tree_idname, "TextureNodeTree"))
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+static int node_group_operator_editable(bContext *C)
{
if (ED_operator_node_editable(C)) {
SpaceNode *snode = CTX_wm_space_node(C);
@@ -135,12 +154,8 @@ static int node_group_edit_exec(bContext *C, wmOperator *op)
if (gnode && !exit) {
bNodeTree *ngroup = (bNodeTree *)gnode->id;
- if (ngroup) {
- if (ngroup->id.lib)
- ntreeMakeLocal(ngroup);
-
+ if (ngroup)
ED_node_tree_push(snode, ngroup, gnode);
- }
}
else
ED_node_tree_pop(snode);
@@ -150,21 +165,6 @@ static int node_group_edit_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int node_group_edit_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
-{
- const char *node_idname = group_node_idname(C);
- bNode *gnode;
-
- gnode = node_group_get_active(C, node_idname);
-
- if (gnode && gnode->id && gnode->id->lib) {
- WM_operator_confirm_message(C, op, "Make group local?");
- return OPERATOR_CANCELLED;
- }
-
- return node_group_edit_exec(C, op);
-}
-
void NODE_OT_group_edit(wmOperatorType *ot)
{
/* identifiers */
@@ -173,9 +173,8 @@ void NODE_OT_group_edit(wmOperatorType *ot)
ot->idname = "NODE_OT_group_edit";
/* api callbacks */
- ot->invoke = node_group_edit_invoke;
ot->exec = node_group_edit_exec;
- ot->poll = node_group_operator_poll;
+ ot->poll = node_group_operator_active;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -385,7 +384,7 @@ void NODE_OT_group_ungroup(wmOperatorType *ot)
/* api callbacks */
ot->exec = node_group_ungroup_exec;
- ot->poll = node_group_operator_poll;
+ ot->poll = node_group_operator_editable;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -588,7 +587,7 @@ void NODE_OT_group_separate(wmOperatorType *ot)
/* api callbacks */
ot->invoke = node_group_separate_invoke;
ot->exec = node_group_separate_exec;
- ot->poll = node_group_operator_poll;
+ ot->poll = node_group_operator_editable;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -953,7 +952,7 @@ void NODE_OT_group_make(wmOperatorType *ot)
/* api callbacks */
ot->exec = node_group_make_exec;
- ot->poll = node_group_operator_poll;
+ ot->poll = node_group_operator_editable;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1004,7 +1003,7 @@ void NODE_OT_group_insert(wmOperatorType *ot)
/* api callbacks */
ot->exec = node_group_insert_exec;
- ot->poll = node_group_operator_poll;
+ ot->poll = node_group_operator_editable;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;