more work on import
This commit is contained in:
parent
86a7e7c415
commit
b9f92280b3
3 changed files with 85 additions and 3 deletions
|
|
@ -81,7 +81,7 @@ namespace MatterHackers.MatterControl
|
||||||
CreateDetailInfo("Add new quality preset with the settings from this import.")
|
CreateDetailInfo("Add new quality preset with the settings from this import.")
|
||||||
);
|
);
|
||||||
|
|
||||||
// add as materila preset
|
// add as material preset
|
||||||
var newMaterialPresetButton = new RadioButton("Import settings as new MATERIAL preset".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor);
|
var newMaterialPresetButton = new RadioButton("Import settings as new MATERIAL preset".Localize(), textColor: ActiveTheme.Instance.PrimaryTextColor);
|
||||||
newMaterialPresetButton.CheckedStateChanged += (s, e) => importMode = "materialPreset";
|
newMaterialPresetButton.CheckedStateChanged += (s, e) => importMode = "materialPreset";
|
||||||
container.AddChild(newMaterialPresetButton);
|
container.AddChild(newMaterialPresetButton);
|
||||||
|
|
@ -140,11 +140,64 @@ namespace MatterHackers.MatterControl
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "qualityPreset":
|
case "qualityPreset":
|
||||||
throw new NotImplementedException("import to preset");
|
ImportToPreset(settingsFilePath);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ImportToPreset(string settingsFilePath)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(settingsFilePath) && File.Exists(settingsFilePath))
|
||||||
|
{
|
||||||
|
string importType = Path.GetExtension(settingsFilePath).ToLower();
|
||||||
|
switch (importType)
|
||||||
|
{
|
||||||
|
case ".printer":
|
||||||
|
// open a wizard to ask what to import to the preset
|
||||||
|
throw new NotImplementedException("need to import from 'MatterControl.printer' files");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ".ini":
|
||||||
|
var settingsToImport = SettingsLayer.LoadFromIni(settingsFilePath);
|
||||||
|
string layerHeight;
|
||||||
|
|
||||||
|
bool isSlic3r = settingsToImport.TryGetValue("layer_height", out layerHeight);
|
||||||
|
if (isSlic3r)
|
||||||
|
{
|
||||||
|
// TODO: this should only be the oem and user layer (not the quality or material layer)
|
||||||
|
var activeSettings = ActiveSliceSettings.Instance;
|
||||||
|
|
||||||
|
foreach (var item in settingsToImport)
|
||||||
|
{
|
||||||
|
// Compare the value to import to the layer cascade value and only set if different
|
||||||
|
string currentValue = activeSettings.GetActiveValue(item.Key, null).Trim();
|
||||||
|
if (currentValue != item.Value)
|
||||||
|
{
|
||||||
|
activeSettings.UserLayer[item.Key] = item.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
activeSettings.SaveChanges();
|
||||||
|
|
||||||
|
UiThread.RunOnIdle(ApplicationController.Instance.ReloadAdvancedControlsPanel);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// looks like a cura file
|
||||||
|
throw new NotImplementedException("need to import from 'cure.ini' files");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Did not figure out what this file is, let the user know we don't understand it
|
||||||
|
StyledMessageBox.ShowMessageBox(null, "Oops! Unable to recognize settings file '{0}'.".Localize().FormatWith(Path.GetFileName(settingsFilePath)), "Unable to Import".Localize());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
private void MergeSettings(string settingsFilePath)
|
private void MergeSettings(string settingsFilePath)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(settingsFilePath) && File.Exists(settingsFilePath))
|
if (!string.IsNullOrEmpty(settingsFilePath) && File.Exists(settingsFilePath))
|
||||||
|
|
@ -156,6 +209,7 @@ namespace MatterHackers.MatterControl
|
||||||
throw new NotImplementedException("need to import from 'MatterControl.printer' files");
|
throw new NotImplementedException("need to import from 'MatterControl.printer' files");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ".slice": // old presets format
|
||||||
case ".ini":
|
case ".ini":
|
||||||
var settingsToImport = SettingsLayer.LoadFromIni(settingsFilePath);
|
var settingsToImport = SettingsLayer.LoadFromIni(settingsFilePath);
|
||||||
string layerHeight;
|
string layerHeight;
|
||||||
|
|
@ -163,6 +217,7 @@ namespace MatterHackers.MatterControl
|
||||||
bool isSlic3r = settingsToImport.TryGetValue("layer_height", out layerHeight);
|
bool isSlic3r = settingsToImport.TryGetValue("layer_height", out layerHeight);
|
||||||
if (isSlic3r)
|
if (isSlic3r)
|
||||||
{
|
{
|
||||||
|
// TODO: this should only be the oem and user layer (not the quality or material layer)
|
||||||
var activeSettings = ActiveSliceSettings.Instance;
|
var activeSettings = ActiveSliceSettings.Instance;
|
||||||
|
|
||||||
foreach (var item in settingsToImport)
|
foreach (var item in settingsToImport)
|
||||||
|
|
|
||||||
|
|
@ -4999,3 +4999,30 @@ Translated:Import Settings
|
||||||
English:Oops! Please select a serial port.
|
English:Oops! Please select a serial port.
|
||||||
Translated:Oops! Please select a serial port.
|
Translated:Oops! Please select a serial port.
|
||||||
|
|
||||||
|
English:The layers at which the print will pause, allowing for a change in filament. Leave blank to disable. To pause on multiple layers, separate the layer numbers with semicolons. For example: "16; 37".
|
||||||
|
Translated:The layers at which the print will pause, allowing for a change in filament. Leave blank to disable. To pause on multiple layers, separate the layer numbers with semicolons. For example: "16; 37".
|
||||||
|
|
||||||
|
English:Layers To Pause:
|
||||||
|
Translated:Layers To Pause:
|
||||||
|
|
||||||
|
English:Import Wizard
|
||||||
|
Translated:Import Wizard
|
||||||
|
|
||||||
|
English:Import settings as new QUALITY preset
|
||||||
|
Translated:Import settings as new QUALITY preset
|
||||||
|
|
||||||
|
English:Import settings as new MATERIAL preset
|
||||||
|
Translated:Import settings as new MATERIAL preset
|
||||||
|
|
||||||
|
English:Choose File
|
||||||
|
Translated:Choose File
|
||||||
|
|
||||||
|
English:Export Wizard
|
||||||
|
Translated:Export Wizard
|
||||||
|
|
||||||
|
English:Oops! Unable to recognize settings file '{0}'.
|
||||||
|
Translated:Oops! Unable to recognize settings file '{0}'.
|
||||||
|
|
||||||
|
English:Unable to Import
|
||||||
|
Translated:Unable to Import
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit a78c996079a66ccfdb6e03cc9c26a41b72aa0164
|
Subproject commit 592ff542480fc9a0982046486fa1e9264d66ccd9
|
||||||
Loading…
Add table
Add a link
Reference in a new issue