diff --git a/ActionBar/ActionBarBaseControls.cs b/ActionBar/ActionBarBaseControls.cs index 25cdc4df9..998c81a92 100644 --- a/ActionBar/ActionBarBaseControls.cs +++ b/ActionBar/ActionBarBaseControls.cs @@ -146,7 +146,10 @@ namespace MatterHackers.MatterControl.ActionBar printerNameText.HAnchor = HAnchor.ParentCenter; printerNameText.TextColor = textColor; - printerStatusText = new TextWidget("Status: Connected", pointSize:statusTextHeight); + string printerStatusTxtBeg = new LocalizedString("Status").Translated; + string printerStatusTxtEnd = new LocalizedString("Connected").Translated; + string printerStatusTxtFull = string.Format("{0}: {1}", printerStatusTxtBeg, printerStatusTxtEnd); + printerStatusText = new TextWidget(printerStatusTxtFull, pointSize:statusTextHeight); printerStatusText.AutoExpandBoundsToText = true; printerStatusText.HAnchor = HAnchor.ParentCenter; printerStatusText.TextColor = textColor; @@ -191,8 +194,9 @@ namespace MatterHackers.MatterControl.ActionBar } else { - string statusString = new LocalizedString("Status: {0}").Translated; - printerStatusText.Text = string.Format(statusString, PrinterCommunication.Instance.PrinterConnectionStatusVerbose); + string statusStringBeg = new LocalizedString ("Status").Translated; + string statusString = string.Format("{1}: {0}", PrinterCommunication.Instance.PrinterConnectionStatusVerbose, statusStringBeg); + printerStatusText.Text = string.Format(statusString,PrinterCommunication.Instance.PrinterConnectionStatusVerbose); } if (ActivePrinterProfile.Instance.ActivePrinter != null) { diff --git a/ActionBar/HelpTextWidget.cs b/ActionBar/HelpTextWidget.cs index 3a66701f7..5c6bed18a 100644 --- a/ActionBar/HelpTextWidget.cs +++ b/ActionBar/HelpTextWidget.cs @@ -131,7 +131,7 @@ namespace MatterHackers.MatterControl case PrinterCommunication.CommunicationStates.Disconnected: return new LocalizedString("Not connected. Press 'Connect' to enable printing.").Translated; case PrinterCommunication.CommunicationStates.AttemptingToConnect: - return "Attempting to connect..."; + return new LocalizedString("Attempting to connect...").Translated; case PrinterCommunication.CommunicationStates.ConnectionLost: case PrinterCommunication.CommunicationStates.FailedToConnect: return new LocalizedString("Unable to communicate with printer.").Translated; diff --git a/CustomWidgets/ExportQueueItemWindow.cs b/CustomWidgets/ExportQueueItemWindow.cs index f25cd14b6..9464fa900 100644 --- a/CustomWidgets/ExportQueueItemWindow.cs +++ b/CustomWidgets/ExportQueueItemWindow.cs @@ -80,7 +80,7 @@ namespace MatterHackers.MatterControl if(showExportGCodeButton) { - Button exportGCode = textImageButtonFactory.Generate("Export as GCode"); + Button exportGCode = textImageButtonFactory.Generate(new LocalizedString("Export as GCode").Translated); //exportGCode.HAnchor = Agg.UI.HAnchor.ParentCenter; exportGCode.Click += new ButtonBase.ButtonEventHandler(exportGCode_Click); topToBottom.AddChild(exportGCode); @@ -115,6 +115,22 @@ namespace MatterHackers.MatterControl UiThread.RunOnIdle(DoExportGCode_Click); } + string GetExtension (string filename) + { + string extension; + int indexOfDot = filename.LastIndexOf("."); + if (indexOfDot == -1) { + extension = ""; + } + else + { + extension = filename.Substring (indexOfDot); + } + + return extension; + } + + void DoExportGCode_Click(object state) { SaveFileDialogParams saveParams = new SaveFileDialogParams("Export GCode|*.gcode", title: "Export GCode"); @@ -122,9 +138,21 @@ namespace MatterHackers.MatterControl saveParams.ActionButtonLabel = "Export"; System.IO.Stream streamToSaveTo = FileDialog.SaveFileDialog(ref saveParams); - if (streamToSaveTo != null) - { - streamToSaveTo.Close(); + if (streamToSaveTo != null) + { + streamToSaveTo.Close (); + + + string filePathToSave = saveParams.FileName; + string extension = GetExtension(filePathToSave); + + if(extension == "") + { + filePathToSave += ".gcode"; + } + + + if (System.IO.Path.GetExtension(printQueueItem.PrintItemWrapper.FileLocation).ToUpper() == ".STL") { pathAndFilenameToSave = saveParams.FileName; @@ -187,22 +215,52 @@ namespace MatterHackers.MatterControl UiThread.RunOnIdle(DoExportSTL_Click); } + + string CheckExtension(string fileName) + { + string extension; + int indexOfDot = fileName.LastIndexOf("."); + if (indexOfDot == -1) + { + extension = ""; + } + else + { + extension = fileName.Substring(indexOfDot); + } + return extension; + } + void DoExportSTL_Click(object state) { - SaveFileDialogParams saveParams = new SaveFileDialogParams("Save as STL|*.stl"); + SaveFileDialogParams saveParams = new SaveFileDialogParams("Save as STL|*.stl"); saveParams.Title = "MatterControl: Export File"; saveParams.ActionButtonLabel = "Export"; System.IO.Stream streamToSaveTo = FileDialog.SaveFileDialog(ref saveParams); - if (streamToSaveTo != null) - { - streamToSaveTo.Close(); - Close(); - File.Copy(printQueueItem.PrintItemWrapper.FileLocation, saveParams.FileName, true); - ShowFileIfRequested(saveParams.FileName); - } + + if (streamToSaveTo != null) + { + streamToSaveTo.Close (); + Close (); + } + // windows vista +: filePathToSave 'test.stl' + // windows xp: filePathToSave 'test' + + string filePathToSave = saveParams.FileName; + string extension = CheckExtension(filePathToSave); + + if (extension == "") + { + + filePathToSave += ".stl"; + } + + File.Copy (printQueueItem.PrintItemWrapper.FileLocation, filePathToSave, true); + ShowFileIfRequested (filePathToSave); } + void sliceItem_Done(object sender, EventArgs e) { PrintItemWrapper sliceItem = (PrintItemWrapper)sender; diff --git a/CustomWidgets/ExportToFolderFeedbackWindow.cs b/CustomWidgets/ExportToFolderFeedbackWindow.cs index c295bf402..b012106c1 100644 --- a/CustomWidgets/ExportToFolderFeedbackWindow.cs +++ b/CustomWidgets/ExportToFolderFeedbackWindow.cs @@ -5,6 +5,7 @@ using System.Text; using MatterHackers.Agg; using MatterHackers.Agg.UI; +using MatterHackers.Localizations; namespace MatterHackers.MatterControl { @@ -19,7 +20,9 @@ namespace MatterHackers.MatterControl : base(300, 500) { BackgroundColor = backgroundColor; - Title = "MatterControl - Exporting to Folder"; + string exportingToFolderTitle = new LocalizedString("MatterControl").Translated; + string exportingToFolderTitleFull = new LocalizedString("Exporting to Folder").Translated; + Title = string.Format("{0} - {1}", exportingToFolderTitle, exportingToFolderTitleFull); this.totalParts = totalParts; feedback.Padding = new BorderDouble(5, 5); diff --git a/CustomWidgets/SavePartsSheetFeedbackWindow.cs b/CustomWidgets/SavePartsSheetFeedbackWindow.cs index 863f3a0c8..62f96a544 100644 --- a/CustomWidgets/SavePartsSheetFeedbackWindow.cs +++ b/CustomWidgets/SavePartsSheetFeedbackWindow.cs @@ -5,6 +5,7 @@ using System.Text; using MatterHackers.Agg; using MatterHackers.Agg.UI; +using MatterHackers.Localizations; namespace MatterHackers.MatterControl { @@ -18,7 +19,9 @@ namespace MatterHackers.MatterControl : base(300, 500) { BackgroundColor = backgroundColor; - Title = "MatterControl - Saving to Parts Sheet"; + string savePartSheetTitle = new LocalizedString("MatterControl").Translated; + string savePartSheetTitleFull = new LocalizedString("Saving to Parts Sheet").Translated; + Title = string.Format("{0} - {1}",savePartSheetTitle, savePartSheetTitleFull) ; this.totalParts = totalParts; feedback.Padding = new BorderDouble(5, 5); diff --git a/CustomWidgets/WizardControl.cs b/CustomWidgets/WizardControl.cs index bba51d793..96473c077 100644 --- a/CustomWidgets/WizardControl.cs +++ b/CustomWidgets/WizardControl.cs @@ -43,7 +43,6 @@ namespace MatterHackers.MatterControl public WizardControl() { Padding = new BorderDouble(10); - textImageButtonFactory.normalTextColor = RGBA_Bytes.White; textImageButtonFactory.hoverTextColor = RGBA_Bytes.White; textImageButtonFactory.disabledTextColor = new RGBA_Bytes(200, 200, 200); diff --git a/Localizations/LocalizedString.cs b/Localizations/LocalizedString.cs index 2493af082..f7bb8bfb6 100644 --- a/Localizations/LocalizedString.cs +++ b/Localizations/LocalizedString.cs @@ -1,4 +1,4 @@ -//#define DEBUG_SHOW_TRANSLATED_STRINGS +#define DEBUG_SHOW_TRANSLATED_STRINGS using System; using System.Collections.Generic; diff --git a/MainSlidePanel.cs b/MainSlidePanel.cs index 1a7254c23..84f502ffc 100644 --- a/MainSlidePanel.cs +++ b/MainSlidePanel.cs @@ -1,3 +1,4 @@ + /* Copyright (c) 2014, Lars Brubaker All rights reserved. @@ -27,6 +28,7 @@ of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. */ + using System; using System.Collections.Generic; using System.Linq; @@ -336,9 +338,9 @@ namespace MatterHackers.MatterControl void NumQueueItemsChanged(object sender, EventArgs widgetEvent) { - - string queueString = new LocalizedString("Queue ({0})").Translated; - QueueTabPage.Text = string.Format(queueString, PrintQueue.PrintQueueControl.Instance.Count); + string queueStringBeg = new LocalizedString("Queue").Translated; + string queueString = string.Format("{1} ({0})",PrintQueue.PrintQueueControl.Instance.Count, queueStringBeg); + QueueTabPage.Text = string.Format(queueString, PrintQueue.PrintQueueControl.Instance.Count); } private void onThemeChanged(object sender, EventArgs e) diff --git a/MatterControl.csproj b/MatterControl.csproj index 16e9f3747..afe39a9c0 100644 --- a/MatterControl.csproj +++ b/MatterControl.csproj @@ -38,7 +38,6 @@ 1.0.0.%2a false true - 0.8.2 True @@ -106,7 +105,9 @@ - + + ExportQueueItemWindow.cs + @@ -314,10 +315,6 @@ {670BDDFF-927B-425D-9DD1-22ACB14356EB} PlatformWin32 - - {657DBC6D-C3EA-4398-A3FA-DDB73C14F71B} - Agg - {CA96058C-1A37-465D-A357-D6D695B13D25} Localizations @@ -326,5 +323,9 @@ {865172A0-A1A9-49C2-9386-F2FDB4E141B7} MatterControlPluginSystem + + {657DBC6D-C3EA-4398-A3FA-DDB73C14F71B} + Agg + \ No newline at end of file diff --git a/MatterControl.userprefs b/MatterControl.userprefs index bd0a41553..5728f2341 100644 --- a/MatterControl.userprefs +++ b/MatterControl.userprefs @@ -1,15 +1,26 @@  - + - + + + + + + + + + - - + + + - + + + \ No newline at end of file diff --git a/PartPreviewWindow/PartPreviewMainWindow.cs b/PartPreviewWindow/PartPreviewMainWindow.cs index 9eebdf286..36c6dcee1 100644 --- a/PartPreviewWindow/PartPreviewMainWindow.cs +++ b/PartPreviewWindow/PartPreviewMainWindow.cs @@ -38,6 +38,7 @@ using MatterHackers.MatterControl.DataStorage; using MatterHackers.MatterControl.PrintQueue; using MatterHackers.MatterControl.SlicerConfiguration; using MatterHackers.VectorMath; +using MatterHackers.Localizations; namespace MatterHackers.MatterControl.PartPreviewWindow { @@ -50,7 +51,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public PartPreviewMainWindow(PrintItemWrapper printItem) : base(690, 340) { - Title = "MatterControl: " + Path.GetFileName(printItem.Name); + string partPreviewTitle = new LocalizedString ("MatterControl").Translated; + Title = string.Format("{0}: ", partPreviewTitle) + Path.GetFileName(printItem.Name); BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; diff --git a/PrintLibrary/ExportLibraryItemWindow.cs b/PrintLibrary/ExportLibraryItemWindow.cs index c1cfd4c8c..ae207963a 100644 --- a/PrintLibrary/ExportLibraryItemWindow.cs +++ b/PrintLibrary/ExportLibraryItemWindow.cs @@ -9,8 +9,12 @@ using MatterHackers.Agg.UI; using MatterHackers.MatterControl.DataStorage; using MatterHackers.MatterControl.PrintQueue; using MatterHackers.GCodeVisualizer; + +using MatterHackers.Localizations; + using MatterHackers.MatterControl.SlicerConfiguration; + namespace MatterHackers.MatterControl.PrintLibrary { public class ExportLibraryItemWindow : SystemWindow @@ -28,7 +32,9 @@ namespace MatterHackers.MatterControl.PrintLibrary partIsGCode = true; } - this.Title = "MatterControl: Export File"; + string exportLibraryFileTitle = new LocalizedString("MatterControl").Translated; + string exportLibraryFileTitleFull = new LocalizedString("Export File").Translated; + this.Title = string.Format("{0}: {1}", exportLibraryFileTitle, exportLibraryFileTitleFull); this.BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; // TODO: Complete member initialization @@ -47,7 +53,8 @@ namespace MatterHackers.MatterControl.PrintLibrary topToBottom.Padding = new BorderDouble(10); topToBottom.AnchorAll(); - TextWidget exportLabel = new TextWidget("File export options:"); + string fileExportLabelTxt = new LocalizedString("File export options").Translated; + TextWidget exportLabel = new TextWidget(string.Format("{0}:", fileExportLabelTxt)); exportLabel.TextColor = ActiveTheme.Instance.PrimaryTextColor; topToBottom.AddChild(exportLabel); @@ -60,7 +67,7 @@ namespace MatterHackers.MatterControl.PrintLibrary if (!partIsGCode) { - Button exportSTL = textImageButtonFactory.Generate("Export as STL"); + Button exportSTL = textImageButtonFactory.Generate(new LocalizedString("Export as STL").Translated); exportSTL.Click += new ButtonBase.ButtonEventHandler(exportSTL_Click); //exportSTL.HAnchor = Agg.UI.HAnchor.ParentCenter; topToBottom.AddChild(exportSTL); @@ -70,7 +77,7 @@ namespace MatterHackers.MatterControl.PrintLibrary if (showExportGCodeButton) { - Button exportGCode = textImageButtonFactory.Generate("Export as GCode"); + Button exportGCode = textImageButtonFactory.Generate(new LocalizedString("Export as GCode").Translated); //exportGCode.HAnchor = Agg.UI.HAnchor.ParentCenter; exportGCode.Click += new ButtonBase.ButtonEventHandler(exportGCode_Click); topToBottom.AddChild(exportGCode); @@ -82,14 +89,16 @@ namespace MatterHackers.MatterControl.PrintLibrary if (!showExportGCodeButton) { - TextWidget noGCodeMessage = new TextWidget("Note: To enable GCode export, select a printer profile.", textColor: RGBA_Bytes.White, pointSize: 10); + string noGCodeMessageText = new LocalizedString("Note").Translated; + string noGCodeMessageTextFull = new LocalizedString("To enable GCode export, select a printer profile").Translated; + TextWidget noGCodeMessage = new TextWidget(string.Format("{0}: {1}.", noGCodeMessageText, noGCodeMessageTextFull), textColor: RGBA_Bytes.White, pointSize: 10); topToBottom.AddChild(noGCodeMessage); } // TODO: make this work on the mac and then delete this if if (MatterHackers.Agg.UI.WindowsFormsAbstract.GetOSType() == WindowsFormsAbstract.OSType.Windows) { - showInFolderAfterSave = new CheckBox("Show file in folder after save", RGBA_Bytes.White, 10); + showInFolderAfterSave = new CheckBox(new LocalizedString("Show file in folder after save").Translated, RGBA_Bytes.White, 10); showInFolderAfterSave.Margin = new BorderDouble(top: 10); topToBottom.AddChild(showInFolderAfterSave); } @@ -102,6 +111,21 @@ namespace MatterHackers.MatterControl.PrintLibrary UiThread.RunOnIdle(DoExportGCode_Click); } + string GetExtension (string filename) + { + string extension; + int indexOfDot = filename.LastIndexOf("."); + if (indexOfDot == -1) + { + extension = ""; + } + else + { + extension = filename.Substring(indexOfDot); + } + return extension; + } + void DoExportGCode_Click(object state) { SaveFileDialogParams saveParams = new SaveFileDialogParams("Export GCode|*.gcode", title: "Export GCode"); @@ -112,6 +136,16 @@ namespace MatterHackers.MatterControl.PrintLibrary if (streamToSaveTo != null) { streamToSaveTo.Close(); + + + string filePathToSave = saveParams.FileName; + string extension = GetExtension(filePathToSave); + + if(extension == "") + { + filePathToSave += ".gcode"; + } + if (System.IO.Path.GetExtension(printQueueItem.printItem.FileLocation).ToUpper() == ".STL") { pathAndFilenameToSave = saveParams.FileName; @@ -174,6 +208,22 @@ namespace MatterHackers.MatterControl.PrintLibrary UiThread.RunOnIdle(DoExportSTL_Click); } + + string CheckExtension(string fileName) + { + string extension; + int indexOfDot = fileName.LastIndexOf("."); + if (indexOfDot == -1) + { + extension = ""; + } + else + { + extension = fileName.Substring(indexOfDot); + } + return extension; + } + void DoExportSTL_Click(object state) { SaveFileDialogParams saveParams = new SaveFileDialogParams("Save as STL|*.stl"); @@ -181,13 +231,24 @@ namespace MatterHackers.MatterControl.PrintLibrary saveParams.ActionButtonLabel = "Export"; System.IO.Stream streamToSaveTo = FileDialog.SaveFileDialog(ref saveParams); - if (streamToSaveTo != null) - { - streamToSaveTo.Close(); - Close(); - File.Copy(printQueueItem.printItem.FileLocation, saveParams.FileName, true); - ShowFileIfRequested(saveParams.FileName); - } + if (streamToSaveTo != null) + { + streamToSaveTo.Close (); + Close (); + } + + + string filePathToSave = saveParams.FileName; + string extension = CheckExtension(filePathToSave); + + if(extension == "") + { + filePathToSave += ".stl"; + } + + File.Copy(printQueueItem.printItem.FileLocation, filePathToSave, true); + ShowFileIfRequested(filePathToSave); + } void sliceItem_Done(object sender, EventArgs e) diff --git a/PrintLibrary/ExportLibraryItemWindow.cs.rej b/PrintLibrary/ExportLibraryItemWindow.cs.rej new file mode 100644 index 000000000..4dedb63b9 --- /dev/null +++ b/PrintLibrary/ExportLibraryItemWindow.cs.rej @@ -0,0 +1,13 @@ +diff a/PrintLibrary/ExportLibraryItemWindow.cs b/PrintLibrary/ExportLibraryItemWindow.cs (rejected hunks) +@@ -9,7 +9,11 @@ + using MatterHackers.MatterControl.DataStorage; + using MatterHackers.MatterControl.PrintQueue; + using MatterHackers.GCodeVisualizer; ++<<<<<<< HEAD + using MatterHackers.Localizations; ++======= ++using MatterHackers.MatterControl.SlicerConfiguration; ++>>>>>>> upstream/development + + namespace MatterHackers.MatterControl.PrintLibrary + { diff --git a/PrintLibrary/PrintLibraryListItem.cs b/PrintLibrary/PrintLibraryListItem.cs index 9d361a1da..b55ba67be 100644 --- a/PrintLibrary/PrintLibraryListItem.cs +++ b/PrintLibrary/PrintLibraryListItem.cs @@ -25,7 +25,6 @@ namespace MatterHackers.MatterControl.PrintLibrary public class LibraryThumbnailWidget : ClickWidget { static Thread thumbNailThread = null; - private PrintItemWrapper printItem; public PrintItemWrapper PrintItem { @@ -202,7 +201,7 @@ namespace MatterHackers.MatterControl.PrintLibrary //this.thumbNailHasBeenRequested = false; this.Invalidate(); } - + private void onMouseClick(object sender, MouseEventArgs e) { if (printItem != null) @@ -210,7 +209,7 @@ namespace MatterHackers.MatterControl.PrintLibrary string pathAndFile = printItem.FileLocation; if (File.Exists(pathAndFile)) { - new PartPreviewMainWindow(printItem); + new PartPreviewMainWindow(printItem); } else { @@ -281,6 +280,34 @@ namespace MatterHackers.MatterControl.PrintLibrary public CheckBox selectionCheckBox; FlowLayoutWidget buttonContainer; LinkButtonFactory linkButtonFactory = new LinkButtonFactory(); + bool exportWindowIsOpen = false; + bool viewWindowIsOpen = false; + PartPreviewMainWindow viewingWindow; + ExportLibraryItemWindow exportingWindow; + + private void OpenExportWindow() + { + if (exportWindowIsOpen == false) + { + exportingWindow = new ExportLibraryItemWindow(this); + this.exportWindowIsOpen = true; + exportingWindow.Closed += new EventHandler(ExportLibraryItemWindow_Closed); + exportingWindow.ShowAsSystemWindow (); + } + else + { + if (exportingWindow != null) + { + exportingWindow.BringToFront (); + } + } + + } + + void ExportLibraryItemWindow_Closed(object sender, EventArgs e) + { + this.exportWindowIsOpen = false; + } public PrintLibraryListItem(PrintItemWrapper printItem) { @@ -352,8 +379,7 @@ namespace MatterHackers.MatterControl.PrintLibrary exportLink.Click += (sender, e) => { - ExportLibraryItemWindow exportingWindow = new ExportLibraryItemWindow(this); - exportingWindow.ShowAsSystemWindow(); + OpenExportWindow(); }; removeLink = linkButtonFactory.Generate(new LocalizedString("Remove").Translated); @@ -458,13 +484,38 @@ namespace MatterHackers.MatterControl.PrintLibrary UiThread.RunOnIdle(onViewLinkClick); } + + private void OpenPartViewWindow() + { + if (viewWindowIsOpen == false) + { + viewingWindow = new PartPreviewMainWindow(this.printItem); + this.viewWindowIsOpen = true; + viewingWindow.Closed += new EventHandler(PartPreviewMainWindow_Closed); + } + else + { + if(viewingWindow != null) + { + viewingWindow.BringToFront(); + } + } + + } + + void PartPreviewMainWindow_Closed(object sender, EventArgs e) + { + viewWindowIsOpen = false; + } + + private void onViewLinkClick(object state) { string pathAndFile = this.printItem.FileLocation; Console.WriteLine(pathAndFile); if (File.Exists(pathAndFile)) { - new PartPreviewMainWindow(this.printItem); + OpenPartViewWindow (); } else { diff --git a/PrintQueue/PrintQueueItem.cs b/PrintQueue/PrintQueueItem.cs index f67931c85..10931edb4 100644 --- a/PrintQueue/PrintQueueItem.cs +++ b/PrintQueue/PrintQueueItem.cs @@ -32,6 +32,11 @@ namespace MatterHackers.MatterControl.PrintQueue TextWidget partStatus; FlowLayoutWidget editControls; LinkButtonFactory linkButtonFactory = new LinkButtonFactory(); + ExportQueueItemWindow exportingWindow; + PartPreviewMainWindow viewingWindow; + bool exportingWindowIsOpen = false; + bool viewWindowIsOpen = false; + public PrintQueueItem(PrintItemWrapper printItem) { @@ -81,7 +86,6 @@ namespace MatterHackers.MatterControl.PrintQueue { string labelName = textInfo.ToTitleCase(PrintItemWrapper.Name); labelName = labelName.Replace('_', ' '); - labelName = new LocalizedString (labelName).Translated; partLabel = new TextWidget(labelName, pointSize: 14); partLabel.TextColor = WidgetTextColor; partLabel.MinimumSize = new Vector2(1, 16); @@ -114,6 +118,51 @@ namespace MatterHackers.MatterControl.PrintQueue AddHandlers(); } + private void OpenExportWindow() + { + if(exportingWindowIsOpen == false) + { + exportingWindow = new ExportQueueItemWindow (this); + this.exportingWindowIsOpen = true; + exportingWindow.Closed += new EventHandler (ExportQueueItemWindow_Closed); + exportingWindow.ShowAsSystemWindow(); + } + else + { + if (exportingWindow != null) + { + exportingWindow.BringToFront (); + } + } + } + + void ExportQueueItemWindow_Closed(object sender, EventArgs e) + { + this.exportingWindowIsOpen = false; + } + + private void OpenViewWindow() + { + if (viewWindowIsOpen == false) + { + viewingWindow = new PartPreviewMainWindow(PrintItemWrapper); + this.viewWindowIsOpen = true; + viewingWindow.Closed += new EventHandler(PartPreviewWindow_Closed); + } + else + { + if(viewingWindow != null) + { + viewingWindow.BringToFront(); + } + } + } + + void PartPreviewWindow_Closed(object sender, EventArgs e) + { + this.viewWindowIsOpen = false; + } + private void CreateEditControls() { editControls = new FlowLayoutWidget(); @@ -129,10 +178,11 @@ namespace MatterHackers.MatterControl.PrintQueue Button viewLink = linkButtonFactory.Generate(new LocalizedString("View").Translated); viewLink.Click += (sender, e) => { + string pathAndFile = PrintItemWrapper.FileLocation; if (File.Exists(pathAndFile)) { - new PartPreviewMainWindow(PrintItemWrapper); + OpenViewWindow(); } else { @@ -165,8 +215,8 @@ namespace MatterHackers.MatterControl.PrintQueue Button exportLink = linkButtonFactory.Generate(new LocalizedString("Export").Translated); exportLink.Click += (sender, e) => { - ExportQueueItemWindow exportingWindow = new ExportQueueItemWindow(this); - exportingWindow.ShowAsSystemWindow(); + OpenExportWindow(); + }; layoutLeftToRight.AddChild(exportLink); } diff --git a/PrintQueue/PrintQueueMenu.cs b/PrintQueue/PrintQueueMenu.cs index 6e2d69fb7..8a0a0a40f 100644 --- a/PrintQueue/PrintQueueMenu.cs +++ b/PrintQueue/PrintQueueMenu.cs @@ -22,6 +22,10 @@ namespace MatterHackers.MatterControl.PrintQueue public DropDownMenu MenuDropList; private TupleList> menuItems; + + ExportToFolderFeedbackWindow exportingWindow; + bool exportingWindowIsOpen = false; + public PrintQueueMenu() { MenuDropList = new DropDownMenu(new LocalizedString("Queue Options").Translated, Direction.Up); @@ -98,8 +102,10 @@ namespace MatterHackers.MatterControl.PrintQueue if (parts.Count > 0) { SaveFileDialogParams saveParams = new SaveFileDialogParams("Save Parts Sheet|*.pdf"); - saveParams.ActionButtonLabel = "Save Parts Sheet"; - saveParams.Title = "MatterControl: Save"; + saveParams.ActionButtonLabel = new LocalizedString("Save Parts Sheet").Translated; + string saveParamsTitleLbl = new LocalizedString("MatterContol").Translated; + string saveParamsTitleLblFull = new LocalizedString ("Save").Translated; + saveParams.Title = string.Format("{0}: {1}",saveParamsTitleLbl,saveParamsTitleLblFull); System.IO.Stream streamToSaveTo = FileDialog.SaveFileDialog(ref saveParams); if (streamToSaveTo != null) @@ -136,10 +142,35 @@ namespace MatterHackers.MatterControl.PrintQueue return true; } - private static void SelectLocationToExportGCode(object state) + + private void OpenExportWindow(List parts) + { + if (this.exportingWindowIsOpen == false) + { + exportingWindow = new ExportToFolderFeedbackWindow(parts.Count, parts [0].Name, ActiveTheme.Instance.PrimaryBackgroundColor); + this.exportingWindowIsOpen = true; + exportingWindow.Closed += new EventHandler(ExportToFolderFeedbackWindow_Closed); + } + else + { + if (exportingWindow != null) + { + exportingWindow.BringToFront(); + } + } + } + + + void ExportToFolderFeedbackWindow_Closed(object sender, EventArgs e) + { + this.exportingWindowIsOpen = false; + } + + + private void SelectLocationToExportGCode(object state) { SelectFolderDialogParams selectParams = new SelectFolderDialogParams("Select Location To Save Files"); - selectParams.ActionButtonLabel = "Export"; + selectParams.ActionButtonLabel = new LocalizedString("Export").Translated; selectParams.Title = "MatterControl: Select A Folder"; string path = FileDialog.SelectFolderDialog(ref selectParams); @@ -148,10 +179,8 @@ namespace MatterHackers.MatterControl.PrintQueue List parts = PrintQueueControl.Instance.CreateReadOnlyPartList(); if (parts.Count > 0) { - ExportToFolderFeedbackWindow exportingWindow = new ExportToFolderFeedbackWindow(parts.Count, parts[0].Name, ActiveTheme.Instance.PrimaryBackgroundColor); - exportingWindow.ShowAsSystemWindow(); - - ExportToFolderProcess exportToFolderProcess = new ExportToFolderProcess(parts, path); + OpenExportWindow (parts); + ExportToFolderProcess exportToFolderProcess = new ExportToFolderProcess(parts, path); exportToFolderProcess.StartingNextPart += exportingWindow.StartingNextPart; exportToFolderProcess.UpdatePartStatus += exportingWindow.UpdatePartStatus; exportToFolderProcess.DoneSaving += exportingWindow.DoneSaving; diff --git a/PrinterCommunication.cs b/PrinterCommunication.cs index f7057fcdc..918bc3ea0 100644 --- a/PrinterCommunication.cs +++ b/PrinterCommunication.cs @@ -482,25 +482,25 @@ namespace MatterHackers.MatterControl switch (CommunicationState) { case CommunicationStates.Disconnected: - return "Not Connected"; + return new LocalizedString("Not Connected").Translated; case CommunicationStates.Disconnecting: - return "Disconnecting"; + return new LocalizedString("Disconnecting").Translated; case CommunicationStates.AttemptingToConnect: return "Connecting..."; case CommunicationStates.ConnectionLost: - return "Connection Lost"; + return new LocalizedString("Connection Lost").Translated; case CommunicationStates.FailedToConnect: return string.Format("Unable to Connect"); case CommunicationStates.Connected: - return "Connected"; + return new LocalizedString("Connected").Translated; case CommunicationStates.PreparingToPrint: - return "Preparing To Print"; + return new LocalizedString("Preparing To Print").Translated; case CommunicationStates.Printing: - return "Printing"; + return new LocalizedString("Printing").Translated; case CommunicationStates.Paused: - return "Paused"; + return new LocalizedString("Paused").Translated; case CommunicationStates.FinishedPrint: - return "Finished Print"; + return new LocalizedString("Finished Print").Translated; default: throw new NotImplementedException("Make sure very satus returns the correct connected state."); } @@ -1071,7 +1071,7 @@ namespace MatterHackers.MatterControl //Create and start connection thread connectThread = new Thread(Connect_Thread); - connectThread.Name = "Connect To Printer"; + connectThread.Name = "Connect To Printer"; connectThread.IsBackground = true; connectThread.Start(); } diff --git a/PrinterControls/EditManualMovementSpeedsWindow.cs b/PrinterControls/EditManualMovementSpeedsWindow.cs index ba48159ae..6beadeae6 100644 --- a/PrinterControls/EditManualMovementSpeedsWindow.cs +++ b/PrinterControls/EditManualMovementSpeedsWindow.cs @@ -38,6 +38,7 @@ using MatterHackers.Agg.UI; using MatterHackers.VectorMath; using MatterHackers.Agg.Image; using MatterHackers.MatterControl.DataStorage; +using MatterHackers.Localizations; namespace MatterHackers.MatterControl { @@ -50,7 +51,7 @@ namespace MatterHackers.MatterControl public EditManualMovementSpeedsWindow(string windowTitle, string movementSpeedsString, EventHandler functionToCallOnSave) : base(260, 300) { - Title = windowTitle; + Title = new LocalizedString(windowTitle).Translated; FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); topToBottom.AnchorAll(); @@ -62,7 +63,8 @@ namespace MatterHackers.MatterControl headerRow.Padding = new BorderDouble(0, 3, 0, 3); { - TextWidget elementHeader = new TextWidget(string.Format("Movement Speeds Presets:"), pointSize: 14); + string movementSpeedsLbl = new LocalizedString("Movement Speeds Presets").Translated; + TextWidget elementHeader = new TextWidget(string.Format("{0}:",movementSpeedsLbl), pointSize: 14); elementHeader.TextColor = ActiveTheme.Instance.PrimaryTextColor; elementHeader.HAnchor = HAnchor.ParentLeftRight; elementHeader.VAnchor = Agg.UI.VAnchor.ParentBottom; @@ -131,11 +133,13 @@ namespace MatterHackers.MatterControl if (settingsArray[i].StartsWith("e")) { int extruderIndex = (int)double.Parse(settingsArray[i].Substring(1)) + 1; - axisLabel = new TextWidget(string.Format("Extruder {0}", extruderIndex), textColor: ActiveTheme.Instance.PrimaryTextColor); + string extruderLblTxt = new LocalizedString ("Extruder").Translated; + axisLabel = new TextWidget(string.Format("{0} {1}",extruderLblTxt ,extruderIndex), textColor: ActiveTheme.Instance.PrimaryTextColor); } else { - axisLabel = new TextWidget(string.Format("Axis {0}", settingsArray[i]), textColor: ActiveTheme.Instance.PrimaryTextColor); + string axisLblText = new LocalizedString("Axis").Translated; + axisLabel = new TextWidget(string.Format("{0} {1}",axisLblText, settingsArray[i]), textColor: ActiveTheme.Instance.PrimaryTextColor); } axisLabel.VAnchor = VAnchor.ParentCenter; leftRightEdit.AddChild(axisLabel); @@ -165,10 +169,10 @@ namespace MatterHackers.MatterControl ShowAsSystemWindow(); - Button savePresetsButton = textImageButtonFactory.Generate("Save"); + Button savePresetsButton = textImageButtonFactory.Generate(new LocalizedString("Save").Translated); savePresetsButton.Click += new ButtonBase.ButtonEventHandler(save_Click); - Button cancelPresetsButton = textImageButtonFactory.Generate("Cancel"); + Button cancelPresetsButton = textImageButtonFactory.Generate(new LocalizedString("Cancel").Translated); cancelPresetsButton.Click += (sender, e) => { Close(); }; FlowLayoutWidget buttonRow = new FlowLayoutWidget(); diff --git a/PrinterControls/EditTemperaturePresetsWindow.cs b/PrinterControls/EditTemperaturePresetsWindow.cs index 411db1389..0c25ce036 100644 --- a/PrinterControls/EditTemperaturePresetsWindow.cs +++ b/PrinterControls/EditTemperaturePresetsWindow.cs @@ -51,7 +51,7 @@ namespace MatterHackers.MatterControl public EditTemperaturePresetsWindow(string windowTitle, string temperatureSettings, EventHandler functionToCallOnSave) : base(360, 300) { - Title = windowTitle; + Title = new LocalizedString(windowTitle).Translated; FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); topToBottom.AnchorAll(); diff --git a/PrinterControls/PrinterConnections/ConnectionWindow.cs b/PrinterControls/PrinterConnections/ConnectionWindow.cs index ffee05031..48bb266ae 100644 --- a/PrinterControls/PrinterConnections/ConnectionWindow.cs +++ b/PrinterControls/PrinterConnections/ConnectionWindow.cs @@ -24,7 +24,10 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections public ConnectionWindow() : base(350, 500) { - Title = new LocalizedString("MatterControl - Connect to Printer").Translated; + string connectToPrinterTitle = new LocalizedString("MatterControl").Translated; + string connectToPrinterTitleEnd = new LocalizedString ("Connect to Printer").Translated; + Title = string.Format("{0} - {1}",connectToPrinterTitle,connectToPrinterTitleEnd); + if (GetPrinterRecordCount() > 0) { ChangeToChoosePrinter(); diff --git a/WidescreenPanel.cs b/WidescreenPanel.cs index 3379ca621..1d72727a8 100644 --- a/WidescreenPanel.cs +++ b/WidescreenPanel.cs @@ -322,7 +322,7 @@ namespace MatterHackers.MatterControl void NumQueueItemsChanged(object sender, EventArgs widgetEvent) { - string queueString = new LocalizedString("Queue ({0})").Translated; + string queueString = "Queue ({0})"; QueueTabPage.Text = string.Format(queueString, PrintQueue.PrintQueueControl.Instance.Count); }