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 } => {
|
PasteImage { mime, image_data, mouse } => {
|
||||||
let path = vec![generate_uuid()];
|
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(
|
responses.push_back(
|
||||||
DocumentOperation::AddImage {
|
DocumentOperation::AddImage {
|
||||||
path: path.clone(),
|
path: path.clone(),
|
||||||
transform: DAffine2::ZERO.to_cols_array(),
|
transform: DAffine2::ZERO.to_cols_array(),
|
||||||
insert_index: -1,
|
insert_index: -1,
|
||||||
mime,
|
image_data: image_data.clone(),
|
||||||
image_data,
|
mime: mime.clone(),
|
||||||
|
}
|
||||||
|
.into(),
|
||||||
|
);
|
||||||
|
responses.push_back(
|
||||||
|
FrontendMessage::UpdateImageData {
|
||||||
|
image_data: vec![FrontendImageData { path: path.clone(), image_data, mime }],
|
||||||
}
|
}
|
||||||
.into(),
|
.into(),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ pub enum PortfolioMessage {
|
||||||
is_default: bool,
|
is_default: bool,
|
||||||
},
|
},
|
||||||
Import,
|
Import,
|
||||||
|
LoadDocumentResources,
|
||||||
LoadFont {
|
LoadFont {
|
||||||
font: Font,
|
font: Font,
|
||||||
is_default: bool,
|
is_default: bool,
|
||||||
|
|
|
||||||
|
|
@ -186,6 +186,7 @@ impl MessageHandler<PortfolioMessage, &InputPreprocessorMessageHandler> for Port
|
||||||
if let Some(document) = self.active_document_mut() {
|
if let Some(document) = self.active_document_mut() {
|
||||||
document.graphene_document.mark_all_layers_of_type_as_dirty(LayerDataTypeDiscriminant::Text);
|
document.graphene_document.mark_all_layers_of_type_as_dirty(LayerDataTypeDiscriminant::Text);
|
||||||
responses.push_back(DocumentMessage::RenderDocument.into());
|
responses.push_back(DocumentMessage::RenderDocument.into());
|
||||||
|
responses.push_back(BroadcastEvent::DocumentIsDirty.into());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Import => {
|
Import => {
|
||||||
|
|
@ -194,6 +195,11 @@ impl MessageHandler<PortfolioMessage, &InputPreprocessorMessageHandler> for Port
|
||||||
responses.push_back(FrontendMessage::TriggerImport.into());
|
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 } => {
|
LoadFont { font, is_default } => {
|
||||||
if !self.font_cache.loaded_font(&font) {
|
if !self.font_cache.loaded_font(&font) {
|
||||||
responses.push_front(FrontendMessage::TriggerFontLoad { font, is_default }.into());
|
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.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);
|
self.documents.insert(document_id, new_document);
|
||||||
|
|
||||||
if self.active_document().is_some() {
|
if self.active_document().is_some() {
|
||||||
|
|
@ -500,6 +504,7 @@ impl PortfolioMessageHandler {
|
||||||
|
|
||||||
responses.push_back(PortfolioMessage::UpdateOpenDocumentsList.into());
|
responses.push_back(PortfolioMessage::UpdateOpenDocumentsList.into());
|
||||||
responses.push_back(PortfolioMessage::SelectDocument { document_id }.into());
|
responses.push_back(PortfolioMessage::SelectDocument { document_id }.into());
|
||||||
|
responses.push_back(PortfolioMessage::LoadDocumentResources.into());
|
||||||
responses.push_back(PortfolioMessage::UpdateDocumentWidgets.into());
|
responses.push_back(PortfolioMessage::UpdateDocumentWidgets.into());
|
||||||
responses.push_back(ToolMessage::InitTools.into());
|
responses.push_back(ToolMessage::InitTools.into());
|
||||||
responses.push_back(PropertiesPanelMessage::Init.into());
|
responses.push_back(PropertiesPanelMessage::Init.into());
|
||||||
|
|
|
||||||
|
|
@ -422,6 +422,9 @@ impl Document {
|
||||||
}
|
}
|
||||||
if LayerDataTypeDiscriminant::from(&root.data) == data_type {
|
if LayerDataTypeDiscriminant::from(&root.data) == data_type {
|
||||||
root.cache_dirty = true;
|
root.cache_dirty = true;
|
||||||
|
if let LayerDataType::Text(text) = &mut root.data {
|
||||||
|
text.cached_path = None;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
root.cache_dirty
|
root.cache_dirty
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue