-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Placement idea for the import export buttons:

Prompt engineered:
import bpy
# ------------------------------------------------------------
# Operators
# ------------------------------------------------------------
class GN_OT_import_nodes(bpy.types.Operator):
bl_idname = "gn.import_nodes"
bl_label = "Import Geometry Nodes"
bl_description = "Import a Geometry Nodes setup"
def execute(self, context):
self.report({'INFO'}, "Import clicked")
return {'FINISHED'}
class GN_OT_export_nodes(bpy.types.Operator):
bl_idname = "gn.export_nodes"
bl_label = "Export Geometry Nodes"
bl_description = "Export the active Geometry Nodes setup"
def execute(self, context):
self.report({'INFO'}, "Export clicked")
return {'FINISHED'}
# ------------------------------------------------------------
# Header draw
# ------------------------------------------------------------
def draw_gn_header_right(self, context):
space = context.space_data
if not space:
return
if space.type != 'NODE_EDITOR':
return
if space.tree_type != 'GeometryNodeTree':
return
if not space.node_tree:
return
layout = self.layout
layout.separator()
row = layout.row(align=True)
row.operator(
GN_OT_import_nodes.bl_idname,
text="Import",
icon='IMPORT'
)
row.operator(
GN_OT_export_nodes.bl_idname,
text="Export",
icon='EXPORT'
)
# ------------------------------------------------------------
# Registration
# ------------------------------------------------------------
classes = (
GN_OT_import_nodes,
GN_OT_export_nodes,
)
def register():
for cls in classes:
bpy.utils.register_class(cls)
bpy.types.NODE_HT_header.append(draw_gn_header_right)
def unregister():
bpy.types.NODE_HT_header.remove(draw_gn_header_right)
for cls in reversed(classes):
bpy.utils.unregister_class(cls)
if __name__ == "__main__":
register()
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels