Skip to content

Commit cdf7180

Browse files
authored
Merge branch 'master' into fix-min-max-macro
2 parents 2a99d60 + 6a8386d commit cdf7180

26 files changed

+1115
-457
lines changed

.github/workflows/build-dev-and-ci.yml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -108,17 +108,6 @@ jobs:
108108
- name: 📥 Clone and checkout repository
109109
uses: actions/checkout@v3
110110

111-
- name: 🔒 Check crate security advisories for root workspace
112-
uses: EmbarkStudios/cargo-deny-action@v2
113-
with:
114-
command: check advisories
115-
116-
- name: 🔒 Check crate security advisories for /libraries/rawkit
117-
uses: EmbarkStudios/cargo-deny-action@v2
118-
with:
119-
command: check advisories
120-
manifest-path: libraries/rawkit/Cargo.toml
121-
122111
- name: 📜 Check crate license compatibility for root workspace
123112
uses: EmbarkStudios/cargo-deny-action@v2
124113
with:

.github/workflows/cargo-deny.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: "Audit Security Advisories"
2+
3+
on:
4+
# Run once each day
5+
schedule:
6+
- cron: "0 0 * * *"
7+
8+
jobs:
9+
cargo-deny:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: 📥 Clone and checkout repository
14+
uses: actions/checkout@v3
15+
16+
- name: 🔒 Check crate security advisories for root workspace
17+
uses: EmbarkStudios/cargo-deny-action@v2
18+
with:
19+
command: check advisories
20+
21+
- name: 🔒 Check crate security advisories for /libraries/rawkit
22+
uses: EmbarkStudios/cargo-deny-action@v2
23+
with:
24+
command: check advisories
25+
manifest-path: libraries/rawkit/Cargo.toml

Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

editor/src/messages/input_mapper/input_mappings.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ pub fn input_mappings() -> Mapping {
254254
//
255255
// PenToolMessage
256256
entry!(PointerMove; refresh_keys=[Control, Alt, Shift, KeyC], action_dispatch=PenToolMessage::PointerMove { snap_angle: Shift, break_handle: Alt, lock_angle: Control, colinear: KeyC, move_anchor_with_handles: Space }),
257+
entry!(KeyDownNoRepeat(Tab); action_dispatch=PenToolMessage::SwapHandles),
257258
entry!(KeyDown(MouseLeft); action_dispatch=PenToolMessage::DragStart { append_to_selected: Shift }),
258259
entry!(KeyUp(MouseLeft); action_dispatch=PenToolMessage::DragStop),
259260
entry!(KeyDown(MouseRight); action_dispatch=PenToolMessage::Abort),

editor/src/messages/portfolio/document/document_message_handler.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,14 +1209,14 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
12091209

12101210
if is_collapsed {
12111211
if recursive {
1212-
let children: HashSet<_> = layer.children(metadata).collect();
1212+
let children: HashSet<_> = layer.descendants(metadata).collect();
12131213
self.collapsed.0.retain(|collapsed_layer| !children.contains(collapsed_layer) && collapsed_layer != &layer);
12141214
} else {
12151215
self.collapsed.0.retain(|collapsed_layer| collapsed_layer != &layer);
12161216
}
12171217
} else {
12181218
if recursive {
1219-
let children_to_add: Vec<_> = layer.children(metadata).filter(|child| !self.collapsed.0.contains(child)).collect();
1219+
let children_to_add: Vec<_> = layer.descendants(metadata).filter(|child| !self.collapsed.0.contains(child)).collect();
12201220
self.collapsed.0.extend(children_to_add);
12211221
}
12221222
self.collapsed.0.push(layer);

editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,7 @@ fn apply_usvg_stroke(stroke: &usvg::Stroke, modify_inputs: &mut ModifyInputsCont
386386
},
387387
line_join_miter_limit: stroke.miterlimit().get() as f64,
388388
transform,
389+
non_scaling: false,
389390
})
390391
}
391392
}

editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -809,6 +809,7 @@ fn static_nodes() -> Vec<DocumentNodeDefinition> {
809809
NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::one_empty_image()), true),
810810
NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::one_empty_image()), true),
811811
],
812+
manual_composition: Some(generic!(T)),
812813
..Default::default()
813814
},
814815
persistent_node_metadata: DocumentNodePersistentMetadata {

editor/src/messages/portfolio/portfolio_message_handler.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,22 @@ impl MessageHandler<PortfolioMessage, PortfolioMessageData<'_>> for PortfolioMes
806806
.set_input(&InputConnector::node(*node_id, 2), NodeInput::value(TaggedValue::Bool(false), false), network_path);
807807
}
808808

809+
// Upgrade the Mirror node to add the `keep_original` boolean input
810+
if reference == "Mirror" && inputs_count == 3 {
811+
let node_definition = resolve_document_node_type(reference).unwrap();
812+
let document_node = node_definition.default_node_template().document_node;
813+
document.network_interface.replace_implementation(node_id, network_path, document_node.implementation.clone());
814+
815+
let old_inputs = document.network_interface.replace_inputs(node_id, document_node.inputs.clone(), network_path);
816+
817+
document.network_interface.set_input(&InputConnector::node(*node_id, 0), old_inputs[0].clone(), network_path);
818+
document.network_interface.set_input(&InputConnector::node(*node_id, 1), old_inputs[1].clone(), network_path);
819+
document.network_interface.set_input(&InputConnector::node(*node_id, 2), old_inputs[2].clone(), network_path);
820+
document
821+
.network_interface
822+
.set_input(&InputConnector::node(*node_id, 3), NodeInput::value(TaggedValue::Bool(true), false), network_path);
823+
}
824+
809825
// Upgrade artboard name being passed as hidden value input to "To Artboard"
810826
if reference == "Artboard" && upgrade_from_before_returning_nested_click_targets {
811827
let label = document.network_interface.frontend_display_name(node_id, network_path);

editor/src/messages/tool/common_functionality/graph_modification_utils.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -396,11 +396,14 @@ impl<'a> NodeGraphLayer<'a> {
396396

397397
/// Node id of a protonode if it exists in the layer's primary flow
398398
pub fn upstream_node_id_from_protonode(&self, protonode_identifier: &'static str) -> Option<NodeId> {
399-
self.horizontal_layer_flow().find(move |node_id| {
400-
self.network_interface
401-
.implementation(node_id, &[])
402-
.is_some_and(move |implementation| *implementation == graph_craft::document::DocumentNodeImplementation::proto(protonode_identifier))
403-
})
399+
self.horizontal_layer_flow()
400+
// Take until a different layer is reached
401+
.take_while(|&node_id| node_id == self.layer_node || !self.network_interface.is_layer(&node_id, &[]))
402+
.find(move |node_id| {
403+
self.network_interface
404+
.implementation(node_id, &[])
405+
.is_some_and(move |implementation| *implementation == graph_craft::document::DocumentNodeImplementation::proto(protonode_identifier))
406+
})
404407
}
405408

406409
/// Find all of the inputs of a specific node within the layer's primary flow, up until the next layer is reached.

editor/src/messages/tool/tool_messages/fill_tool.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,10 @@ mod test_fill {
175175
let mut editor = EditorTestUtils::create();
176176
editor.new_document().await;
177177
editor.drag_tool(ToolType::Rectangle, 0., 0., 100., 100., ModifierKeys::empty()).await;
178-
let color = Color::YELLOW;
179-
editor.handle_message(ToolMessage::SelectSecondaryColor { color }).await;
178+
editor.select_secondary_color(Color::YELLOW).await;
180179
editor.click_tool(ToolType::Fill, MouseKeys::LEFT, DVec2::new(2., 2.), ModifierKeys::SHIFT).await;
181180
let fills = get_fills(&mut editor).await;
182181
assert_eq!(fills.len(), 1);
183-
assert_eq!(fills[0].as_solid().unwrap().to_rgba8_srgb(), color.to_rgba8_srgb());
182+
assert_eq!(fills[0].as_solid().unwrap().to_rgba8_srgb(), Color::YELLOW.to_rgba8_srgb());
184183
}
185184
}

0 commit comments

Comments
 (0)