Working on new slice settings override object
This commit is contained in:
parent
1819b1ce51
commit
7c15e8edea
20 changed files with 388 additions and 193 deletions
|
|
@ -45,40 +45,30 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
public enum BedShape
|
||||
{
|
||||
Rectangular,
|
||||
|
||||
Circular
|
||||
}
|
||||
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum LevelingSystem
|
||||
{
|
||||
Probe3Points,
|
||||
|
||||
Probe7PointRadial,
|
||||
|
||||
Probe13PointRadial,
|
||||
|
||||
Probe100PointRadial,
|
||||
|
||||
Probe3x3Mesh,
|
||||
|
||||
Probe5x5Mesh,
|
||||
|
||||
Probe10x10Mesh,
|
||||
|
||||
ProbeCustom
|
||||
}
|
||||
|
||||
public enum NamedSettingsLayers
|
||||
{
|
||||
MHBaseSettings,
|
||||
|
||||
OEMSettings,
|
||||
|
||||
Quality,
|
||||
|
||||
Material,
|
||||
|
||||
Scene,
|
||||
User,
|
||||
|
||||
All
|
||||
}
|
||||
|
||||
|
|
@ -427,6 +417,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
yield return this.UserLayer;
|
||||
}
|
||||
|
||||
var sceneLayer = this.GetSceneLayer?.Invoke();
|
||||
if (sceneLayer != null)
|
||||
{
|
||||
yield return sceneLayer;
|
||||
}
|
||||
|
||||
if (this.MaterialLayer != null)
|
||||
{
|
||||
yield return this.MaterialLayer;
|
||||
|
|
@ -479,7 +475,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
|
||||
public List<PrinterSettingsLayer> MaterialLayers { get; set; } = new List<PrinterSettingsLayer>();
|
||||
|
||||
public PrinterSettingsLayer OemLayer { get; set; }
|
||||
public PrinterSettingsLayer OemLayer { get; set; } = new PrinterSettingsLayer();
|
||||
|
||||
[JsonIgnore]
|
||||
public bool PrinterSelected => OemLayer?.Keys.Count > 0;
|
||||
|
|
@ -506,6 +502,25 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
}
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public IEnumerable<PrinterSettingsLayer> SceneLayerCascade
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.SceneLayer != null)
|
||||
{
|
||||
yield return this.SceneLayer;
|
||||
}
|
||||
|
||||
if (this.OemLayer != null)
|
||||
{
|
||||
yield return this.OemLayer;
|
||||
}
|
||||
|
||||
yield return this.BaseLayer;
|
||||
}
|
||||
}
|
||||
|
||||
public List<PrinterSettingsLayer> QualityLayers { get; private set; } = new List<PrinterSettingsLayer>();
|
||||
|
||||
[JsonIgnore]
|
||||
|
|
@ -546,6 +561,20 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
/// </summary>
|
||||
public PrinterSettingsLayer UserLayer { get; private set; } = new PrinterSettingsLayer();
|
||||
|
||||
public PrinterSettingsLayer SceneLayer
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetSceneLayer?.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Scene settings override (this comes from a SliceSettingsObject3D being in the scene
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public Func<PrinterSettingsLayer> GetSceneLayer;
|
||||
|
||||
public static PrinterSettings LoadFile(string printerProfilePath, bool performMigrations = false)
|
||||
{
|
||||
if (performMigrations)
|
||||
|
|
@ -891,6 +920,11 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
{
|
||||
return layer[sliceSetting];
|
||||
}
|
||||
else if (layer == this.SceneLayer
|
||||
&& layer.ContainsKey(sliceSetting))
|
||||
{
|
||||
return layer[sliceSetting];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
|
|
@ -1332,7 +1366,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
}
|
||||
else if (typeof(T) == typeof(BedShape))
|
||||
{
|
||||
switch (GetValue(settingsKey))
|
||||
switch (GetValue(settingsKey, layerCascade))
|
||||
{
|
||||
case "rectangular":
|
||||
return (T)(object)BedShape.Rectangular;
|
||||
|
|
@ -1342,7 +1376,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
|
||||
default:
|
||||
#if DEBUG
|
||||
throw new NotImplementedException("{0} is not a known bed_shape.".FormatWith(GetValue(SettingsKey.bed_shape)));
|
||||
throw new NotImplementedException("{0} is not a known bed_shape.".FormatWith(GetValue(SettingsKey.bed_shape, layerCascade)));
|
||||
#else
|
||||
return (T)(object)BedShape.Rectangular;
|
||||
#endif
|
||||
|
|
@ -1378,6 +1412,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
case NamedSettingsLayers.Material:
|
||||
return MaterialLayer?.ContainsKey(sliceSetting) == true;
|
||||
|
||||
case NamedSettingsLayers.Scene:
|
||||
return SceneLayer?.ContainsKey(sliceSetting) == true;
|
||||
|
||||
case NamedSettingsLayers.User:
|
||||
return UserLayer?.ContainsKey(sliceSetting) == true;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue