From 2ec0ff38f3b39a01fd7fe822b7bfcaea9b0eb84f Mon Sep 17 00:00:00 2001 From: Ezbaze <68749104+Ezbaze@users.noreply.github.com> Date: Tue, 24 Jun 2025 02:51:16 +0100 Subject: [PATCH] Improve node creation menu and categorization (#2719) * Change node categories Signed-off-by: ezbaze * Restore Ezbaze's other work that was lost in the rebase --------- Signed-off-by: ezbaze Co-authored-by: Keavon Chambers --- .../portfolio/document/node_graph/node_properties.rs | 10 +++++----- .../src/components/floating-menus/NodeCatalog.svelte | 1 + node-graph/gcore/src/logic.rs | 2 +- node-graph/gcore/src/vector/generator_nodes.rs | 2 +- node-graph/gcore/src/vector/vector_nodes.rs | 6 +++--- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/editor/src/messages/portfolio/document/node_graph/node_properties.rs b/editor/src/messages/portfolio/document/node_graph/node_properties.rs index 1f6a797fd..4b4b94698 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_properties.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_properties.rs @@ -1211,16 +1211,16 @@ pub(crate) fn grid_properties(node_id: NodeId, context: &mut NodePropertiesConte } } - let rows = number_widget( - ParameterWidgetsInfo::from_index(document_node, node_id, RowsInput::INDEX, true, context), - NumberInput::default().min(1.), - ); let columns = number_widget( ParameterWidgetsInfo::from_index(document_node, node_id, ColumnsInput::INDEX, true, context), NumberInput::default().min(1.), ); + let rows = number_widget( + ParameterWidgetsInfo::from_index(document_node, node_id, RowsInput::INDEX, true, context), + NumberInput::default().min(1.), + ); - widgets.extend([LayoutGroup::Row { widgets: rows }, LayoutGroup::Row { widgets: columns }]); + widgets.extend([LayoutGroup::Row { widgets: columns }, LayoutGroup::Row { widgets: rows }]); widgets } diff --git a/frontend/src/components/floating-menus/NodeCatalog.svelte b/frontend/src/components/floating-menus/NodeCatalog.svelte index 60aefbbe9..a0f2cbe24 100644 --- a/frontend/src/components/floating-menus/NodeCatalog.svelte +++ b/frontend/src/components/floating-menus/NodeCatalog.svelte @@ -164,6 +164,7 @@ .text-label { padding-left: 16px; position: relative; + pointer-events: none; &::before { content: ""; diff --git a/node-graph/gcore/src/logic.rs b/node-graph/gcore/src/logic.rs index fb009bda6..727e3d0b8 100644 --- a/node-graph/gcore/src/logic.rs +++ b/node-graph/gcore/src/logic.rs @@ -37,7 +37,7 @@ fn string_length(_: impl Ctx, #[implementations(String)] string: String) -> usiz string.len() } -#[node_macro::node(category("Text"))] +#[node_macro::node(category("Math: Logic"))] async fn switch( #[implementations(Context)] ctx: C, condition: bool, diff --git a/node-graph/gcore/src/vector/generator_nodes.rs b/node-graph/gcore/src/vector/generator_nodes.rs index 2959698d8..75cdec10e 100644 --- a/node-graph/gcore/src/vector/generator_nodes.rs +++ b/node-graph/gcore/src/vector/generator_nodes.rs @@ -158,8 +158,8 @@ fn grid( #[implementations(f64, DVec2)] spacing: T, #[default(30., 30.)] angles: DVec2, - #[default(10)] rows: u32, #[default(10)] columns: u32, + #[default(10)] rows: u32, ) -> VectorDataTable { let (x_spacing, y_spacing) = spacing.as_dvec2().into(); let (angle_a, angle_b) = angles.into(); diff --git a/node-graph/gcore/src/vector/vector_nodes.rs b/node-graph/gcore/src/vector/vector_nodes.rs index c8030b8f4..c3667c97c 100644 --- a/node-graph/gcore/src/vector/vector_nodes.rs +++ b/node-graph/gcore/src/vector/vector_nodes.rs @@ -210,7 +210,7 @@ where vector_data } -#[node_macro::node(category("Vector"), path(graphene_core::vector))] +#[node_macro::node(category("Instancing"), path(graphene_core::vector))] async fn repeat( _: impl Ctx, // TODO: Implement other GraphicElementRendered types. @@ -249,7 +249,7 @@ where result_table } -#[node_macro::node(category("Vector"), path(graphene_core::vector))] +#[node_macro::node(category("Instancing"), path(graphene_core::vector))] async fn circular_repeat( _: impl Ctx, // TODO: Implement other GraphicElementRendered types. @@ -284,7 +284,7 @@ where result_table } -#[node_macro::node(name("Copy to Points"), category("Vector"), path(graphene_core::vector))] +#[node_macro::node(name("Copy to Points"), category("Instancing"), path(graphene_core::vector))] async fn copy_to_points( _: impl Ctx, points: VectorDataTable,