diff --git a/ApplicationView/MenuRow/MenuOptionFile.cs b/ApplicationView/MenuRow/MenuOptionFile.cs index b675a06de..50f8816f1 100644 --- a/ApplicationView/MenuRow/MenuOptionFile.cs +++ b/ApplicationView/MenuRow/MenuOptionFile.cs @@ -14,9 +14,17 @@ namespace MatterHackers.MatterControl { public class MenuOptionFile : MenuBase { + private static CreateFolderWindow createFolderWindow = null; + + public static MenuOptionFile CurrentMenuOptionFile = null; + + public event EventHandler AddLocalFolderToLibrary; + public EventHandler RedeemDesignCode; + public MenuOptionFile() : base("File".Localize()) { + CurrentMenuOptionFile = this; } override protected TupleList> GetMenuItems() @@ -25,7 +33,8 @@ namespace MatterHackers.MatterControl { {"Add Printer".Localize(), addPrinter_Click}, {"Add File To Queue".Localize(), importFile_Click}, - {"Add Folder To Library".Localize(), addFolderToLibrar_Click}, + {"Add Local Folder To Library".Localize(), addFolderToLibrar_Click}, + {"Redeem Design Code".Localize(), redeemDesignCode_Click}, {"------------------------", nothing_Click}, {"Exit".Localize(), exit_Click}, }; @@ -36,9 +45,33 @@ namespace MatterHackers.MatterControl return true; } + private bool redeemDesignCode_Click() + { + if (RedeemDesignCode != null) + { + RedeemDesignCode(this, null); + } + + return true; + } + private bool addFolderToLibrar_Click() { - //AddCollectionToLibrary(string collectionName); + if (AddLocalFolderToLibrary != null) + { + if (createFolderWindow == null) + { + createFolderWindow = new CreateFolderWindow((returnInfo) => + { + AddLocalFolderToLibrary(this, new StringEventArgs(returnInfo.newName)); + }); + createFolderWindow.Closed += (sender2, e2) => { createFolderWindow = null; }; + } + else + { + createFolderWindow.BringToFront(); + } + } return true; } diff --git a/Library/Provider/LibraryProviderFileSystem.cs b/Library/Provider/LibraryProviderFileSystem.cs index dd32e9f8e..02a439823 100644 --- a/Library/Provider/LibraryProviderFileSystem.cs +++ b/Library/Provider/LibraryProviderFileSystem.cs @@ -127,6 +127,11 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider } } + public void ChangeName(string newName) + { + description = newName; + } + public override string Name { get { return description; } } public override string ProviderData diff --git a/Library/Provider/LibraryProviderSelector.cs b/Library/Provider/LibraryProviderSelector.cs index aeae9c834..49b8b07a7 100644 --- a/Library/Provider/LibraryProviderSelector.cs +++ b/Library/Provider/LibraryProviderSelector.cs @@ -55,6 +55,8 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider List folderImagesForChildren = new List(); + int firstAddedDirectoryIndex; + public LibraryProviderSelector(Action setCurrentLibraryProvider) : base(null) { @@ -102,6 +104,13 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider AddFolderImage("download_folder.png"); } + firstAddedDirectoryIndex = libraryProviders.Count; + + MenuOptionFile.CurrentMenuOptionFile.AddLocalFolderToLibrary += (sender, e) => + { + AddCollectionToLibrary(e.Data); + }; + this.FilterProviders(); } @@ -124,7 +133,16 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider public override void RenameCollection(int collectionIndexToRename, string newName) { - throw new NotImplementedException(); + if (collectionIndexToRename >= firstAddedDirectoryIndex + && libraryProviders[collectionIndexToRename].Name != newName) + { + LibraryProviderFileSystem addedProvider = libraryProviders[collectionIndexToRename] as LibraryProviderFileSystem; + if (addedProvider != null) + { + addedProvider.ChangeName(newName); + UiThread.RunOnIdle(() => OnDataReloaded(null)); + } + } } public override void RenameItem(int itemIndexToRename, string newName) @@ -254,7 +272,9 @@ namespace MatterHackers.MatterControl.PrintLibrary.Provider public override void RemoveCollection(int collectionIndexToRemove) { - throw new NotImplementedException(); + libraryProviders.RemoveAt(collectionIndexToRemove); + + UiThread.RunOnIdle(() => OnDataReloaded(null)); } public override void RemoveItem(int itemToRemoveIndex) diff --git a/StaticData/Translations/Master.txt b/StaticData/Translations/Master.txt index 110bae555..653c4c756 100644 --- a/StaticData/Translations/Master.txt +++ b/StaticData/Translations/Master.txt @@ -3523,3 +3523,9 @@ Translated:Add Folder To Library English:Using the above controls Translated:Using the above controls +English:Add Local Folder To Library +Translated:Add Local Folder To Library + +English:Redeem Design Code +Translated:Redeem Design Code +