From 6df0dba376b891f5feb2da3a67b68fc5cfed0cc8 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Tue, 14 Nov 2017 16:54:27 -0800 Subject: [PATCH] Perform FileSystemFileItem edits and update thumbnails - Move common FileSystemFileItem edit into base WritableContainer - Issue MatterHackers/MCCentral#2251 Thumbnails not updated after edits --- ApplicationView/PrinterModels.cs | 6 ++++++ Library/Providers/FileSystem/FileSystemContainer.cs | 13 ------------- .../MatterControl/PlatingHistoryContainer.cs | 3 +-- Library/Providers/WritableContainer.cs | 10 +++++++++- Submodules/agg-sharp | 2 +- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/ApplicationView/PrinterModels.cs b/ApplicationView/PrinterModels.cs index d7e55d441..c300e380e 100644 --- a/ApplicationView/PrinterModels.cs +++ b/ApplicationView/PrinterModels.cs @@ -351,6 +351,12 @@ namespace MatterHackers.MatterControl internal void Save() { + var thumbnailPath = ApplicationController.Instance.ThumbnailCachePath(this.SourceItem); + if (File.Exists(thumbnailPath)) + { + File.Delete(thumbnailPath); + } + // Call save on the provider this.LibraryContainer.Save(this.SourceItem, this.Content); } diff --git a/Library/Providers/FileSystem/FileSystemContainer.cs b/Library/Providers/FileSystem/FileSystemContainer.cs index 32a5d186b..34f459f51 100644 --- a/Library/Providers/FileSystem/FileSystemContainer.cs +++ b/Library/Providers/FileSystem/FileSystemContainer.cs @@ -37,8 +37,6 @@ using System.Threading.Tasks; using MatterHackers.Agg.Platform; using MatterHackers.Agg.UI; using MatterHackers.DataConverters3D; -using MatterHackers.MatterControl.DataStorage; -using MatterHackers.MeshVisualizer; namespace MatterHackers.MatterControl.Library { @@ -330,17 +328,6 @@ namespace MatterHackers.MatterControl.Library } } - public override void Save(ILibraryItem item, IObject3D content) - { - if (item is FileSystemFileItem fileItem) - { - if (content is InteractiveScene scene) - { - scene.Save(fileItem.Path, ApplicationDataStorage.Instance.ApplicationLibraryDataPath); - } - } - } - public class DirectoryContainerLink : FileSystemItem, ILibraryContainerLink { public DirectoryContainerLink(string path) diff --git a/Library/Providers/MatterControl/PlatingHistoryContainer.cs b/Library/Providers/MatterControl/PlatingHistoryContainer.cs index 58cf5872b..4f115109e 100644 --- a/Library/Providers/MatterControl/PlatingHistoryContainer.cs +++ b/Library/Providers/MatterControl/PlatingHistoryContainer.cs @@ -35,8 +35,6 @@ using MatterHackers.Agg.Image; using MatterHackers.DataConverters3D; using MatterHackers.Localizations; using MatterHackers.MatterControl.DataStorage; -using MatterHackers.MatterControl.PrintHistory; -using MatterHackers.MatterControl.Library; namespace MatterHackers.MatterControl.Library { @@ -99,6 +97,7 @@ namespace MatterHackers.MatterControl.Library { // Serialize the scene to disk using a modified Json.net pipeline with custom ContractResolvers and JsonConverters File.WriteAllText(fileItem.Path, content.ToJson()); + this.ItemContentChanged?.Invoke(this, new ItemChangedEventArgs(fileItem)); } } diff --git a/Library/Providers/WritableContainer.cs b/Library/Providers/WritableContainer.cs index 1edd43c56..92dbfbc07 100644 --- a/Library/Providers/WritableContainer.cs +++ b/Library/Providers/WritableContainer.cs @@ -29,6 +29,7 @@ either expressed or implied, of the FreeBSD Project. using System; using System.Collections.Generic; +using System.IO; using MatterHackers.Agg.Image; using MatterHackers.DataConverters3D; @@ -40,7 +41,7 @@ namespace MatterHackers.MatterControl.Library public virtual void OnItemContentChanged(ItemChangedEventArgs args) { - ItemContentChanged?.Invoke(this, args); + this.ItemContentChanged?.Invoke(this, args); } public virtual void Add(IEnumerable items) @@ -57,6 +58,13 @@ namespace MatterHackers.MatterControl.Library public virtual void Save(ILibraryItem item, IObject3D content) { + if (item is FileSystemFileItem fileItem) + { + // Serialize the scene to disk using a modified Json.net pipeline with custom ContractResolvers and JsonConverters + File.WriteAllText(fileItem.Path, content.ToJson()); + + this.OnItemContentChanged(new ItemChangedEventArgs(fileItem)); + } } public virtual void Move(IEnumerable items, ILibraryContainer targetContainer) diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 157ae3944..80de803ed 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 157ae3944409f34e7381ef0c72d8022a34914111 +Subproject commit 80de803ed4923a7c6aae1bc121f6ad3b72687060