diff --git a/ActionBar/PrintActionRow.cs b/ActionBar/PrintActionRow.cs index 7d7c0f536..56ca0ece0 100644 --- a/ActionBar/PrintActionRow.cs +++ b/ActionBar/PrintActionRow.cs @@ -175,15 +175,18 @@ namespace MatterHackers.MatterControl.ActionBar void AddButtonOnIdle(object state) { string documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); - OpenFileDialogParams openParams = new OpenFileDialogParams(ApplicationSettings.OpenPrintableFileParams, multiSelect: true, initialDirectory: documentsPath); - FileDialog.OpenFileDialog(ref openParams); - if (openParams.FileNames != null) - { - foreach (string loadedFileName in openParams.FileNames) + FileDialog.OpenFileDialog( + new OpenFileDialogParams(ApplicationSettings.OpenPrintableFileParams, multiSelect: true, initialDirectory: documentsPath), + (openParams) => { - QueueData.Instance.AddItem(new PrintItemWrapper(new PrintItem(Path.GetFileNameWithoutExtension(loadedFileName), Path.GetFullPath(loadedFileName)))); - } - } + if (openParams.FileNames != null) + { + foreach (string loadedFileName in openParams.FileNames) + { + QueueData.Instance.AddItem(new PrintItemWrapper(new PrintItem(Path.GetFileNameWithoutExtension(loadedFileName), Path.GetFullPath(loadedFileName)))); + } + } + }); } void partToPrint_SliceDone(object sender, EventArgs e) diff --git a/ApplicationView/ApplicationMenuRow.cs b/ApplicationView/ApplicationMenuRow.cs index 95fb8762b..864a7a0ef 100644 --- a/ApplicationView/ApplicationMenuRow.cs +++ b/ApplicationView/ApplicationMenuRow.cs @@ -147,18 +147,25 @@ namespace MatterHackers.MatterControl { UiThread.RunOnIdle((state) => { - OpenFileDialogParams openParams = new OpenFileDialogParams(ApplicationSettings.OpenPrintableFileParams, multiSelect: true); - openParams.ActionButtonLabel = "Add to Queue"; - openParams.Title = "MatterControl: Select A File"; - - FileDialog.OpenFileDialog(ref openParams); - if (openParams.FileNames != null) - { - foreach (string loadedFileName in openParams.FileNames) + FileDialog.OpenFileDialog( + new OpenFileDialogParams(ApplicationSettings.OpenPrintableFileParams) { - QueueData.Instance.AddItem(new PrintItemWrapper(new PrintItem(Path.GetFileNameWithoutExtension(loadedFileName), Path.GetFullPath(loadedFileName)))); - } - } + MultiSelect = true, + ActionButtonLabel = "Add to Queue", + Title = "MatterControl: Select A File" + }, + (openParams) => + { + if (openParams.FileNames != null) + { + foreach (string loadedFileName in openParams.FileNames) + { + QueueData.Instance.AddItem(new PrintItemWrapper(new PrintItem(Path.GetFileNameWithoutExtension(loadedFileName), Path.GetFullPath(loadedFileName)))); + } + } + + }); + }); return true; } diff --git a/PartPreviewWindow/View3D/View3DCreateSelecitonData.cs b/PartPreviewWindow/View3D/View3DCreateSelecitonData.cs index aff369a3d..ec4ffc453 100644 --- a/PartPreviewWindow/View3D/View3DCreateSelecitonData.cs +++ b/PartPreviewWindow/View3D/View3DCreateSelecitonData.cs @@ -118,10 +118,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow if (DoAddFileAfterCreatingEditData) { - OpenFileDialogParams openParams = new OpenFileDialogParams(ApplicationSettings.OpenDesignFileParams, multiSelect: true); - - FileDialog.OpenFileDialog(ref openParams); - LoadAndAddPartsToPlate(openParams.FileNames); + FileDialog.OpenFileDialog( + new OpenFileDialogParams(ApplicationSettings.OpenDesignFileParams, multiSelect: true), + (openParams) => + { + LoadAndAddPartsToPlate(openParams.FileNames); + }); } else if (pendingPartsToLoad.Count > 0) { diff --git a/PartPreviewWindow/View3D/View3DWidget.cs b/PartPreviewWindow/View3D/View3DWidget.cs index cc01564f6..88ab43e6d 100644 --- a/PartPreviewWindow/View3D/View3DWidget.cs +++ b/PartPreviewWindow/View3D/View3DWidget.cs @@ -372,10 +372,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { UiThread.RunOnIdle((state) => { - OpenFileDialogParams openParams = new OpenFileDialogParams(ApplicationSettings.OpenDesignFileParams, multiSelect: true); - - FileDialog.OpenFileDialog(ref openParams); - LoadAndAddPartsToPlate(openParams.FileNames); + FileDialog.OpenFileDialog( + new OpenFileDialogParams(ApplicationSettings.OpenDesignFileParams, multiSelect: true), + (openParams) => + { + LoadAndAddPartsToPlate(openParams.FileNames); + }); }); }; diff --git a/PrintQueue/OptionsMenu/QueueOptionsMenu.cs b/PrintQueue/OptionsMenu/QueueOptionsMenu.cs index 25e207d7b..9b221fdc7 100644 --- a/PrintQueue/OptionsMenu/QueueOptionsMenu.cs +++ b/PrintQueue/OptionsMenu/QueueOptionsMenu.cs @@ -149,31 +149,30 @@ namespace MatterHackers.MatterControl.PrintQueue if (parts.Count > 0) { string documentsPath = System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal); - SaveFileDialogParams saveParams = new SaveFileDialogParams("Save Parts Sheet|*.pdf", initialDirectory: documentsPath); - saveParams.ActionButtonLabel = LocalizedString.Get("Save Parts Sheet"); - string saveParamsTitleLabel = "MatterControl".Localize(); - string saveParamsTitleLabelFull = LocalizedString.Get ("Save"); - saveParams.Title = string.Format("{0}: {1}",saveParamsTitleLabel,saveParamsTitleLabelFull); + FileDialog.SaveFileDialog( + new SaveFileDialogParams("Save Parts Sheet|*.pdf") + { + InitialDirectory = documentsPath, + ActionButtonLabel = "Save Parts Sheet".Localize(), + Title = string.Format("{0}: {1}", "MatterControl".Localize(), "Save".Localize()) + }, + (saveParams) => + { + if (saveParams.FileName != null) + { + PartsSheet currentPartsInQueue = new PartsSheet(parts, saveParams.FileName); - System.IO.Stream streamToSaveTo = FileDialog.SaveFileDialog(ref saveParams); - if (streamToSaveTo != null) - { - streamToSaveTo.Close (); - } + currentPartsInQueue.SaveSheets(); - if (saveParams.FileName != null) - { - PartsSheet currentPartsInQueue = new PartsSheet(parts, saveParams.FileName); + SavePartsSheetFeedbackWindow feedbackWindow = new SavePartsSheetFeedbackWindow(parts.Count, parts[0].Name, ActiveTheme.Instance.PrimaryBackgroundColor); + currentPartsInQueue.UpdateRemainingItems += feedbackWindow.StartingNextPart; + currentPartsInQueue.DoneSaving += feedbackWindow.DoneSaving; - currentPartsInQueue.SaveSheets(); + feedbackWindow.ShowAsSystemWindow(); + } + }); - SavePartsSheetFeedbackWindow feedbackWindow = new SavePartsSheetFeedbackWindow(parts.Count, parts[0].Name, ActiveTheme.Instance.PrimaryBackgroundColor); - currentPartsInQueue.UpdateRemainingItems += feedbackWindow.StartingNextPart; - currentPartsInQueue.DoneSaving += feedbackWindow.DoneSaving; - - feedbackWindow.ShowAsSystemWindow(); - } } #endif } @@ -224,7 +223,12 @@ namespace MatterHackers.MatterControl.PrintQueue selectParams.ActionButtonLabel = LocalizedString.Get("Export"); selectParams.Title = "MatterControl: Select A Folder"; - string path = FileDialog.SelectFolderDialog(ref selectParams); + FileDialog.SelectFolderDialog(selectParams, onSelectFolderDialog); + } + + private void onSelectFolderDialog(SelectFolderDialogParams openParams) + { + string path = openParams.FolderPath; if (path != null && path != "") { List parts = QueueData.Instance.CreateReadOnlyPartList(); diff --git a/PrintQueue/QueueDataWidget.cs b/PrintQueue/QueueDataWidget.cs index 7533ef79e..0416d4dda 100644 --- a/PrintQueue/QueueDataWidget.cs +++ b/PrintQueue/QueueDataWidget.cs @@ -411,21 +411,22 @@ namespace MatterHackers.MatterControl.PrintQueue List parts = QueueData.Instance.CreateReadOnlyPartList(); string documentsPath = System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal); - SaveFileDialogParams saveParams = new SaveFileDialogParams("Save Parts Sheet|*.pdf", initialDirectory: documentsPath); - System.IO.Stream streamToSaveTo = FileDialog.SaveFileDialog(ref saveParams); - if (streamToSaveTo != null) - { - string partFileName = saveParams.FileName; + FileDialog.SaveFileDialog( + new SaveFileDialogParams("Save Parts Sheet|*.pdf", initialDirectory: documentsPath), + (saveParams) => + { + string partFileName = saveParams.FileName; - if ( !partFileName.StartsWith ("" + Path.DirectorySeparatorChar) ) - { - partFileName = Path.DirectorySeparatorChar + partFileName; - } + if (!partFileName.StartsWith("" + Path.DirectorySeparatorChar)) + { + partFileName = Path.DirectorySeparatorChar + partFileName; + } + + PartsSheet currentPartsInQueue = new PartsSheet(parts, partFileName); + currentPartsInQueue.SaveSheets(); + }); - PartsSheet currentPartsInQueue = new PartsSheet(parts, partFileName); - currentPartsInQueue.SaveSheets(); - } #endif } @@ -570,33 +571,41 @@ namespace MatterHackers.MatterControl.PrintQueue void AddItemsToQueue(object state) { string documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); - OpenFileDialogParams openParams = new OpenFileDialogParams(ApplicationSettings.OpenPrintableFileParams, multiSelect: true, initialDirectory: documentsPath); - openParams.ActionButtonLabel = "Add to Queue"; - openParams.Title = "MatterControl: Select A File"; - FileDialog.OpenFileDialog(ref openParams); - if (openParams.FileNames != null) - { - foreach (string fileNameToLoad in openParams.FileNames) + FileDialog.OpenFileDialog( + new OpenFileDialogParams(ApplicationSettings.OpenPrintableFileParams) { - if (Path.GetExtension(fileNameToLoad).ToUpper() == ".ZIP") + MultiSelect = true, + InitialDirectory = documentsPath, + ActionButtonLabel = "Add to Queue", + Title = "MatterControl: Select A File" + }, + (openParams) => + { + if (openParams.FileNames != null) { - ProjectFileHandler project = new ProjectFileHandler(null); - List partFiles = project.ImportFromProjectArchive(fileNameToLoad); - if (partFiles != null) + foreach (string fileNameToLoad in openParams.FileNames) { - foreach (PrintItem part in partFiles) + if (Path.GetExtension(fileNameToLoad).ToUpper() == ".ZIP") { - QueueData.Instance.AddItem(new PrintItemWrapper(new PrintItem(part.Name, part.FileLocation))); + ProjectFileHandler project = new ProjectFileHandler(null); + List partFiles = project.ImportFromProjectArchive(fileNameToLoad); + if (partFiles != null) + { + foreach (PrintItem part in partFiles) + { + QueueData.Instance.AddItem(new PrintItemWrapper(new PrintItem(part.Name, part.FileLocation))); + } + } + } + else + { + QueueData.Instance.AddItem(new PrintItemWrapper(new PrintItem(Path.GetFileNameWithoutExtension(fileNameToLoad), Path.GetFullPath(fileNameToLoad)))); } } } - else - { - QueueData.Instance.AddItem(new PrintItemWrapper(new PrintItem(Path.GetFileNameWithoutExtension(fileNameToLoad), Path.GetFullPath(fileNameToLoad)))); - } - } - } + }); + } } }