[Bf-blender-cvs] [a565324] object_nodes: Use the familiar tab/ctrl+tab keymap for opening/closing nodes.
Lukas Tönne
noreply at git.blender.org
Tue Nov 24 09:42:38 CET 2015
Commit: a565324f150ae9eed4993506244646397d5c99cd
Author: Lukas Tönne
Date: Fri Jul 17 17:11:42 2015 +0200
Branches: object_nodes
https://developer.blender.org/rBa565324f150ae9eed4993506244646397d5c99cd
Use the familiar tab/ctrl+tab keymap for opening/closing nodes.
===================================================================
M release/scripts/startup/bl_operators/object_nodes.py
===================================================================
diff --git a/release/scripts/startup/bl_operators/object_nodes.py b/release/scripts/startup/bl_operators/object_nodes.py
index d88ea2c..c91f27d 100644
--- a/release/scripts/startup/bl_operators/object_nodes.py
+++ b/release/scripts/startup/bl_operators/object_nodes.py
@@ -53,15 +53,6 @@ class ObjectNodeTree(NodeTree):
else:
return None, None, None
- @classmethod
- def register(cls):
- global node_categories
- nodeitems_utils.register_node_categories("OBJECT_NODES", node_categories)
-
- @classmethod
- def unregister(cls):
- nodeitems_utils.unregister_node_categories("OBJECT_NODES")
-
class ObjectNodeBase():
@classmethod
@@ -82,7 +73,6 @@ class ForceFieldNode(ObjectNodeBase, ObjectNode):
def draw_buttons(self, context, layout):
layout.template_ID(self, "id", new="object_nodes.force_field_nodes_new")
- layout.operator("object_nodes.node_edit")
###############################################################################
@@ -149,13 +139,12 @@ class ObjectNodeEdit(Operator):
space = context.space_data
if space.type != 'NODE_EDITOR':
return False
-
- return cls.get_node(context) is not None
+ return True
def execute(self, context):
space = context.space_data
node = self.get_node(context)
- has_tree = hasattr(node, "id") and node.id and isinstance(node.id, bpy.types.NodeTree)
+ has_tree = node and hasattr(node, "id") and node.id and isinstance(node.id, bpy.types.NodeTree)
exit = self.exit or not has_tree
if exit:
@@ -178,3 +167,36 @@ class ForceFieldNodesNew(Operator):
def execute(self, context):
return bpy.ops.node.new_node_tree(type='ForceFieldNodeTree', name="ForceFieldNodes")
+
+
+###############################################################################
+
+keymaps = []
+
+def register():
+ # XXX HACK, needed to have access to the operator, registration needs cleanup once moved out of operators
+ bpy.utils.register_class(ObjectNodeEdit)
+
+ nodeitems_utils.register_node_categories("OBJECT_NODES", node_categories)
+
+ # create keymap
+ wm = bpy.context.window_manager
+ km = wm.keyconfigs.default.keymaps.new(name="Node Generic", space_type='NODE_EDITOR')
+
+ kmi = km.keymap_items.new(bpy.types.OBJECT_NODES_OT_node_edit.bl_idname, 'TAB', 'PRESS')
+
+ kmi = km.keymap_items.new(bpy.types.OBJECT_NODES_OT_node_edit.bl_idname, 'TAB', 'PRESS', ctrl=True)
+ kmi.properties.exit = True
+
+ keymaps.append(km)
+
+def unregister():
+ nodeitems_utils.unregister_node_categories("OBJECT_NODES")
+
+ # remove keymap
+ wm = bpy.context.window_manager
+ for km in keymaps:
+ wm.keyconfigs.default.keymaps.remove(km)
+ keymaps.clear()
+
+register()
More information about the Bf-blender-cvs
mailing list