From 0046a12ba20a55e2cfe37e4fb9f9c5d8d75f32c5 Mon Sep 17 00:00:00 2001 From: Gregory Diaz Date: Mon, 2 Nov 2015 12:41:49 -0800 Subject: [PATCH 1/2] Changed Esagono Manufacturer name in StaticData so that we don't run into problems when parsing folders on disk whose names include unicode characters --- .../{Esagonò => Esagono}/MELTEDBYTE XL/calibration.ini | 0 .../PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/config.ini | 0 .../{Esagonò => Esagono}/MELTEDBYTE XL/material/ABS.slice | 0 .../{Esagonò => Esagono}/MELTEDBYTE XL/material/PLA.slice | 0 .../{Esagonò => Esagono}/MELTEDBYTE XL/quality/High.slice | 0 .../{Esagonò => Esagono}/MELTEDBYTE XL/quality/Low.slice | 0 .../{Esagonò => Esagono}/MELTEDBYTE XL/quality/Med.slice | 0 .../PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/setup.ini | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename StaticData/PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/calibration.ini (100%) rename StaticData/PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/config.ini (100%) rename StaticData/PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/material/ABS.slice (100%) rename StaticData/PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/material/PLA.slice (100%) rename StaticData/PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/quality/High.slice (100%) rename StaticData/PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/quality/Low.slice (100%) rename StaticData/PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/quality/Med.slice (100%) rename StaticData/PrinterSettings/{Esagonò => Esagono}/MELTEDBYTE XL/setup.ini (100%) diff --git a/StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/calibration.ini b/StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/calibration.ini similarity index 100% rename from StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/calibration.ini rename to StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/calibration.ini diff --git a/StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/config.ini b/StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/config.ini similarity index 100% rename from StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/config.ini rename to StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/config.ini diff --git a/StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/material/ABS.slice b/StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/material/ABS.slice similarity index 100% rename from StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/material/ABS.slice rename to StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/material/ABS.slice diff --git a/StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/material/PLA.slice b/StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/material/PLA.slice similarity index 100% rename from StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/material/PLA.slice rename to StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/material/PLA.slice diff --git a/StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/quality/High.slice b/StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/quality/High.slice similarity index 100% rename from StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/quality/High.slice rename to StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/quality/High.slice diff --git a/StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/quality/Low.slice b/StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/quality/Low.slice similarity index 100% rename from StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/quality/Low.slice rename to StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/quality/Low.slice diff --git a/StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/quality/Med.slice b/StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/quality/Med.slice similarity index 100% rename from StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/quality/Med.slice rename to StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/quality/Med.slice diff --git a/StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/setup.ini b/StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/setup.ini similarity index 100% rename from StaticData/PrinterSettings/Esagonò/MELTEDBYTE XL/setup.ini rename to StaticData/PrinterSettings/Esagono/MELTEDBYTE XL/setup.ini From 8f6ecbc1fe1865951e8d87576b57f9246438d5e8 Mon Sep 17 00:00:00 2001 From: Gregory Diaz Date: Mon, 2 Nov 2015 17:54:26 -0800 Subject: [PATCH 2/2] Added logic to show manufacturer names with utf characters --- .../PrinterConnections/PrinterChooser.cs | 41 ++++++++++++------- .../SetupStepMakeModelName.cs | 13 ++++++ SettingsManagement/OemSettings.cs | 20 ++++++++- StaticData/OEMSettings/Settings.json | 6 +++ 4 files changed, 64 insertions(+), 16 deletions(-) diff --git a/PrinterControls/PrinterConnections/PrinterChooser.cs b/PrinterControls/PrinterConnections/PrinterChooser.cs index 0250e45c6..8f9469d5c 100644 --- a/PrinterControls/PrinterConnections/PrinterChooser.cs +++ b/PrinterControls/PrinterConnections/PrinterChooser.cs @@ -30,6 +30,7 @@ either expressed or implied, of the FreeBSD Project. using MatterHackers.Agg.PlatformAbstract; using MatterHackers.Agg.UI; using MatterHackers.Localizations; +using System.Collections.Generic; using MatterHackers.MatterControl.SettingsManagement; using System.IO; using System.Linq; @@ -40,6 +41,7 @@ namespace MatterHackers.MatterControl { public StyledDropDownList ManufacturerDropList; private int countOfMakes = 0; + private string manufacturer; public int CountOfMakes { get { return countOfMakes; } } @@ -50,6 +52,7 @@ namespace MatterHackers.MatterControl ManufacturerDropList = new StyledDropDownList(defaultManufacturerLabelFull, maxHeight: 200); bool addOther = false; string[] printerWhiteListStrings = OemSettings.Instance.PrinterWhiteList.ToArray(); + List manufacturerNameMappings = OemSettings.Instance.ManufacturerNameMappings; string pathToManufacturers = "PrinterSettings"; if (StaticData.Instance.DirectoryExists(pathToManufacturers)) { @@ -59,29 +62,37 @@ namespace MatterHackers.MatterControl { string folderName = Path.GetFileName(manufacturerDirectory.TrimEnd(new[] { '/', '\\' })); - if (printerWhiteListStrings.Contains(folderName)) + foreach(ManufacturerNameMapping nameMapping in manufacturerNameMappings) { - string manufacturer = Path.GetFileName(manufacturerDirectory); - if (manufacturer == "Other") + if(nameMapping.NameOnDisk == folderName) { - addOther = true; + this.manufacturer = nameMapping.NameToDisplay; } else { - ManufacturerDropList.AddItem(manufacturer); - if (selectedMake != null) - { - if (manufacturer == selectedMake) - { - preselectIndex = index; - } - } - - index++; + this.manufacturer = Path.GetFileName(manufacturerDirectory); } - countOfMakes += 1; } + + if (this.manufacturer == "Other") + { + addOther = true; + } + else + { + ManufacturerDropList.AddItem(manufacturer); + if (selectedMake != null) + { + if (this.manufacturer == selectedMake) + { + preselectIndex = index; + } + } + index++; + } + countOfMakes += 1; } + if (addOther) { if (selectedMake != null && preselectIndex == -1) diff --git a/PrinterControls/PrinterConnections/SetupStepMakeModelName.cs b/PrinterControls/PrinterConnections/SetupStepMakeModelName.cs index 3af9be4b9..cd2d5fa1c 100644 --- a/PrinterControls/PrinterConnections/SetupStepMakeModelName.cs +++ b/PrinterControls/PrinterConnections/SetupStepMakeModelName.cs @@ -3,6 +3,7 @@ using MatterHackers.Agg.UI; using MatterHackers.Localizations; using MatterHackers.MatterControl.DataStorage; using System; +using MatterHackers.MatterControl.SettingsManagement; using System.Collections.Generic; using System.Linq; @@ -182,6 +183,18 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections //reconstruct model selector int currentIndex = contentRow.GetChildIndex(printerModelContainer); contentRow.RemoveChild(printerModelContainer); + List manufacturerNameMapping = OemSettings.Instance.ManufacturerNameMappings; + + foreach(ManufacturerNameMapping mapping in manufacturerNameMapping) + { + + if (mapping.NameToDisplay == ActivePrinter.Make) + { + ActivePrinter.Make = mapping.NameOnDisk; + } + + } + printerModelContainer = createPrinterModelContainer(ActivePrinter.Make); contentRow.AddChild(printerModelContainer, currentIndex); diff --git a/SettingsManagement/OemSettings.cs b/SettingsManagement/OemSettings.cs index 376329513..a1493c655 100644 --- a/SettingsManagement/OemSettings.cs +++ b/SettingsManagement/OemSettings.cs @@ -75,11 +75,15 @@ namespace MatterHackers.MatterControl.SettingsManagement public List PrinterWhiteList { get { return printerWhiteList; } } + public List ManufacturerNameMappings { get; set; } + // TODO: Is this ever initialized and if so, how, given there's no obvious references and only one use of the property private List preloadedLibraryFiles = new List(); public List PreloadedLibraryFiles { get { return preloadedLibraryFiles; } } + + private OemSettings() { #if false // test saving the file @@ -93,4 +97,18 @@ namespace MatterHackers.MatterControl.SettingsManagement #endif } } -} \ No newline at end of file + + public class ManufacturerNameMapping + { + public string NameOnDisk + { + get; set; + } + + public string NameToDisplay + { + get; set; + } + } +} + diff --git a/StaticData/OEMSettings/Settings.json b/StaticData/OEMSettings/Settings.json index c418bd4fc..d9b9d4d1e 100644 --- a/StaticData/OEMSettings/Settings.json +++ b/StaticData/OEMSettings/Settings.json @@ -33,6 +33,12 @@ "Wanhao USA", "Velleman", ], + "ManufacturerNameMappings": [ + { + "NameOnDisk": "Esagono", + "NameToDisplay": "Esagonò", + } + ], "PreloadedLibraryFiles": [ "Calibration - Box.stl" ]