commit
f2ff09579a
9 changed files with 218 additions and 178 deletions
|
|
@ -243,10 +243,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
|
|
||||||
static PrinterSettings()
|
static PrinterSettings()
|
||||||
{
|
{
|
||||||
// Convert settings array into dictionary on initial load using settings key (SlicerConfigName)
|
// Convert settings array into dictionary on initial load using settings key (SlicerConfigName)
|
||||||
PrinterSettings.SettingsData = SliceSettingsFields.AllSettings().ToDictionary(s => s.SlicerConfigName);
|
SettingsData = SliceSettingsFields.AllSettings().ToDictionary(s => s.SlicerConfigName);
|
||||||
|
|
||||||
PrinterSettings.Layout = new SettingsLayout();
|
Layout = new SettingsLayout();
|
||||||
|
|
||||||
Empty = new PrinterSettings() { ID = "EmptyProfile" };
|
Empty = new PrinterSettings() { ID = "EmptyProfile" };
|
||||||
Empty.UserLayer[SettingsKey.printer_name] = "Empty Printer";
|
Empty.UserLayer[SettingsKey.printer_name] = "Empty Printer";
|
||||||
|
|
@ -339,7 +339,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
{
|
{
|
||||||
var settingsLayer = new PrinterSettingsLayer();
|
var settingsLayer = new PrinterSettingsLayer();
|
||||||
|
|
||||||
foreach (var settingsData in PrinterSettings.SettingsData.Values)
|
foreach (var settingsData in SettingsData.Values)
|
||||||
{
|
{
|
||||||
settingsLayer[settingsData.SlicerConfigName] = settingsData.DefaultValue;
|
settingsLayer[settingsData.SlicerConfigName] = settingsData.DefaultValue;
|
||||||
}
|
}
|
||||||
|
|
@ -591,8 +591,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
int documentVersion = jObject?.GetValue("DocumentVersion")?.Value<int>() ?? PrinterSettings.LatestVersion;
|
int documentVersion = jObject?.GetValue("DocumentVersion")?.Value<int>() ?? LatestVersion;
|
||||||
if (documentVersion < PrinterSettings.LatestVersion)
|
if (documentVersion < LatestVersion)
|
||||||
{
|
{
|
||||||
printerProfilePath = ProfileMigrations.MigrateDocument(printerProfilePath, documentVersion);
|
printerProfilePath = ProfileMigrations.MigrateDocument(printerProfilePath, documentVersion);
|
||||||
}
|
}
|
||||||
|
|
@ -623,7 +623,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
keysToRetain.Remove(SettingsKey.print_leveling_enabled);
|
keysToRetain.Remove(SettingsKey.print_leveling_enabled);
|
||||||
|
|
||||||
// Iterate all items that have .ShowAsOverride = false and conditionally add to the retention list
|
// 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)
|
switch (item.SlicerConfigName)
|
||||||
{
|
{
|
||||||
|
|
@ -659,10 +659,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
// Restore user overrides if a non-user override is being cleared
|
// Restore user overrides if a non-user override is being cleared
|
||||||
if (layer != null && layer != UserLayer)
|
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)
|
if (settingData.DataEditType == SliceSettingData.DataEditTypes.CHECK_BOX)
|
||||||
{
|
{
|
||||||
|
|
@ -744,7 +744,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
|
|
||||||
foreach (var settingsKey in settingsLayer.Keys)
|
foreach (var settingsKey in settingsLayer.Keys)
|
||||||
{
|
{
|
||||||
StashUserOverride(settingsLayer, settingsKey);
|
StashUserOverride(settingsKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -872,6 +872,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
{
|
{
|
||||||
layerName = "Quality";
|
layerName = "Quality";
|
||||||
}
|
}
|
||||||
|
else if (layer == this.SceneLayer)
|
||||||
|
{
|
||||||
|
layerName = "Scene";
|
||||||
|
}
|
||||||
|
|
||||||
return (value, layerName);
|
return (value, layerName);
|
||||||
}
|
}
|
||||||
|
|
@ -883,7 +887,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
public bool IsActive(string canonicalSettingsName)
|
public bool IsActive(string canonicalSettingsName)
|
||||||
{
|
{
|
||||||
return this.Slicer.Exports.ContainsKey(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)
|
public bool IsOverride(string sliceSetting, IEnumerable<PrinterSettingsLayer> layers)
|
||||||
|
|
@ -984,7 +988,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
|
|
||||||
var sourceFilter = rawSourceFilter.Where(layer => layer != null);
|
var sourceFilter = rawSourceFilter.Where(layer => layer != null);
|
||||||
|
|
||||||
foreach (var keyName in PrinterSettings.KnownSettings)
|
foreach (var keyName in KnownSettings)
|
||||||
{
|
{
|
||||||
if (settingsToImport.Contains(keyName))
|
if (settingsToImport.Contains(keyName))
|
||||||
{
|
{
|
||||||
|
|
@ -1098,7 +1102,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
|
|
||||||
foreach (var settingsKey in settingsLayer.Keys)
|
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
|
// Stash user overrides if a non-user override is being set
|
||||||
if (layer != null && layer != UserLayer)
|
if (layer != null && layer != UserLayer)
|
||||||
{
|
{
|
||||||
StashUserOverride(layer, settingsKey);
|
StashUserOverride(settingsKey);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -1164,7 +1168,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
|
|
||||||
private static HashSet<string> LoadSettingsNamesFromPropertiesJson()
|
private static HashSet<string> LoadSettingsNamesFromPropertiesJson()
|
||||||
{
|
{
|
||||||
return new HashSet<string>(PrinterSettings.SettingsData.Keys);
|
return new HashSet<string>(SettingsData.Keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
private PrinterSettingsLayer GetQualityLayer(string layerID)
|
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))
|
if (StagedUserSettings.TryGetValue(settingsKey, out string stagedUserOverride))
|
||||||
{
|
{
|
||||||
|
|
@ -1212,7 +1216,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Move conflicting user overrides to the temporary staging area, allowing presets values to take effect
|
/// Move conflicting user overrides to the temporary staging area, allowing presets values to take effect
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void StashUserOverride(PrinterSettingsLayer settingsLayer, string settingsKey)
|
private void StashUserOverride(string settingsKey)
|
||||||
{
|
{
|
||||||
if (this.UserLayer.TryGetValue(settingsKey, out string userOverride))
|
if (this.UserLayer.TryGetValue(settingsKey, out string userOverride))
|
||||||
{
|
{
|
||||||
|
|
@ -1237,7 +1241,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
var bigStringForHashCode = new StringBuilder();
|
var bigStringForHashCode = new StringBuilder();
|
||||||
|
|
||||||
// Loop over all known settings
|
// Loop over all known settings
|
||||||
foreach (var keyValue in PrinterSettings.SettingsData)
|
foreach (var keyValue in SettingsData)
|
||||||
{
|
{
|
||||||
// Add key/value to accumulating string for hash
|
// Add key/value to accumulating string for hash
|
||||||
if (keyValue.Value?.RebuildGCodeOnChange == true)
|
if (keyValue.Value?.RebuildGCodeOnChange == true)
|
||||||
|
|
|
||||||
|
|
@ -387,6 +387,8 @@ namespace MatterHackers.MatterControl
|
||||||
|
|
||||||
public event EventHandler<WorkspacesChangedEventArgs> WorkspacesChanged;
|
public event EventHandler<WorkspacesChangedEventArgs> WorkspacesChanged;
|
||||||
|
|
||||||
|
public event EventHandler ReloadSettingsTriggered;
|
||||||
|
|
||||||
public void ReloadSettings(PrinterConfig printer)
|
public void ReloadSettings(PrinterConfig printer)
|
||||||
{
|
{
|
||||||
var printerTabPage = this.MainView.Descendants<PrinterTabPage>().Where(page => page.Printer == printer).FirstOrDefault();
|
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));
|
sideBar.ReplacePage("Slice Settings", new SliceSettingsWidget(printer, settingsContext, Theme));
|
||||||
ApplicationController.Instance.IsReloading = false;
|
ApplicationController.Instance.IsReloading = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ReloadSettingsTriggered?.Invoke(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Action WebRequestFailed;
|
public static Action WebRequestFailed;
|
||||||
|
|
|
||||||
|
|
@ -92,8 +92,79 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
||||||
|
|
||||||
public string ThumbnailName => nameof(PartSettingsObject3D);
|
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()
|
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))
|
if (ApplicationController.Instance.UserHasPermission(this))
|
||||||
{
|
{
|
||||||
yield return new EditorButtonData()
|
yield return new EditorButtonData()
|
||||||
|
|
@ -101,7 +172,14 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
||||||
Action = () =>
|
Action = () =>
|
||||||
{
|
{
|
||||||
var settings = new PrinterSettings();
|
var settings = new PrinterSettings();
|
||||||
|
settings.GetSceneLayer = () => Overrides;
|
||||||
var printer = new PrinterConfig(settings);
|
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
|
// set this after the PrinterConfig is constructed to change it to overrides
|
||||||
settings.GetSceneLayer = () => Overrides;
|
settings.GetSceneLayer = () => Overrides;
|
||||||
|
|
||||||
|
|
@ -114,15 +192,7 @@ namespace MatterHackers.MatterControl.DesignTools.Operations
|
||||||
editMaterialPresetsPage.Closed += (s, e2) =>
|
editMaterialPresetsPage.Closed += (s, e2) =>
|
||||||
{
|
{
|
||||||
ApplicationController.Instance.AcitveSlicePresetsPage = null;
|
ApplicationController.Instance.AcitveSlicePresetsPage = null;
|
||||||
var containingPrinter = this.ContainingPrinter();
|
UpdateSettingsDisplay(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;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ApplicationController.Instance.AcitveSlicePresetsPage = editMaterialPresetsPage;
|
ApplicationController.Instance.AcitveSlicePresetsPage = editMaterialPresetsPage;
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@ using MatterHackers.MatterControl.CustomWidgets;
|
||||||
using MatterHackers.MatterControl.DataStorage;
|
using MatterHackers.MatterControl.DataStorage;
|
||||||
using MatterHackers.MatterControl.DesignTools.EditableTypes;
|
using MatterHackers.MatterControl.DesignTools.EditableTypes;
|
||||||
using MatterHackers.MatterControl.DesignTools.Operations;
|
using MatterHackers.MatterControl.DesignTools.Operations;
|
||||||
|
using MatterHackers.MatterControl.Library.Widgets;
|
||||||
using MatterHackers.MatterControl.PartPreviewWindow;
|
using MatterHackers.MatterControl.PartPreviewWindow;
|
||||||
using MatterHackers.MatterControl.PartPreviewWindow.View3D;
|
using MatterHackers.MatterControl.PartPreviewWindow.View3D;
|
||||||
using MatterHackers.MatterControl.SlicerConfiguration;
|
using MatterHackers.MatterControl.SlicerConfiguration;
|
||||||
|
|
@ -568,87 +569,15 @@ namespace MatterHackers.MatterControl.DesignTools
|
||||||
}
|
}
|
||||||
else if (propertyValue is PrinterSettingsLayer printerSettingsLayer)
|
else if (propertyValue is PrinterSettingsLayer printerSettingsLayer)
|
||||||
{
|
{
|
||||||
var settingsBackground = new GuiWidget()
|
var printerProfile = new PrinterSettings();
|
||||||
{
|
rowContainer = AddMaterialWidget.CreateSetingsList(printerProfile, printerSettingsLayer, theme);
|
||||||
Name = "Background",
|
|
||||||
HAnchor = HAnchor.Stretch,
|
|
||||||
VAnchor = VAnchor.Fit,
|
|
||||||
Margin = 7,
|
|
||||||
};
|
|
||||||
|
|
||||||
var settingsHolder = settingsBackground.AddChild(new FlowLayoutWidget(FlowDirection.TopToBottom)
|
rowContainer.Children.First().AddChild(new HorizontalLine(Color.Green)
|
||||||
{
|
|
||||||
Name = "Holder",
|
|
||||||
HAnchor = HAnchor.Stretch,
|
|
||||||
});
|
|
||||||
|
|
||||||
settingsHolder.AddChild(new HorizontalLine(Color.Green)
|
|
||||||
{
|
{
|
||||||
Height = 4 * GuiWidget.DeviceScale
|
Height = 4 * GuiWidget.DeviceScale
|
||||||
});
|
}, 0);
|
||||||
|
|
||||||
var settingsCover = settingsBackground.AddChild(new GuiWidget()
|
rowContainer.Children.First().AddChild(new HorizontalLine(Color.Green)
|
||||||
{
|
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
Height = 4 * GuiWidget.DeviceScale
|
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);
|
var printerProfile = PrinterSettings.LoadFile(SelectedMaterial.Path);
|
||||||
printerProfile.OemLayer = new PrinterSettingsLayer();
|
var printerSettingsLayer = printerProfile.MaterialLayers[0];
|
||||||
// move all the settings to the oem layer
|
printerProfile.MaterialLayers.RemoveAt(0);
|
||||||
var layout = new List<(int index, string category, string group, string key)>();
|
printerProfile.MaterialLayers.Add(new PrinterSettingsLayer());
|
||||||
foreach (var kvp in printerProfile.MaterialLayers[0])
|
|
||||||
{
|
|
||||||
printerProfile.OemLayer[kvp.Key] = kvp.Value;
|
|
||||||
layout.Add(SliceSettingsLayouts.GetLayout(kvp.Key));
|
|
||||||
}
|
|
||||||
|
|
||||||
printerProfile.MaterialLayers[0].Clear();
|
var settingsBackground = CreateSetingsList(printerProfile, printerSettingsLayer, theme);
|
||||||
|
printerDetails.ProductDataContainer.AddChild(settingsBackground);
|
||||||
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);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nextButtonEnabled(treeView.SelectedNode != null);
|
nextButtonEnabled(treeView.SelectedNode != null);
|
||||||
|
|
@ -342,5 +275,82 @@ namespace MatterHackers.MatterControl.Library.Widgets
|
||||||
nextButtonEnabled(false);
|
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);
|
var sliceSettingsWidget = CreateSliceSettingsWidget(printer, presetsContext.PersistenceLayer);
|
||||||
contentRow.AddChild(sliceSettingsWidget);
|
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;
|
GuiWidget duplicateButton = null;
|
||||||
|
|
||||||
if (presetsContext.SetAsActive != null)
|
if (presetsContext.SetAsActive != null)
|
||||||
|
|
|
||||||
|
|
@ -511,6 +511,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
{
|
{
|
||||||
highlightColor = theme.PresetColors.QualityPreset;
|
highlightColor = theme.PresetColors.QualityPreset;
|
||||||
}
|
}
|
||||||
|
else if (layerName.StartsWith("Scene"))
|
||||||
|
{
|
||||||
|
highlightColor = theme.PresetColors.ScenePreset;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
highlightColor = Color.Transparent;
|
highlightColor = Color.Transparent;
|
||||||
|
|
@ -542,7 +546,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||||
break;
|
break;
|
||||||
case NamedSettingsLayers.Scene:
|
case NamedSettingsLayers.Scene:
|
||||||
highlightColor = theme.PresetColors.ScenePreset;
|
highlightColor = theme.PresetColors.ScenePreset;
|
||||||
showRestoreButton = true;
|
showRestoreButton = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -247,6 +247,9 @@ Translated:Add to Queue
|
||||||
English:Add to Selection
|
English:Add to Selection
|
||||||
Translated:Add to Selection
|
Translated:Add to Selection
|
||||||
|
|
||||||
|
English:Add User Overrides
|
||||||
|
Translated:Add User Overrides
|
||||||
|
|
||||||
English:Additional Printing Errors
|
English:Additional Printing Errors
|
||||||
Translated:Additional Printing Errors
|
Translated:Additional Printing Errors
|
||||||
|
|
||||||
|
|
@ -1042,6 +1045,9 @@ Translated:Copy everything but hardware specific calibration settings
|
||||||
English:Copy extrusions data
|
English:Copy extrusions data
|
||||||
Translated:Copy extrusions data
|
Translated:Copy extrusions data
|
||||||
|
|
||||||
|
English:Copy in all current user overides
|
||||||
|
Translated:Copy in all current user overides
|
||||||
|
|
||||||
English:Copy Mesh
|
English:Copy Mesh
|
||||||
Translated:Copy Mesh
|
Translated:Copy Mesh
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 7ea2bbbf3634ab37698640cc184ac2d2755cffbe
|
Subproject commit 303fb1cf3baada642aaa46eb4d2e9fd546045bf7
|
||||||
Loading…
Add table
Add a link
Reference in a new issue