commit
f2ff09579a
9 changed files with 218 additions and 178 deletions
|
|
@ -243,10 +243,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
|
||||
static PrinterSettings()
|
||||
{
|
||||
// Convert settings array into dictionary on initial load using settings key (SlicerConfigName)
|
||||
PrinterSettings.SettingsData = SliceSettingsFields.AllSettings().ToDictionary(s => s.SlicerConfigName);
|
||||
// Convert settings array into dictionary on initial load using settings key (SlicerConfigName)
|
||||
SettingsData = SliceSettingsFields.AllSettings().ToDictionary(s => s.SlicerConfigName);
|
||||
|
||||
PrinterSettings.Layout = new SettingsLayout();
|
||||
Layout = new SettingsLayout();
|
||||
|
||||
Empty = new PrinterSettings() { ID = "EmptyProfile" };
|
||||
Empty.UserLayer[SettingsKey.printer_name] = "Empty Printer";
|
||||
|
|
@ -339,7 +339,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
{
|
||||
var settingsLayer = new PrinterSettingsLayer();
|
||||
|
||||
foreach (var settingsData in PrinterSettings.SettingsData.Values)
|
||||
foreach (var settingsData in SettingsData.Values)
|
||||
{
|
||||
settingsLayer[settingsData.SlicerConfigName] = settingsData.DefaultValue;
|
||||
}
|
||||
|
|
@ -591,8 +591,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
return null;
|
||||
}
|
||||
|
||||
int documentVersion = jObject?.GetValue("DocumentVersion")?.Value<int>() ?? PrinterSettings.LatestVersion;
|
||||
if (documentVersion < PrinterSettings.LatestVersion)
|
||||
int documentVersion = jObject?.GetValue("DocumentVersion")?.Value<int>() ?? LatestVersion;
|
||||
if (documentVersion < LatestVersion)
|
||||
{
|
||||
printerProfilePath = ProfileMigrations.MigrateDocument(printerProfilePath, documentVersion);
|
||||
}
|
||||
|
|
@ -623,7 +623,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
keysToRetain.Remove(SettingsKey.print_leveling_enabled);
|
||||
|
||||
// Iterate all items that have .ShowAsOverride = false and conditionally add to the retention list
|
||||
foreach (var item in PrinterSettings.SettingsData.Values.Where(settingsItem => settingsItem.ShowAsOverride == false))
|
||||
foreach (var item in SettingsData.Values.Where(settingsItem => settingsItem.ShowAsOverride == false))
|
||||
{
|
||||
switch (item.SlicerConfigName)
|
||||
{
|
||||
|
|
@ -659,10 +659,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
// Restore user overrides if a non-user override is being cleared
|
||||
if (layer != null && layer != UserLayer)
|
||||
{
|
||||
RestoreUserOverride(layer, settingsKey);
|
||||
RestoreUserOverride(settingsKey);
|
||||
}
|
||||
|
||||
if (PrinterSettings.SettingsData.TryGetValue(settingsKey, out SliceSettingData settingData))
|
||||
if (SettingsData.TryGetValue(settingsKey, out SliceSettingData settingData))
|
||||
{
|
||||
if (settingData.DataEditType == SliceSettingData.DataEditTypes.CHECK_BOX)
|
||||
{
|
||||
|
|
@ -744,7 +744,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
|
||||
foreach (var settingsKey in settingsLayer.Keys)
|
||||
{
|
||||
StashUserOverride(settingsLayer, settingsKey);
|
||||
StashUserOverride(settingsKey);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -872,6 +872,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
{
|
||||
layerName = "Quality";
|
||||
}
|
||||
else if (layer == this.SceneLayer)
|
||||
{
|
||||
layerName = "Scene";
|
||||
}
|
||||
|
||||
return (value, layerName);
|
||||
}
|
||||
|
|
@ -883,7 +887,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
public bool IsActive(string canonicalSettingsName)
|
||||
{
|
||||
return this.Slicer.Exports.ContainsKey(canonicalSettingsName)
|
||||
|| (this.Slicer.PrinterType == PrinterType.FFF && PrinterSettings.DefaultFFFSettings.Contains(canonicalSettingsName));
|
||||
|| (this.Slicer.PrinterType == PrinterType.FFF && DefaultFFFSettings.Contains(canonicalSettingsName));
|
||||
}
|
||||
|
||||
public bool IsOverride(string sliceSetting, IEnumerable<PrinterSettingsLayer> layers)
|
||||
|
|
@ -984,7 +988,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
|
||||
var sourceFilter = rawSourceFilter.Where(layer => layer != null);
|
||||
|
||||
foreach (var keyName in PrinterSettings.KnownSettings)
|
||||
foreach (var keyName in KnownSettings)
|
||||
{
|
||||
if (settingsToImport.Contains(keyName))
|
||||
{
|
||||
|
|
@ -1098,7 +1102,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
|
||||
foreach (var settingsKey in settingsLayer.Keys)
|
||||
{
|
||||
RestoreUserOverride(settingsLayer, settingsKey);
|
||||
RestoreUserOverride(settingsKey);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1107,7 +1111,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
// Stash user overrides if a non-user override is being set
|
||||
if (layer != null && layer != UserLayer)
|
||||
{
|
||||
StashUserOverride(layer, settingsKey);
|
||||
StashUserOverride(settingsKey);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1164,7 +1168,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
|
||||
private static HashSet<string> LoadSettingsNamesFromPropertiesJson()
|
||||
{
|
||||
return new HashSet<string>(PrinterSettings.SettingsData.Keys);
|
||||
return new HashSet<string>(SettingsData.Keys);
|
||||
}
|
||||
|
||||
private PrinterSettingsLayer GetQualityLayer(string layerID)
|
||||
|
|
@ -1200,7 +1204,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
};
|
||||
}
|
||||
|
||||
private void RestoreUserOverride(PrinterSettingsLayer settingsLayer, string settingsKey)
|
||||
private void RestoreUserOverride(string settingsKey)
|
||||
{
|
||||
if (StagedUserSettings.TryGetValue(settingsKey, out string stagedUserOverride))
|
||||
{
|
||||
|
|
@ -1212,7 +1216,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
/// <summary>
|
||||
/// Move conflicting user overrides to the temporary staging area, allowing presets values to take effect
|
||||
/// </summary>
|
||||
private void StashUserOverride(PrinterSettingsLayer settingsLayer, string settingsKey)
|
||||
private void StashUserOverride(string settingsKey)
|
||||
{
|
||||
if (this.UserLayer.TryGetValue(settingsKey, out string userOverride))
|
||||
{
|
||||
|
|
@ -1237,7 +1241,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
var bigStringForHashCode = new StringBuilder();
|
||||
|
||||
// Loop over all known settings
|
||||
foreach (var keyValue in PrinterSettings.SettingsData)
|
||||
foreach (var keyValue in SettingsData)
|
||||
{
|
||||
// Add key/value to accumulating string for hash
|
||||
if (keyValue.Value?.RebuildGCodeOnChange == true)
|
||||
|
|
|
|||
|
|
@ -387,6 +387,8 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
public event EventHandler<WorkspacesChangedEventArgs> WorkspacesChanged;
|
||||
|
||||
public event EventHandler ReloadSettingsTriggered;
|
||||
|
||||
public void ReloadSettings(PrinterConfig printer)
|
||||
{
|
||||
var printerTabPage = this.MainView.Descendants<PrinterTabPage>().Where(page => page.Printer == printer).FirstOrDefault();
|
||||
|
|
@ -415,6 +417,8 @@ namespace MatterHackers.MatterControl
|
|||
sideBar.ReplacePage("Slice Settings", new SliceSettingsWidget(printer, settingsContext, Theme));
|
||||
ApplicationController.Instance.IsReloading = false;
|
||||
}
|
||||
|
||||
ReloadSettingsTriggered?.Invoke(null, null);
|
||||
}
|
||||
|
||||
public static Action WebRequestFailed;
|
||||
|
|
|
|||
|
|
@ -92,8 +92,79 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
|
||||
public string ThumbnailName => nameof(PartSettingsObject3D);
|
||||
|
||||
private void UpdateSettingsDisplay(PrinterConfig containingPrinter)
|
||||
{
|
||||
if (containingPrinter != null)
|
||||
{
|
||||
this.Invalidate(InvalidateType.DisplayValues);
|
||||
ApplicationController.Instance.ReloadSettings(containingPrinter);
|
||||
// refresh the properties pannel by unselecting and selecting
|
||||
containingPrinter.Bed.Scene.SelectedItem = null;
|
||||
containingPrinter.Bed.Scene.SelectedItem = this;
|
||||
}
|
||||
}
|
||||
|
||||
public static HashSet<string> settingsToIgnore = new HashSet<string>()
|
||||
{
|
||||
SettingsKey.spiral_vase,
|
||||
SettingsKey.layer_to_pause,
|
||||
SettingsKey.perimeter_acceleration,
|
||||
SettingsKey.default_acceleration,
|
||||
SettingsKey.t1_extrusion_move_speed_multiplier,
|
||||
SettingsKey.bed_surface,
|
||||
SettingsKey.brim_extruder,
|
||||
SettingsKey.support_material_extruder,
|
||||
SettingsKey.support_material_interface_extruder,
|
||||
SettingsKey.material_color,
|
||||
SettingsKey.material_color_1,
|
||||
SettingsKey.material_color_2,
|
||||
SettingsKey.material_color_3,
|
||||
SettingsKey.filament_diameter,
|
||||
SettingsKey.filament_density,
|
||||
SettingsKey.filament_cost,
|
||||
SettingsKey.temperature,
|
||||
SettingsKey.temperature1,
|
||||
SettingsKey.temperature2,
|
||||
SettingsKey.temperature3,
|
||||
SettingsKey.bed_temperature,
|
||||
SettingsKey.bed_temperature_blue_tape,
|
||||
SettingsKey.bed_temperature_buildtak,
|
||||
SettingsKey.bed_temperature_garolite,
|
||||
SettingsKey.bed_temperature_glass,
|
||||
SettingsKey.bed_temperature_kapton,
|
||||
SettingsKey.bed_temperature_pei,
|
||||
SettingsKey.bed_temperature_pp,
|
||||
SettingsKey.inactive_cool_down,
|
||||
SettingsKey.seconds_to_reheat,
|
||||
};
|
||||
|
||||
public IEnumerable<EditorButtonData> GetEditorButtonsData()
|
||||
{
|
||||
var containingPrinter = this.ContainingPrinter();
|
||||
if (containingPrinter != null)
|
||||
{
|
||||
yield return new EditorButtonData()
|
||||
{
|
||||
Action = () =>
|
||||
{
|
||||
var settingsContext = new SettingsContext(containingPrinter, null, NamedSettingsLayers.All);
|
||||
foreach (var setting in containingPrinter.Settings.UserLayer)
|
||||
{
|
||||
var data = SliceSettingsRow.GetStyleData(containingPrinter, ApplicationController.Instance.Theme, settingsContext, setting.Key, true);
|
||||
|
||||
if (!settingsToIgnore.Contains(setting.Key) && data.showRestoreButton)
|
||||
{
|
||||
Overrides[setting.Key] = setting.Value;
|
||||
}
|
||||
}
|
||||
UpdateSettingsDisplay(containingPrinter);
|
||||
},
|
||||
Name = "Add User Overrides".Localize(),
|
||||
HelpText = "Copy in all current user overides".Localize()
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
if (ApplicationController.Instance.UserHasPermission(this))
|
||||
{
|
||||
yield return new EditorButtonData()
|
||||
|
|
@ -101,7 +172,14 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
Action = () =>
|
||||
{
|
||||
var settings = new PrinterSettings();
|
||||
settings.GetSceneLayer = () => Overrides;
|
||||
var printer = new PrinterConfig(settings);
|
||||
if (containingPrinter != null)
|
||||
{
|
||||
printer = containingPrinter;
|
||||
}
|
||||
|
||||
// set this after the PrinterConfig is constructed to change it to overrides
|
||||
// set this after the PrinterConfig is constructed to change it to overrides
|
||||
settings.GetSceneLayer = () => Overrides;
|
||||
|
||||
|
|
@ -114,15 +192,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
|||
editMaterialPresetsPage.Closed += (s, e2) =>
|
||||
{
|
||||
ApplicationController.Instance.AcitveSlicePresetsPage = null;
|
||||
var containingPrinter = this.ContainingPrinter();
|
||||
if (containingPrinter != null)
|
||||
{
|
||||
this.Invalidate(InvalidateType.DisplayValues);
|
||||
ApplicationController.Instance.ReloadSettings(containingPrinter);
|
||||
// refresh the properties pannel by unselecting and selecting
|
||||
containingPrinter.Bed.Scene.SelectedItem = null;
|
||||
containingPrinter.Bed.Scene.SelectedItem = this;
|
||||
}
|
||||
UpdateSettingsDisplay(containingPrinter);
|
||||
};
|
||||
|
||||
ApplicationController.Instance.AcitveSlicePresetsPage = editMaterialPresetsPage;
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ using MatterHackers.MatterControl.CustomWidgets;
|
|||
using MatterHackers.MatterControl.DataStorage;
|
||||
using MatterHackers.MatterControl.DesignTools.EditableTypes;
|
||||
using MatterHackers.MatterControl.DesignTools.Operations;
|
||||
using MatterHackers.MatterControl.Library.Widgets;
|
||||
using MatterHackers.MatterControl.PartPreviewWindow;
|
||||
using MatterHackers.MatterControl.PartPreviewWindow.View3D;
|
||||
using MatterHackers.MatterControl.SlicerConfiguration;
|
||||
|
|
@ -568,87 +569,15 @@ namespace MatterHackers.MatterControl.DesignTools
|
|||
}
|
||||
else if (propertyValue is PrinterSettingsLayer printerSettingsLayer)
|
||||
{
|
||||
var settingsBackground = new GuiWidget()
|
||||
{
|
||||
Name = "Background",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
VAnchor = VAnchor.Fit,
|
||||
Margin = 7,
|
||||
};
|
||||
var printerProfile = new PrinterSettings();
|
||||
rowContainer = AddMaterialWidget.CreateSetingsList(printerProfile, printerSettingsLayer, theme);
|
||||
|
||||
var settingsHolder = settingsBackground.AddChild(new FlowLayoutWidget(FlowDirection.TopToBottom)
|
||||
{
|
||||
Name = "Holder",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
});
|
||||
|
||||
settingsHolder.AddChild(new HorizontalLine(Color.Green)
|
||||
rowContainer.Children.First().AddChild(new HorizontalLine(Color.Green)
|
||||
{
|
||||
Height = 4 * GuiWidget.DeviceScale
|
||||
});
|
||||
}, 0);
|
||||
|
||||
var settingsCover = settingsBackground.AddChild(new GuiWidget()
|
||||
{
|
||||
Name = "Cover",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
BackgroundColor = theme.BackgroundColor.WithAlpha(100),
|
||||
});
|
||||
|
||||
settingsHolder.SizeChanged += (s5, e5) =>
|
||||
{
|
||||
settingsCover.Height = settingsHolder.Height;
|
||||
};
|
||||
|
||||
rowContainer = settingsBackground;
|
||||
|
||||
var printerProfile = new PrinterSettings();
|
||||
printerProfile.OemLayer = new PrinterSettingsLayer();
|
||||
// move all the settings to the oem layer
|
||||
var layout = new List<(int index, string category, string group, string key)>();
|
||||
foreach (var kvp in printerSettingsLayer)
|
||||
{
|
||||
printerProfile.OemLayer[kvp.Key] = kvp.Value;
|
||||
layout.Add(SliceSettingsLayouts.GetLayout(kvp.Key));
|
||||
}
|
||||
|
||||
var printer = new PrinterConfig(printerProfile);
|
||||
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
|
||||
var tabIndex = 0;
|
||||
var orderedSettings = layout.OrderBy(i => i.index).Select(i => (i.category, i.key));
|
||||
|
||||
var lastCategory = "";
|
||||
|
||||
foreach ((string category, string key) setting in orderedSettings)
|
||||
{
|
||||
if (setting.category == "")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (setting.category != lastCategory)
|
||||
{
|
||||
lastCategory = setting.category;
|
||||
// add a new setting header
|
||||
settingsHolder.AddChild(new TextWidget(setting.category.Localize() + " " + "Settings".Localize() + ":", 0, 0, bold: true)
|
||||
{
|
||||
TextColor = theme.TextColor,
|
||||
Margin = new BorderDouble(0, 5, 0, 7)
|
||||
});
|
||||
}
|
||||
|
||||
var settingsData = PrinterSettings.SettingsData[setting.key];
|
||||
var row = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, theme, ref tabIndex);
|
||||
|
||||
if (row is SliceSettingsRow settingsRow)
|
||||
{
|
||||
settingsRow.ArrowDirection = ArrowDirection.Left;
|
||||
settingsRow.Enabled = true;
|
||||
}
|
||||
|
||||
settingsHolder.AddChild(row);
|
||||
}
|
||||
|
||||
settingsHolder.AddChild(new HorizontalLine(Color.Green)
|
||||
rowContainer.Children.First().AddChild(new HorizontalLine(Color.Green)
|
||||
{
|
||||
Height = 4 * GuiWidget.DeviceScale
|
||||
});
|
||||
|
|
|
|||
|
|
@ -257,80 +257,13 @@ namespace MatterHackers.MatterControl.Library.Widgets
|
|||
});
|
||||
}
|
||||
|
||||
var settingsBackground = new GuiWidget()
|
||||
{
|
||||
Name = "Background",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
VAnchor = VAnchor.Fit
|
||||
};
|
||||
|
||||
var settingsHolder = settingsBackground.AddChild(new FlowLayoutWidget(FlowDirection.TopToBottom)
|
||||
{
|
||||
Name = "Holder",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
});
|
||||
|
||||
var settingsCover = settingsBackground.AddChild(new GuiWidget()
|
||||
{
|
||||
Name = "Cover",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
});
|
||||
|
||||
settingsHolder.SizeChanged += (s5, e5) =>
|
||||
{
|
||||
settingsCover.Height = settingsHolder.Height;
|
||||
};
|
||||
|
||||
printerDetails.ProductDataContainer.AddChild(settingsBackground);
|
||||
|
||||
var printerProfile = PrinterSettings.LoadFile(SelectedMaterial.Path);
|
||||
printerProfile.OemLayer = new PrinterSettingsLayer();
|
||||
// move all the settings to the oem layer
|
||||
var layout = new List<(int index, string category, string group, string key)>();
|
||||
foreach (var kvp in printerProfile.MaterialLayers[0])
|
||||
{
|
||||
printerProfile.OemLayer[kvp.Key] = kvp.Value;
|
||||
layout.Add(SliceSettingsLayouts.GetLayout(kvp.Key));
|
||||
}
|
||||
var printerSettingsLayer = printerProfile.MaterialLayers[0];
|
||||
printerProfile.MaterialLayers.RemoveAt(0);
|
||||
printerProfile.MaterialLayers.Add(new PrinterSettingsLayer());
|
||||
|
||||
printerProfile.MaterialLayers[0].Clear();
|
||||
|
||||
var printer = new PrinterConfig(printerProfile);
|
||||
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
|
||||
var tabIndex = 0;
|
||||
var orderedSettings = layout.OrderBy(i => i.index).Select(i => (i.category, i.key));
|
||||
|
||||
var lastCategory = "";
|
||||
|
||||
foreach ((string category, string key) setting in orderedSettings)
|
||||
{
|
||||
if (setting.category == "")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (setting.category != lastCategory)
|
||||
{
|
||||
lastCategory = setting.category;
|
||||
// add a new setting header
|
||||
settingsHolder.AddChild(new TextWidget(setting.category.Localize() + " " + "Settings".Localize() + ":", 0, 0, bold: true)
|
||||
{
|
||||
TextColor = theme.TextColor,
|
||||
Margin = new BorderDouble(0, 5, 0, 7)
|
||||
});
|
||||
}
|
||||
|
||||
var settingsData = PrinterSettings.SettingsData[setting.key];
|
||||
var row = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, theme, ref tabIndex);
|
||||
|
||||
if (row is SliceSettingsRow settingsRow)
|
||||
{
|
||||
settingsRow.ArrowDirection = ArrowDirection.Left;
|
||||
settingsRow.Enabled = true;
|
||||
}
|
||||
|
||||
settingsHolder.AddChild(row);
|
||||
}
|
||||
var settingsBackground = CreateSetingsList(printerProfile, printerSettingsLayer, theme);
|
||||
printerDetails.ProductDataContainer.AddChild(settingsBackground);
|
||||
};
|
||||
|
||||
nextButtonEnabled(treeView.SelectedNode != null);
|
||||
|
|
@ -342,5 +275,82 @@ namespace MatterHackers.MatterControl.Library.Widgets
|
|||
nextButtonEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
public static GuiWidget CreateSetingsList(PrinterSettings printerProfile, PrinterSettingsLayer printerSettingsLayer, ThemeConfig theme)
|
||||
{
|
||||
var settingsBackground = new GuiWidget()
|
||||
{
|
||||
Name = "Background",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
VAnchor = VAnchor.Fit,
|
||||
Margin = 7,
|
||||
};
|
||||
|
||||
var settingsHolder = settingsBackground.AddChild(new FlowLayoutWidget(FlowDirection.TopToBottom)
|
||||
{
|
||||
Name = "Holder",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
});
|
||||
|
||||
var settingsCover = settingsBackground.AddChild(new GuiWidget()
|
||||
{
|
||||
Name = "Cover",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
BackgroundColor = theme.BackgroundColor.WithAlpha(100),
|
||||
});
|
||||
|
||||
settingsHolder.SizeChanged += (s5, e5) =>
|
||||
{
|
||||
settingsCover.Height = settingsHolder.Height;
|
||||
};
|
||||
|
||||
printerProfile.OemLayer = new PrinterSettingsLayer();
|
||||
// move all the settings to the oem layer
|
||||
var layout = new List<(int index, string category, string group, string key)>();
|
||||
foreach (var kvp in printerSettingsLayer)
|
||||
{
|
||||
printerProfile.OemLayer[kvp.Key] = kvp.Value;
|
||||
layout.Add(SliceSettingsLayouts.GetLayout(kvp.Key));
|
||||
}
|
||||
|
||||
var printer = new PrinterConfig(printerProfile);
|
||||
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
|
||||
var tabIndex = 0;
|
||||
var orderedSettings = layout.OrderBy(i => i.index).Select(i => (i.category, i.key));
|
||||
|
||||
var lastCategory = "";
|
||||
|
||||
foreach ((string category, string key) setting in orderedSettings)
|
||||
{
|
||||
if (setting.category == "")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (setting.category != lastCategory)
|
||||
{
|
||||
lastCategory = setting.category;
|
||||
// add a new setting header
|
||||
settingsHolder.AddChild(new TextWidget(setting.category.Localize() + " " + "Settings".Localize() + ":", 0, 0, bold: true)
|
||||
{
|
||||
TextColor = theme.TextColor,
|
||||
Margin = new BorderDouble(0, 5, 0, 7)
|
||||
});
|
||||
}
|
||||
|
||||
var settingsData = PrinterSettings.SettingsData[setting.key];
|
||||
var row = SliceSettingsTabView.CreateItemRow(settingsData, settingsContext, printer, theme, ref tabIndex);
|
||||
|
||||
if (row is SliceSettingsRow settingsRow)
|
||||
{
|
||||
settingsRow.ArrowDirection = ArrowDirection.Left;
|
||||
settingsRow.Enabled = true;
|
||||
}
|
||||
|
||||
settingsHolder.AddChild(row);
|
||||
}
|
||||
|
||||
return settingsBackground;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -68,6 +68,19 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
var sliceSettingsWidget = CreateSliceSettingsWidget(printer, presetsContext.PersistenceLayer);
|
||||
contentRow.AddChild(sliceSettingsWidget);
|
||||
|
||||
void ReloadSettings(object s, EventArgs e)
|
||||
{
|
||||
var newSliceSettingsWidget = CreateSliceSettingsWidget(printer, presetsContext.PersistenceLayer);
|
||||
contentRow.ReplaceChild(sliceSettingsWidget, newSliceSettingsWidget);
|
||||
contentRow.Width += 1;
|
||||
contentRow.Width -= 1;
|
||||
sliceSettingsWidget = newSliceSettingsWidget;
|
||||
}
|
||||
|
||||
ApplicationController.Instance.ReloadSettingsTriggered += ReloadSettings;
|
||||
|
||||
this.Closed += (s, e) => ApplicationController.Instance.ReloadSettingsTriggered -= ReloadSettings;
|
||||
|
||||
GuiWidget duplicateButton = null;
|
||||
|
||||
if (presetsContext.SetAsActive != null)
|
||||
|
|
|
|||
|
|
@ -511,6 +511,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
{
|
||||
highlightColor = theme.PresetColors.QualityPreset;
|
||||
}
|
||||
else if (layerName.StartsWith("Scene"))
|
||||
{
|
||||
highlightColor = theme.PresetColors.ScenePreset;
|
||||
}
|
||||
else
|
||||
{
|
||||
highlightColor = Color.Transparent;
|
||||
|
|
@ -542,7 +546,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
break;
|
||||
case NamedSettingsLayers.Scene:
|
||||
highlightColor = theme.PresetColors.ScenePreset;
|
||||
showRestoreButton = true;
|
||||
showRestoreButton = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -247,6 +247,9 @@ Translated:Add to Queue
|
|||
English:Add to Selection
|
||||
Translated:Add to Selection
|
||||
|
||||
English:Add User Overrides
|
||||
Translated:Add User Overrides
|
||||
|
||||
English:Additional Printing Errors
|
||||
Translated:Additional Printing Errors
|
||||
|
||||
|
|
@ -1042,6 +1045,9 @@ Translated:Copy everything but hardware specific calibration settings
|
|||
English:Copy extrusions data
|
||||
Translated:Copy extrusions data
|
||||
|
||||
English:Copy in all current user overides
|
||||
Translated:Copy in all current user overides
|
||||
|
||||
English:Copy Mesh
|
||||
Translated:Copy Mesh
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 7ea2bbbf3634ab37698640cc184ac2d2755cffbe
|
||||
Subproject commit 303fb1cf3baada642aaa46eb4d2e9fd546045bf7
|
||||
Loading…
Add table
Add a link
Reference in a new issue