diff --git a/Library/Export/AmfExport.cs b/Library/Export/AmfExport.cs index 9b1391793..3cd9c2119 100644 --- a/Library/Export/AmfExport.cs +++ b/Library/Export/AmfExport.cs @@ -34,6 +34,7 @@ using System.Threading.Tasks; using MatterHackers.Agg.Image; using MatterHackers.Agg.Platform; using MatterHackers.Agg.UI; +using MatterHackers.DataConverters3D; using MatterHackers.Localizations; namespace MatterHackers.MatterControl.Library.Export @@ -55,14 +56,7 @@ namespace MatterHackers.MatterControl.Library.Export public Task Generate(IEnumerable libraryItems, string outputPath) { - ILibraryContentStream libraryContent = libraryItems.OfType().FirstOrDefault(); - - if (libraryContent != null) - { - return MeshExport.ExportMesh(libraryContent, outputPath); - } - - return null; + return MeshExport.ExportMesh(libraryItems.FirstOrDefault(), outputPath); } public GuiWidget GetOptionsPanel() => null; diff --git a/Library/Export/MeshExport.cs b/Library/Export/MeshExport.cs index fa62a2bf1..c1c0d4e1a 100644 --- a/Library/Export/MeshExport.cs +++ b/Library/Export/MeshExport.cs @@ -38,28 +38,39 @@ namespace MatterHackers.MatterControl.Library.Export { public static class MeshExport { - public static async Task ExportMesh(ILibraryContentStream source, string filePathToSave) + public static async Task ExportMesh(ILibraryItem source, string filePathToSave) { try { - if (!string.IsNullOrEmpty(filePathToSave)) + if (source is ILibraryContentItem contentItem) { - if (Path.GetExtension(source.FileName).ToUpper() == Path.GetExtension(filePathToSave).ToUpper()) + // If the content is an IObject3D, the we need to load it and MeshFileIO save to the target path + var content = await contentItem.GetContent(null); + return MeshFileIo.Save(content, filePathToSave); + } + else if (source is ILibraryContentStream streamContent) + { + if (!string.IsNullOrEmpty(filePathToSave)) { - using (var result = await source.GetContentStream(null)) - using (var fileStream = File.Create(filePathToSave)) + // If the file is already AMF, it just needs copied to the target path + if (Path.GetExtension(streamContent.FileName).ToUpper() == Path.GetExtension(filePathToSave).ToUpper()) { - result.Stream.CopyTo(fileStream); - } + using (var result = await streamContent.GetContentStream(null)) + using (var fileStream = File.Create(filePathToSave)) + { + result.Stream.CopyTo(fileStream); + } - return true; - } - else - { - using (var result = await source.GetContentStream(null)) + return true; + } + else { - IObject3D item = Object3D.Load(result.Stream, Path.GetExtension(source.FileName), CancellationToken.None); - return MeshFileIo.Save(item, filePathToSave); + // Otherwise we need to load the content and MeshFileIO save to the target path + using (var result = await streamContent.GetContentStream(null)) + { + IObject3D item = Object3D.Load(result.Stream, Path.GetExtension(streamContent.FileName), CancellationToken.None); + return MeshFileIo.Save(item, filePathToSave); + } } } } diff --git a/Library/Widgets/ListView/IconListView.cs b/Library/Widgets/ListView/IconListView.cs index b77d28a34..1a75d46e5 100644 --- a/Library/Widgets/ListView/IconListView.cs +++ b/Library/Widgets/ListView/IconListView.cs @@ -146,6 +146,7 @@ namespace MatterHackers.MatterControl.CustomWidgets public void ClearItems() { + cellIndex = 0; rowButtonContainer = null; allIconViews.Clear(); } diff --git a/Tests/MatterControl.Tests/MatterControl/ImportSettingsTests.cs b/Tests/MatterControl.Tests/MatterControl/ImportSettingsTests.cs index 6a256bdc3..94a49e33e 100644 --- a/Tests/MatterControl.Tests/MatterControl/ImportSettingsTests.cs +++ b/Tests/MatterControl.Tests/MatterControl/ImportSettingsTests.cs @@ -10,11 +10,6 @@ namespace MatterControl.Tests.MatterControl [TestFixture, Category("ConfigIni")] public class ImportSettingsTests { - [Test] - public void CheckImportIniToPrinter() - { - } - [Test] public void CheckImportPrinterSettingsToPrinter() {