Fix images and text again (#752)
* Images and text now work again * Fix crash on load images
This commit is contained in:
parent
4025815515
commit
8effd6ecca
|
|
@ -455,23 +455,19 @@ impl MessageHandler<DocumentMessage, (&InputPreprocessorMessageHandler, &FontCac
|
|||
}
|
||||
PasteImage { mime, image_data, mouse } => {
|
||||
let path = vec![generate_uuid()];
|
||||
responses.push_front(
|
||||
FrontendMessage::UpdateImageData {
|
||||
image_data: vec![FrontendImageData {
|
||||
path: path.clone(),
|
||||
image_data: image_data.clone(),
|
||||
mime: mime.clone(),
|
||||
}],
|
||||
}
|
||||
.into(),
|
||||
);
|
||||
responses.push_back(
|
||||
DocumentOperation::AddImage {
|
||||
path: path.clone(),
|
||||
transform: DAffine2::ZERO.to_cols_array(),
|
||||
insert_index: -1,
|
||||
mime,
|
||||
image_data,
|
||||
image_data: image_data.clone(),
|
||||
mime: mime.clone(),
|
||||
}
|
||||
.into(),
|
||||
);
|
||||
responses.push_back(
|
||||
FrontendMessage::UpdateImageData {
|
||||
image_data: vec![FrontendImageData { path: path.clone(), image_data, mime }],
|
||||
}
|
||||
.into(),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ pub enum PortfolioMessage {
|
|||
is_default: bool,
|
||||
},
|
||||
Import,
|
||||
LoadDocumentResources,
|
||||
LoadFont {
|
||||
font: Font,
|
||||
is_default: bool,
|
||||
|
|
|
|||
|
|
@ -186,6 +186,7 @@ impl MessageHandler<PortfolioMessage, &InputPreprocessorMessageHandler> for Port
|
|||
if let Some(document) = self.active_document_mut() {
|
||||
document.graphene_document.mark_all_layers_of_type_as_dirty(LayerDataTypeDiscriminant::Text);
|
||||
responses.push_back(DocumentMessage::RenderDocument.into());
|
||||
responses.push_back(BroadcastEvent::DocumentIsDirty.into());
|
||||
}
|
||||
}
|
||||
Import => {
|
||||
|
|
@ -194,6 +195,11 @@ impl MessageHandler<PortfolioMessage, &InputPreprocessorMessageHandler> for Port
|
|||
responses.push_back(FrontendMessage::TriggerImport.into());
|
||||
}
|
||||
}
|
||||
LoadDocumentResources => {
|
||||
if let Some(document) = self.active_document_mut() {
|
||||
document.load_layer_resources(responses, &document.graphene_document.root.data, Vec::new());
|
||||
}
|
||||
}
|
||||
LoadFont { font, is_default } => {
|
||||
if !self.font_cache.loaded_font(&font) {
|
||||
responses.push_front(FrontendMessage::TriggerFontLoad { font, is_default }.into());
|
||||
|
|
@ -488,8 +494,6 @@ impl PortfolioMessageHandler {
|
|||
);
|
||||
new_document.update_layer_tree_options_bar_widgets(responses, &self.font_cache);
|
||||
|
||||
new_document.load_layer_resources(responses, &new_document.graphene_document.root.data, Vec::new());
|
||||
|
||||
self.documents.insert(document_id, new_document);
|
||||
|
||||
if self.active_document().is_some() {
|
||||
|
|
@ -500,6 +504,7 @@ impl PortfolioMessageHandler {
|
|||
|
||||
responses.push_back(PortfolioMessage::UpdateOpenDocumentsList.into());
|
||||
responses.push_back(PortfolioMessage::SelectDocument { document_id }.into());
|
||||
responses.push_back(PortfolioMessage::LoadDocumentResources.into());
|
||||
responses.push_back(PortfolioMessage::UpdateDocumentWidgets.into());
|
||||
responses.push_back(ToolMessage::InitTools.into());
|
||||
responses.push_back(PropertiesPanelMessage::Init.into());
|
||||
|
|
|
|||
|
|
@ -422,6 +422,9 @@ impl Document {
|
|||
}
|
||||
if LayerDataTypeDiscriminant::from(&root.data) == data_type {
|
||||
root.cache_dirty = true;
|
||||
if let LayerDataType::Text(text) = &mut root.data {
|
||||
text.cached_path = None;
|
||||
}
|
||||
}
|
||||
|
||||
root.cache_dirty
|
||||
|
|
|
|||
Loading…
Reference in New Issue