Add artboard names to the export dialog and make it recall its last settings

Closes #1883, closes #1884
This commit is contained in:
Keavon Chambers
2024-08-02 05:19:40 -07:00
parent a6af5d4831
commit 4d3e459f1f
2 changed files with 50 additions and 26 deletions
@@ -69,28 +69,23 @@ impl MessageHandler<DialogMessage, DialogMessageData<'_>> for DialogMessageHandl
}
DialogMessage::RequestExportDialog => {
if let Some(document) = portfolio.active_document() {
let mut index = 0;
let artboards = document
.metadata
.all_layers()
.filter(|&layer| document.metadata.is_artboard(layer))
.map(|layer| {
(
layer,
format!("Artboard: {}", {
index += 1;
format!("Untitled {index}")
}),
)
let name = document
.network
.nodes
.get(&layer.to_node())
.and_then(|node| if node.alias.is_empty() { None } else { Some(node.alias.clone()) })
.unwrap_or_else(|| "Artboard".to_string());
(layer, name)
})
.collect();
self.export_dialog = ExportDialogMessageHandler {
scale_factor: 1.,
artboards,
has_selection: document.selected_nodes.selected_layers(document.metadata()).next().is_some(),
..Default::default()
};
self.export_dialog.artboards = artboards;
self.export_dialog.has_selection = document.selected_nodes.selected_layers(document.metadata()).next().is_some();
self.export_dialog.send_dialog_to_frontend(responses);
}
}