Cleaned up the settings view options (made switching fast)
This commit is contained in:
parent
51d1e33f9d
commit
544ec762c7
14 changed files with 181 additions and 233 deletions
|
|
@ -29,9 +29,6 @@ either expressed or implied, of the FreeBSD Project.
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using MatterHackers.Agg;
|
||||
using MatterHackers.Agg.Platform;
|
||||
|
||||
namespace MatterHackers.MatterControl.SlicerConfiguration
|
||||
{
|
||||
|
|
@ -39,7 +36,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
{
|
||||
public SettingsSection Simple { get; } = new SettingsSection("Simple");
|
||||
|
||||
public SettingsSection Moderate { get; } = new SettingsSection("Moderate");
|
||||
public SettingsSection Intermediate { get; } = new SettingsSection("Intermediate");
|
||||
|
||||
public SettingsSection Advanced { get; } = new SettingsSection("Advanced");
|
||||
|
||||
|
|
@ -57,8 +54,16 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
|
||||
return false;
|
||||
});
|
||||
CreateLayout(Intermediate, SliceSettingsLayouts.SliceSettings(), (setting) =>
|
||||
{
|
||||
if (PrinterSettings.SettingsData.TryGetValue(setting, out SliceSettingData data))
|
||||
{
|
||||
return data.ReqiredDisplayDetail != SliceSettingData.DisplayDetailRequired.Advanced;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
CreateLayout(Moderate, SliceSettingsLayouts.ModerateSettings());
|
||||
CreateLayout(Printer, SliceSettingsLayouts.PrinterSettings());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -87,8 +87,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
/// <summary>
|
||||
/// The display minimum display detail that must be set for this setting to be visible
|
||||
/// </summary>
|
||||
public enum DisplayDetailRequired { Simple, Moderate, Advance }
|
||||
public enum DisplayDetailRequired { Simple, Intermediate, Advanced }
|
||||
|
||||
public DisplayDetailRequired ReqiredDisplayDetail { get; internal set; } = DisplayDetailRequired.Moderate;
|
||||
public DisplayDetailRequired ReqiredDisplayDetail { get; internal set; } = DisplayDetailRequired.Intermediate;
|
||||
}
|
||||
}
|
||||
|
|
@ -82,6 +82,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The shape of the physical print bed.".Localize(),
|
||||
DataEditType = DataEditTypes.LIST,
|
||||
ListValues = "rectangular,circular",
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Simple,
|
||||
DefaultValue = "rectangular",
|
||||
RebuildGCodeOnChange = false
|
||||
},
|
||||
|
|
@ -91,6 +92,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Bed Size".Localize(),
|
||||
HelpText = "The X and Y values of the size of the print bed, in millimeters. For printers with a circular bed, these values are the diameters on the X and Y axes.".Localize(),
|
||||
DataEditType = DataEditTypes.VECTOR2,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Simple,
|
||||
Units = "mm".Localize(),
|
||||
DefaultValue = "200,200"
|
||||
},
|
||||
|
|
@ -121,6 +123,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Inactive Cool Down".Localize(),
|
||||
HelpText = "The amount to lower the temperature when the hotend is inactive.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "°C".Localize(),
|
||||
ShowIfSet = "!sla_printer&extruder_count>1",
|
||||
DefaultValue = "0"
|
||||
|
|
@ -139,6 +142,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
SlicerConfigName = SettingsKey.seconds_to_reheat,
|
||||
PresentationName = "Warm up Time".Localize(),
|
||||
HelpText = "The time it takes to heat back up from a cool down.".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
Units = "s".Localize(),
|
||||
ShowIfSet = "!sla_printer&extruder_count>1",
|
||||
|
|
@ -267,6 +271,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Air Gapped Layer".Localize(),
|
||||
HelpText = "The speed at which the layer on top of the air gap will print.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "mm/s".Localize(),
|
||||
ShowIfSet = "!sla_printer",
|
||||
DefaultValue = "15",
|
||||
|
|
@ -288,6 +293,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
SlicerConfigName = SettingsKey.build_height,
|
||||
PresentationName = "Build Height".Localize(),
|
||||
HelpText = "The height of the printer's printable volume, in millimeters. Controls the height of the visual print area displayed in 3D View.".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Simple,
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
Units = "mm".Localize(),
|
||||
DefaultValue = "0",
|
||||
|
|
@ -357,6 +363,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The extra distance the raft will extend around the edge of the part.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
Units = "mm".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
EnableIfSet = "create_raft",
|
||||
DefaultValue = "5",
|
||||
|
|
@ -370,6 +377,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
Units = "mm".Localize(),
|
||||
ShowIfSet = "!sla_printer",
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
EnableIfSet = "create_raft",
|
||||
DefaultValue = ".2",
|
||||
Converter = new ValueConverter(),
|
||||
|
|
@ -380,6 +388,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Raft".Localize(),
|
||||
HelpText = "The speed at which the layers of the raft (other than the first layer) will print. This can be set explicitly or as a percentage of the Infill speed.".Localize(),
|
||||
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "mm/s or %".Localize(),
|
||||
ShowIfSet = "!sla_printer",
|
||||
DefaultValue = "100%",
|
||||
|
|
@ -411,6 +420,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "External Perimeters First".Localize(),
|
||||
HelpText = "Forces external perimeters to be printed first. By default, they will print last.".Localize(),
|
||||
DataEditType = DataEditTypes.CHECK_BOX,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
DefaultValue = "0",
|
||||
Converter = new MappedToBoolString(),
|
||||
|
|
@ -473,6 +483,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Merge Overlapping Lines".Localize(),
|
||||
HelpText = "Detect perimeters that cross over themselves and combine them.".Localize(),
|
||||
DataEditType = DataEditTypes.CHECK_BOX,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
DefaultValue = "1",
|
||||
Converter = new MappedToBoolString(),
|
||||
|
|
@ -483,6 +494,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Expand Thin Walls".Localize(),
|
||||
HelpText = "Detects sections of the model that would be too thin to print and expands them to make them printable.".Localize(),
|
||||
DataEditType = DataEditTypes.CHECK_BOX,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
DefaultValue = "1",
|
||||
Converter = new MappedToBoolString(),
|
||||
|
|
@ -506,6 +518,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
|
||||
Units = "Ratio or %".Localize(),
|
||||
ShowIfSet = "!sla_printer",
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
DefaultValue = "3",
|
||||
Converter = new AsPercentOrDirect(),
|
||||
},
|
||||
|
|
@ -515,6 +528,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Cost".Localize(),
|
||||
HelpText = "The price of one kilogram of filament. Used for estimating the cost of a print in the Layer View.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "$/kg".Localize(),
|
||||
DefaultValue = "0",
|
||||
RebuildGCodeOnChange = false
|
||||
|
|
@ -525,6 +539,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Density".Localize(),
|
||||
HelpText = "Material density. Only used for estimating mass in the Layer View.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "g/cm³".Localize(),
|
||||
DefaultValue = "1.24",
|
||||
RebuildGCodeOnChange = false,
|
||||
|
|
@ -537,6 +552,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Diameter".Localize(),
|
||||
HelpText = "The actual diameter of the filament used for printing.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
Units = "mm".Localize(),
|
||||
DefaultValue = "3",
|
||||
|
|
@ -579,6 +595,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "First Layer".Localize(),
|
||||
HelpText = "A modifier of the width of the extrusion for the first layer of the print. A value greater than 100% can help with adhesion to the print bed.".Localize(),
|
||||
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "mm or %".Localize(),
|
||||
ShowIfSet = "!sla_printer",
|
||||
DefaultValue = "100%",
|
||||
|
|
@ -611,6 +628,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Initial Layers".Localize(),
|
||||
HelpText = "The number of layers to consider as the beginning of the print. These will print at initial layer speed.".Localize(),
|
||||
DataEditType = DataEditTypes.INT_OR_MM,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "layers or mm".Localize(),
|
||||
ShowIfSet = "sla_printer",
|
||||
DefaultValue = "1",
|
||||
|
|
@ -847,6 +865,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The amount the infill edge will push into the perimeter. Helps ensure the infill is connected to the edge. This can be expressed as a percentage of the Nozzle Diameter.".Localize(),
|
||||
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
|
||||
Units = "mm or %".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
DefaultValue = "25%",
|
||||
Converter = new AsPercentOfReferenceOrDirect(SettingsKey.nozzle_diameter, change0ToReference: false),
|
||||
QuickMenuSettings = { { "Light", "20%" }, { "Standard", "35%" }, { "Heavy", "75%" } }
|
||||
|
|
@ -1187,6 +1206,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The minimum length of filament that must be extruded before a retraction can occur.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
Units = "mm".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
EnableIfSet = SettingsKey.enable_retractions,
|
||||
ShowIfSet = "!sla_printer",
|
||||
DefaultValue = ".1",
|
||||
|
|
@ -1229,6 +1249,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "If the time to print a layer is less than this, the fan will turn on at its minimum speed. It will then ramp up to its maximum speed as the layer time decreases.".Localize(),
|
||||
DataEditType = DataEditTypes.INT,
|
||||
Units = "seconds".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "has_fan",
|
||||
EnableIfSet = SettingsKey.enable_fan,
|
||||
DefaultValue = "60",
|
||||
|
|
@ -1252,6 +1273,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Run Max if Below".Localize(),
|
||||
HelpText = "As the time to print a layer decreases to this, the fan speed will be increased up to its maximum speed.".Localize(),
|
||||
DataEditType = DataEditTypes.INT,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "seconds".Localize(),
|
||||
ShowIfSet = "has_fan",
|
||||
EnableIfSet = SettingsKey.enable_fan,
|
||||
|
|
@ -1266,6 +1288,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
DataEditType = DataEditTypes.INT,
|
||||
Units = "%".Localize(),
|
||||
ShowIfSet = "has_fan",
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
EnableIfSet = SettingsKey.enable_fan,
|
||||
DefaultValue = "35",
|
||||
Converter = new ConditionalField(SettingsKey.enable_fan, new ValueConverter()),
|
||||
|
|
@ -1276,6 +1299,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Maximum Speed".Localize(),
|
||||
HelpText = "The maximum speed at which the layer cooling fan will run, expressed as a percentage of full power.".Localize(),
|
||||
DataEditType = DataEditTypes.INT,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "%".Localize(),
|
||||
ShowIfSet = "has_fan",
|
||||
EnableIfSet = SettingsKey.enable_fan,
|
||||
|
|
@ -1289,6 +1313,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The speed at which the layer cooling fan will run when bridging, expressed as a percentage of full power.".Localize(),
|
||||
DataEditType = DataEditTypes.INT,
|
||||
Units = "%".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "has_fan",
|
||||
EnableIfSet = SettingsKey.enable_fan,
|
||||
DefaultValue = "100",
|
||||
|
|
@ -1323,6 +1348,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Minimum Extrusion Length".Localize(),
|
||||
HelpText = "The minimum length of filament to use printing the skirt loops. Enough skirt loops will be drawn to use this amount of filament, overriding the value set in Loops if the value in Loops will produce a skirt shorter than this value.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
EnableIfSet = SettingsKey.create_skirt,
|
||||
Units = "mm".Localize(),
|
||||
|
|
@ -1335,6 +1361,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
SlicerConfigName = SettingsKey.nozzle_diameter,
|
||||
PresentationName = "Nozzle Diameter".Localize(),
|
||||
HelpText = "The diameter of the extruder's nozzle.".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Simple,
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
Units = "mm".Localize(),
|
||||
DefaultValue = "0.5",
|
||||
|
|
@ -1354,6 +1381,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Make".Localize(),
|
||||
HelpText = "This is the make (often the manufacturer) of printer this profile is targeting.".Localize(),
|
||||
DataEditType = DataEditTypes.READONLY_STRING,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Simple,
|
||||
DefaultValue = "Undefined"
|
||||
},
|
||||
new SliceSettingData()
|
||||
|
|
@ -1361,6 +1389,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
SlicerConfigName = SettingsKey.model,
|
||||
PresentationName = "Model".Localize(),
|
||||
HelpText = "This is the model of printer this profile is targeting.".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Simple,
|
||||
DataEditType = DataEditTypes.READONLY_STRING,
|
||||
DefaultValue = "Undefined"
|
||||
},
|
||||
|
|
@ -1410,6 +1439,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
|
||||
Units = "mm or %".Localize(),
|
||||
ShowIfSet = "!sla_printer",
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
DefaultValue = "100%",
|
||||
Converter = new AsPercentOfReferenceOrDirect(SettingsKey.nozzle_diameter),
|
||||
},
|
||||
|
|
@ -1430,6 +1460,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Perimeter Acceleration".Localize(),
|
||||
HelpText = "The acceleration that the printer will be set to for perimeters, will not be changed if set to 0. A typical perimeter acceleration is 800.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
Units = "mm/s^2".Localize(),
|
||||
DefaultValue = "0",
|
||||
|
|
@ -1440,6 +1471,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Default Acceleration".Localize(),
|
||||
HelpText = "The acceleration that the printer will be set to by default, will not be changed if set to 0. A typical default acceleration is 1500.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
Units = "mm/s^2".Localize(),
|
||||
DefaultValue = "0",
|
||||
|
|
@ -1450,6 +1482,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Start End Overlap".Localize(),
|
||||
HelpText = "The distance that a perimeter will overlap itself when it completes its loop, expressed as a percentage of the Nozzle Diameter.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "%".Localize(),
|
||||
DefaultValue = "90",
|
||||
Converter = new AsPercentOrDirect(),
|
||||
|
|
@ -1471,6 +1504,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Print Center".Localize(),
|
||||
HelpText = "The position (X and Y coordinates) of the center of the print bed, in millimeters. Normally this is 1/2 the bed size for Cartesian printers and 0, 0 for Delta printers.".Localize(),
|
||||
DataEditType = DataEditTypes.VECTOR2,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Simple,
|
||||
Units = "mm".Localize(),
|
||||
DefaultValue = "100,100"
|
||||
},
|
||||
|
|
@ -1507,6 +1541,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Minimum Travel Requiring Retraction".Localize(),
|
||||
HelpText = "The minimum distance of a non-print move which will trigger a retraction.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "mm".Localize(),
|
||||
ShowIfSet = "!sla_printer",
|
||||
EnableIfSet = SettingsKey.enable_retractions,
|
||||
|
|
@ -1520,6 +1555,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The minimum distance with, avoid crossing perimeters turned on, of a non-print move which will trigger a retraction.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
Units = "mm".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
EnableIfSet = SettingsKey.enable_retractions,
|
||||
DefaultValue = "20",
|
||||
|
|
@ -1532,6 +1568,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The distance to travel after completing a perimeter to improve seams.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
Units = "mm".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
DefaultValue = "3",
|
||||
Converter = new ValueConverter(),
|
||||
|
|
@ -1564,6 +1601,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Length on Tool Change".Localize(),
|
||||
HelpText = "When using multiple extruders, the distance filament will reverse before changing to a different extruder.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer&extruder_count>1",
|
||||
Units = "mm".Localize(),
|
||||
EnableIfSet = SettingsKey.enable_retractions,
|
||||
|
|
@ -1575,6 +1613,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
SlicerConfigName = SettingsKey.retract_when_changing_islands,
|
||||
PresentationName = "Retract When Changing Islands".Localize(),
|
||||
HelpText = "Force a retraction when moving between islands (distinct parts on the layer).".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
DataEditType = DataEditTypes.CHECK_BOX,
|
||||
ShowIfSet = "!sla_printer",
|
||||
EnableIfSet = SettingsKey.enable_retractions,
|
||||
|
|
@ -1599,6 +1638,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Extra Length After Tool Change".Localize(),
|
||||
HelpText = "Length of extra filament to extrude after a complete tool change (in addition to the re-extrusion of the tool change retraction distance).".Localize(),
|
||||
DataEditType = DataEditTypes.DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer&extruder_count>1",
|
||||
EnableIfSet = SettingsKey.enable_retractions,
|
||||
Units = "mm zero to disable".Localize(),
|
||||
|
|
@ -1630,6 +1670,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Extra Length On Restart".Localize(),
|
||||
HelpText = "Length of filament to extrude after a complete retraction (in addition to the re-extrusion of the Length on Move distance).".Localize(),
|
||||
DataEditType = DataEditTypes.DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "mm".Localize(),
|
||||
ShowIfSet = "!sla_printer",
|
||||
EnableIfSet = SettingsKey.enable_retractions,
|
||||
|
|
@ -1643,6 +1684,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The time over which to increase the Extra Length On Restart to its maximum value. Below this time only a portion of the extra length will be applied. Leave 0 to apply the entire amount all the time.".Localize(),
|
||||
DataEditType = DataEditTypes.DOUBLE,
|
||||
Units = "s".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
EnableIfSet = SettingsKey.enable_retractions,
|
||||
DefaultValue = "0",
|
||||
|
|
@ -1655,6 +1697,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The speed at which filament will retract and re-extrude.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
Units = "mm/s".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
EnableIfSet = SettingsKey.enable_retractions,
|
||||
DefaultValue = "30",
|
||||
|
|
@ -1693,6 +1736,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The distance from the model at which the first skirt loop is drawn.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ShowIfSet = "!sla_printer",
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
EnableIfSet = SettingsKey.create_skirt,
|
||||
Units = "mm".Localize(),
|
||||
DefaultValue = "6",
|
||||
|
|
@ -1846,6 +1890,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The distance between the top of the support and the bottom of the model. A good value depends on the type of material. For ABS and PLA a value between 0.4 and 0.6 works well, respectively.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ShowIfSet = "!sla_printer",
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "mm".Localize(),
|
||||
DefaultValue = ".3",
|
||||
Converter = new ValueConverter(),
|
||||
|
|
@ -1899,6 +1944,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Line Support Overlap".Localize(),
|
||||
HelpText = "The percentage overlap a given printed line must have over the layer below to be supported.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "%".Localize(),
|
||||
ShowIfSet = "!sla_printer&create_per_layer_support",
|
||||
DefaultValue = "50",
|
||||
|
|
@ -1910,6 +1956,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Support Expand Distance".Localize(),
|
||||
HelpText = "The amount to expand the support so it is easy to grab.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "mm".Localize(),
|
||||
ShowIfSet = "!sla_printer&create_per_layer_support",
|
||||
DefaultValue = "1",
|
||||
|
|
@ -1932,6 +1979,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The index of the extruder to use to print the raft. Set to 0 to use the support extruder index.".Localize(),
|
||||
ShowIfSet = "!sla_printer&extruder_count>1",
|
||||
EnableIfSet = "create_raft",
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
DataEditType = DataEditTypes.INT,
|
||||
DefaultValue = "0",
|
||||
Converter = new ValuePlusConstant(-1),
|
||||
|
|
@ -1963,6 +2011,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Pattern Spacing".Localize(),
|
||||
HelpText = "The distance between support material lines.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "mm".Localize(),
|
||||
ShowIfSet = "!sla_printer",
|
||||
DefaultValue = "2.5",
|
||||
|
|
@ -1996,6 +2045,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "X and Y Distance".Localize(),
|
||||
HelpText = "The distance the support material will be from the object in the X and Y directions.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
Units = "mm".Localize(),
|
||||
DefaultValue = "0.7",
|
||||
|
|
@ -2007,6 +2057,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Support Type".Localize(),
|
||||
HelpText = "The pattern to draw for the generation of support material.".Localize(),
|
||||
DataEditType = DataEditTypes.LIST,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
ListValues = "GRID,LINES",
|
||||
DefaultValue = "LINES",
|
||||
|
|
@ -2040,6 +2091,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "Modify T1 speeds during extrusion moves by the ratio or percent.".Localize(),
|
||||
DataEditType = DataEditTypes.DOUBLE_OR_PERCENT,
|
||||
Units = "Ratio or %".Localize(),
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer&extruder_count>1",
|
||||
DefaultValue = "100%",
|
||||
Converter = new AsPercentOrDirect()
|
||||
|
|
@ -2088,6 +2140,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Extruder Wipe Temperature".Localize(),
|
||||
HelpText = "The temperature at which the extruder will wipe the nozzle, as specified by Custom G-Code.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
ShowIfSet = "!sla_printer",
|
||||
Units = "°C".Localize(),
|
||||
DefaultValue = "0"
|
||||
|
|
@ -2098,6 +2151,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Bed Remove Part Temperature".Localize(),
|
||||
HelpText = "The temperature to which the bed will heat (or cool) in order to remove the part, as specified in Custom G-Code.".Localize(),
|
||||
DataEditType = DataEditTypes.POSITIVE_DOUBLE,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
Units = "°C".Localize(),
|
||||
ShowIfSet = "has_heated_bed",
|
||||
DefaultValue = "0"
|
||||
|
|
@ -2246,6 +2300,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
PresentationName = "Bridge Over Infill".Localize(),
|
||||
HelpText = "Make the first layer on top of partial infill use the speed and fan for bridging.".Localize(),
|
||||
DataEditType = DataEditTypes.CHECK_BOX,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Advanced,
|
||||
DefaultValue = "0",
|
||||
Converter = new MappedToBoolString(),
|
||||
},
|
||||
|
|
@ -2265,6 +2320,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
HelpText = "The serial port communication speed of the printers firmware.".Localize(),
|
||||
DataEditType = DataEditTypes.INT,
|
||||
ShowAsOverride = false,
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Simple,
|
||||
ShowIfSet = null,
|
||||
DefaultValue = "250000",
|
||||
RebuildGCodeOnChange = false
|
||||
|
|
@ -2297,6 +2353,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
DataEditType = DataEditTypes.COM_PORT,
|
||||
ShowAsOverride = false,
|
||||
ShowIfSet = "!enable_network_printing",
|
||||
ReqiredDisplayDetail = DisplayDetailRequired.Simple,
|
||||
DefaultValue = "",
|
||||
RebuildGCodeOnChange = false
|
||||
},
|
||||
|
|
|
|||
|
|
@ -33,116 +33,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
{
|
||||
public static class SliceSettingsLayouts
|
||||
{
|
||||
public static (string categoryName, (string groupName, string[] settings)[] groups)[] ModerateSettings()
|
||||
{
|
||||
var settings = new[]
|
||||
{
|
||||
("General", new[]
|
||||
{
|
||||
("General", new[]
|
||||
{
|
||||
SettingsKey.layer_height,
|
||||
SettingsKey.first_layer_height,
|
||||
SettingsKey.perimeters,
|
||||
SettingsKey.top_solid_layers,
|
||||
SettingsKey.bottom_solid_layers,
|
||||
SettingsKey.fill_density,
|
||||
SettingsKey.infill_type
|
||||
}),
|
||||
("Layers / Surface", new[]
|
||||
{
|
||||
SettingsKey.avoid_crossing_perimeters,
|
||||
SettingsKey.merge_overlapping_lines,
|
||||
SettingsKey.expand_thin_walls,
|
||||
}),
|
||||
("Infill", new[]
|
||||
{
|
||||
SettingsKey.fill_angle,
|
||||
SettingsKey.fill_thin_gaps,
|
||||
}),
|
||||
}),
|
||||
("Speed", new[]
|
||||
{
|
||||
("Laser Speed", new[]
|
||||
{
|
||||
SettingsKey.laser_speed_025,
|
||||
SettingsKey.laser_speed_100,
|
||||
}),
|
||||
("Infill Speeds", new[]
|
||||
{
|
||||
SettingsKey.first_layer_speed,
|
||||
SettingsKey.infill_speed,
|
||||
SettingsKey.top_solid_infill_speed,
|
||||
}),
|
||||
("Perimeter Speeds", new[]
|
||||
{
|
||||
SettingsKey.perimeter_speed,
|
||||
SettingsKey.external_perimeter_speed,
|
||||
}),
|
||||
("Other Speeds", new[]
|
||||
{
|
||||
SettingsKey.support_material_speed,
|
||||
SettingsKey.interface_layer_speed,
|
||||
SettingsKey.bridge_speed,
|
||||
SettingsKey.travel_speed,
|
||||
}),
|
||||
}),
|
||||
("Adhesion", new[]
|
||||
{
|
||||
("Adhesion", new[]
|
||||
{
|
||||
SettingsKey.create_skirt,
|
||||
SettingsKey.skirts,
|
||||
SettingsKey.create_raft,
|
||||
SettingsKey.create_brim,
|
||||
SettingsKey.brims,
|
||||
}),
|
||||
}),
|
||||
("Support", new[]
|
||||
{
|
||||
("Support", new[]
|
||||
{
|
||||
SettingsKey.create_per_layer_support,
|
||||
SettingsKey.create_per_layer_internal_support,
|
||||
SettingsKey.support_percent,
|
||||
SettingsKey.support_material_create_perimeter,
|
||||
SettingsKey.support_material_interface_layers,
|
||||
SettingsKey.support_material_spacing,
|
||||
SettingsKey.support_material_infill_angle,
|
||||
SettingsKey.support_material_extruder,
|
||||
SettingsKey.support_material_interface_extruder,
|
||||
}),
|
||||
}),
|
||||
("Filament", new[]
|
||||
{
|
||||
("Filament", new[]
|
||||
{
|
||||
SettingsKey.temperature,
|
||||
SettingsKey.temperature1,
|
||||
SettingsKey.temperature2,
|
||||
SettingsKey.temperature3,
|
||||
SettingsKey.bed_temperature,
|
||||
}),
|
||||
("Fan", new[]
|
||||
{
|
||||
SettingsKey.disable_fan_first_layers,
|
||||
SettingsKey.min_fan_speed_absolute,
|
||||
}),
|
||||
("Retraction", new[]
|
||||
{
|
||||
SettingsKey.retract_length,
|
||||
SettingsKey.retract_lift,
|
||||
}),
|
||||
("Advanced", new[]
|
||||
{
|
||||
SettingsKey.extrusion_multiplier,
|
||||
}),
|
||||
}),
|
||||
};
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
||||
public static (string categoryName, (string groupName, string[] settings)[] groups)[] SliceSettings()
|
||||
{
|
||||
var settings = new[]
|
||||
|
|
@ -248,12 +138,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
}),
|
||||
("Support", new[]
|
||||
{
|
||||
("Support", new[]
|
||||
("General", new[]
|
||||
{
|
||||
SettingsKey.create_per_layer_support,
|
||||
SettingsKey.create_per_layer_internal_support,
|
||||
SettingsKey.support_percent,
|
||||
SettingsKey.support_grab_distance,
|
||||
SettingsKey.support_material_create_perimeter,
|
||||
SettingsKey.support_material_interface_layers,
|
||||
SettingsKey.support_material_xy_distance,
|
||||
|
|
@ -264,6 +150,13 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
SettingsKey.support_material_extruder,
|
||||
SettingsKey.support_material_interface_extruder,
|
||||
}),
|
||||
("Automatic", new[]
|
||||
{
|
||||
SettingsKey.create_per_layer_support,
|
||||
SettingsKey.create_per_layer_internal_support,
|
||||
SettingsKey.support_percent,
|
||||
SettingsKey.support_grab_distance,
|
||||
}),
|
||||
}),
|
||||
("Filament", new[]
|
||||
{
|
||||
|
|
|
|||
|
|
@ -383,24 +383,19 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
public event EventHandler<WorkspacesChangedEventArgs> WorkspacesChanged;
|
||||
|
||||
public void ReloadSliceSettings(PrinterConfig printerConfig)
|
||||
public void ReloadSliceSettings(PrinterConfig printer)
|
||||
{
|
||||
if (this.Workspaces.FirstOrDefault(w => w.Printer?.Settings.ID == printer.Settings.ID) is PartWorkspace workspace)
|
||||
var printerTabPage = this.MainView.Descendants<PrinterTabPage>().Where(page => page.Printer == printer).FirstOrDefault();
|
||||
if (printerTabPage != null)
|
||||
{
|
||||
var xxx = workspace.SceneContext.EditContext.
|
||||
UserSettings.Instance.set(UserSettingsKey.SliceSettingsViewDetail, level);
|
||||
var printerTabPage = this.Parents<PrinterTabPage>().FirstOrDefault();
|
||||
if (printerTabPage != null)
|
||||
{
|
||||
var sideBar = printerTabPage.Descendants<DockingTabControl>().FirstOrDefault();
|
||||
sideBar.ReplacePage("Slice Settings",
|
||||
new SliceSettingsWidget(printer,
|
||||
new SettingsContext(
|
||||
printer,
|
||||
null,
|
||||
NamedSettingsLayers.All),
|
||||
theme));
|
||||
}
|
||||
var sideBar = printerTabPage.Descendants<DockingTabControl>().FirstOrDefault();
|
||||
sideBar.ReplacePage("Slice Settings",
|
||||
new SliceSettingsWidget(printer,
|
||||
new SettingsContext(
|
||||
printer,
|
||||
null,
|
||||
NamedSettingsLayers.All),
|
||||
Theme));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1479,7 +1474,7 @@ namespace MatterHackers.MatterControl
|
|||
public void OpenPrinter(PrinterInfo printerInfo)
|
||||
{
|
||||
if (this.ActivePrinters.FirstOrDefault(p => p.Settings.ID == printerInfo.ID) is PrinterConfig printer
|
||||
&& this.MainView.TabControl.AllTabs.FirstOrDefault(t => t.TabContent is PrinterTabPage printerTabPage && printerTabPage.printer == printer) is ITab tab)
|
||||
&& this.MainView.TabControl.AllTabs.FirstOrDefault(t => t.TabContent is PrinterTabPage printerTabPage && printerTabPage.Printer == printer) is ITab tab)
|
||||
{
|
||||
// Switch to existing printer tab
|
||||
this.MainView.TabControl.ActiveTab = tab;
|
||||
|
|
|
|||
|
|
@ -574,7 +574,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
// Close existing printer tabs
|
||||
if (tabControl.AllTabs.FirstOrDefault(t => t.TabContent is PrinterTabPage printerTab
|
||||
&& printerTab.printer.Settings.ID == activePrinter.Settings.ID) is ITab tab
|
||||
&& printerTab.Printer.Settings.ID == activePrinter.Settings.ID) is ITab tab
|
||||
&& tab.TabContent is PrinterTabPage printerPage)
|
||||
{
|
||||
tabControl.RemoveTab(tab);
|
||||
|
|
@ -682,7 +682,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
var printerTabPage = tab1?.TabContent as PrinterTabPage;
|
||||
if (printerTabPage == null
|
||||
|| printerTabPage.printer != printer)
|
||||
|| printerTabPage.Printer != printer)
|
||||
{
|
||||
// TODO - call save before remove
|
||||
// printerTabPage.sceneContext.SaveChanges();
|
||||
|
|
@ -914,7 +914,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
&& stringEvent?.Data == SettingsKey.printer_name)
|
||||
{
|
||||
// Try to find a printer tab for the given printer
|
||||
var printerTab = tabControl.AllTabs.FirstOrDefault(t => t.TabContent is PrinterTabPage printerPage && printerPage.printer.Settings.ID == printerSettings.ID) as ChromeTab;
|
||||
var printerTab = tabControl.AllTabs.FirstOrDefault(t => t.TabContent is PrinterTabPage printerPage && printerPage.Printer.Settings.ID == printerSettings.ID) as ChromeTab;
|
||||
if (printerTab != null)
|
||||
{
|
||||
printerTab.Title = printerSettings.GetValue(SettingsKey.printer_name);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
// TODO: Don't change casing... almost certainly none of these should be exposed
|
||||
internal View3DWidget view3DWidget;
|
||||
internal ISceneContext sceneContext;
|
||||
internal PrinterConfig printer;
|
||||
protected ViewControls3D viewControls3D;
|
||||
protected ThemeConfig theme;
|
||||
protected GuiWidget view3DContainer;
|
||||
|
|
@ -50,6 +49,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
protected FlowLayoutWidget leftToRight;
|
||||
protected LibraryListView favoritesBar;
|
||||
|
||||
public PrinterConfig Printer => Workspace.Printer;
|
||||
|
||||
public PartTabPage(PartWorkspace workspace, ThemeConfig theme, string tabTitle)
|
||||
: base(tabTitle)
|
||||
{
|
||||
|
|
@ -57,7 +58,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
this.theme = theme;
|
||||
this.BackgroundColor = theme.BackgroundColor;
|
||||
this.Padding = 0;
|
||||
this.printer = workspace.Printer;
|
||||
this.Workspace = workspace;
|
||||
|
||||
bool isPrinterType = this is PrinterTabPage;
|
||||
|
|
@ -90,7 +90,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
// The 3D model view
|
||||
view3DWidget = new View3DWidget(
|
||||
printer,
|
||||
Printer,
|
||||
sceneContext,
|
||||
viewControls3D,
|
||||
theme,
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
var opaqueTrackColor = theme.ResolveColor(theme.BedBackgroundColor, theme.SlightShade);
|
||||
|
||||
LayerScrollbar = new SliceLayerSelector(printer, theme)
|
||||
LayerScrollbar = new SliceLayerSelector(Printer, theme)
|
||||
{
|
||||
VAnchor = VAnchor.Stretch,
|
||||
HAnchor = HAnchor.Right | HAnchor.Fit,
|
||||
|
|
@ -120,7 +120,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
layerRenderRatioSlider.SecondValue = 1;
|
||||
layerRenderRatioSlider.SecondValueChanged += (s, e) =>
|
||||
{
|
||||
if (printer?.Bed?.RenderInfo != null)
|
||||
if (Printer?.Bed?.RenderInfo != null)
|
||||
{
|
||||
sceneContext.RenderInfo.FeatureToStartOnRatio0To1 = layerRenderRatioSlider.FirstValue;
|
||||
sceneContext.RenderInfo.FeatureToEndOnRatio0To1 = layerRenderRatioSlider.SecondValue;
|
||||
|
|
@ -140,7 +140,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
SetSliderSizes();
|
||||
};
|
||||
|
||||
PrinterActionsBar = new PrinterActionsBar(printer, this, theme);
|
||||
PrinterActionsBar = new PrinterActionsBar(Printer, this, theme);
|
||||
theme.ApplyBottomBorder(PrinterActionsBar);
|
||||
PrinterActionsBar.modelViewButton.Enabled = sceneContext.EditableScene;
|
||||
|
||||
|
|
@ -153,7 +153,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
var position = view3DWidget.Object3DControlLayer.Children.IndexOf(trackball);
|
||||
|
||||
gcodePanel = new GCodePanel(this, printer, sceneContext, theme)
|
||||
gcodePanel = new GCodePanel(this, Printer, sceneContext, theme)
|
||||
{
|
||||
Name = "GCode3DWidget",
|
||||
HAnchor = HAnchor.Stretch,
|
||||
|
|
@ -176,7 +176,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
gcodeContainer.AddChild(gcodePanel);
|
||||
gcodeContainer.Resized += (s, e) =>
|
||||
{
|
||||
if (printer != null)
|
||||
if (Printer != null)
|
||||
{
|
||||
UserSettings.Instance.SelectedObjectPanelWidth = gcodeContainer.Width;
|
||||
}
|
||||
|
|
@ -196,7 +196,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
splitContainer.AddChild(gcodeContainer);
|
||||
|
||||
view3DContainer.AddChild(new RunningTasksWidget(theme, printer)
|
||||
view3DContainer.AddChild(new RunningTasksWidget(theme, Printer)
|
||||
{
|
||||
MinimumSize = new Vector2(100, 0),
|
||||
Margin = new BorderDouble(top: PrinterActionsBar.Height + 1, left: favoritesBar.LocalBounds.Width + favoritesBar.DeviceMarginAndBorder.Width + 1),
|
||||
|
|
@ -205,15 +205,15 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
});
|
||||
|
||||
// Create and append new widget
|
||||
gcode2DWidget = new GCode2DWidget(printer, theme)
|
||||
gcode2DWidget = new GCode2DWidget(Printer, theme)
|
||||
{
|
||||
Visible = printer.ViewState.ViewMode == PartViewMode.Layers2D
|
||||
Visible = Printer.ViewState.ViewMode == PartViewMode.Layers2D
|
||||
};
|
||||
view3DWidget.Object3DControlLayer.AddChild(gcode2DWidget, position + 1);
|
||||
|
||||
SetSliderSizes();
|
||||
|
||||
this.SetViewMode(printer.ViewState.ViewMode);
|
||||
this.SetViewMode(Printer.ViewState.ViewMode);
|
||||
|
||||
this.LayerScrollbar.Margin = LayerScrollbar.Margin.Clone(top: tumbleCubeControl.Height + tumbleCubeControl.Margin.Height + 4);
|
||||
|
||||
|
|
@ -230,15 +230,15 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
}
|
||||
|
||||
// Register listeners
|
||||
printer.ViewState.VisibilityChanged += ProcessOptionalTabs;
|
||||
printer.ViewState.ViewModeChanged += ViewState_ViewModeChanged;
|
||||
Printer.ViewState.VisibilityChanged += ProcessOptionalTabs;
|
||||
Printer.ViewState.ViewModeChanged += ViewState_ViewModeChanged;
|
||||
|
||||
printer.Bed.RendererOptions.PropertyChanged += RendererOptions_PropertyChanged;
|
||||
Printer.Bed.RendererOptions.PropertyChanged += RendererOptions_PropertyChanged;
|
||||
|
||||
// register for communication messages
|
||||
printer.Connection.CommunicationStateChanged += Connection_CommunicationStateChanged;
|
||||
printer.Connection.PauseOnLayer += Connection_PauseOnLayer;
|
||||
printer.Connection.FilamentRunout += Connection_FilamentRunout;
|
||||
Printer.Connection.CommunicationStateChanged += Connection_CommunicationStateChanged;
|
||||
Printer.Connection.PauseOnLayer += Connection_PauseOnLayer;
|
||||
Printer.Connection.FilamentRunout += Connection_FilamentRunout;
|
||||
|
||||
ApplicationController.Instance.ApplicationError += ApplicationController_ApplicationError;
|
||||
ApplicationController.Instance.ApplicationEvent += ApplicationController_ApplicationEvent;
|
||||
|
|
@ -279,9 +279,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
private void ResumePrint(bool clickedOk)
|
||||
{
|
||||
// They clicked either Resume or Ok
|
||||
if (clickedOk && printer.Connection.Paused)
|
||||
if (clickedOk && Printer.Connection.Paused)
|
||||
{
|
||||
printer.Connection.Resume();
|
||||
Printer.Connection.Resume();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -314,7 +314,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
unloadFilamentButton.Click += (s, e2) =>
|
||||
{
|
||||
unloadFilamentButton.Parents<SystemWindow>().First().Close();
|
||||
DialogWindow.Show(new UnloadFilamentWizard(printer, extruderIndex: 0));
|
||||
DialogWindow.Show(new UnloadFilamentWizard(Printer, extruderIndex: 0));
|
||||
};
|
||||
|
||||
theme.ApplyPrimaryActionStyle(unloadFilamentButton);
|
||||
|
|
@ -358,17 +358,17 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
private void ApplicationController_ApplicationEvent(object sender, string e)
|
||||
{
|
||||
printer.Connection.TerminalLog.WriteLine(e);
|
||||
Printer.Connection.TerminalLog.WriteLine(e);
|
||||
}
|
||||
|
||||
private void ApplicationController_ApplicationError(object sender, string e)
|
||||
{
|
||||
printer.Connection.TerminalLog.WriteLine(e);
|
||||
Printer.Connection.TerminalLog.WriteLine(e);
|
||||
}
|
||||
|
||||
private void RendererOptions_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == nameof(printer.Bed.RendererOptions.SyncToPrint))
|
||||
if (e.PropertyName == nameof(Printer.Bed.RendererOptions.SyncToPrint))
|
||||
{
|
||||
this.SetSliderVisibility();
|
||||
}
|
||||
|
|
@ -409,7 +409,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
gcode2DWidget.Visible = viewMode == PartViewMode.Layers2D;
|
||||
|
||||
view3DWidget.Object3DControlLayer.DrawOpenGLContent = printer?.ViewState.ViewMode != PartViewMode.Layers2D;
|
||||
view3DWidget.Object3DControlLayer.DrawOpenGLContent = Printer?.ViewState.ViewMode != PartViewMode.Layers2D;
|
||||
|
||||
sceneContext.ViewState.ModelView = viewMode == PartViewMode.Model;
|
||||
|
||||
|
|
@ -419,12 +419,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
if (viewMode == PartViewMode.Layers3D)
|
||||
{
|
||||
printer.Bed.Scene.ClearSelection();
|
||||
Printer.Bed.Scene.ClearSelection();
|
||||
}
|
||||
|
||||
this.SetSliderVisibility();
|
||||
|
||||
view3DWidget.modelViewSidePanel.Visible = printer?.ViewState.ViewMode == PartViewMode.Model;
|
||||
view3DWidget.modelViewSidePanel.Visible = Printer?.ViewState.ViewMode == PartViewMode.Model;
|
||||
}
|
||||
|
||||
private void BedPlate_LoadedGCodeChanged(object sender, EventArgs e)
|
||||
|
|
@ -441,7 +441,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
private void SetSliderVisibility()
|
||||
{
|
||||
bool printerIsRunningPrint = printer.Connection.Paused || printer.Connection.Printing;
|
||||
bool printerIsRunningPrint = Printer.Connection.Paused || Printer.Connection.Printing;
|
||||
|
||||
if (gcodeOptions.SyncToPrint && printerIsRunningPrint)
|
||||
{
|
||||
|
|
@ -457,7 +457,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
layerRenderRatioSlider.SecondValue = 1;
|
||||
}
|
||||
|
||||
bool hasLayers = printer.Bed.LoadedGCode?.LayerCount > 0;
|
||||
bool hasLayers = Printer.Bed.LoadedGCode?.LayerCount > 0;
|
||||
|
||||
layerRenderRatioSlider.Visible = hasLayers && !sceneContext.ViewState.ModelView;
|
||||
LayerScrollbar.Visible = hasLayers && !sceneContext.ViewState.ModelView;
|
||||
|
|
@ -480,9 +480,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
private bool SetAnimationPosition()
|
||||
{
|
||||
LayerScrollbar.Value = printer.Connection.CurrentlyPrintingLayer;
|
||||
LayerScrollbar.Value = Printer.Connection.CurrentlyPrintingLayer;
|
||||
|
||||
double currentPosition = printer.Connection.RatioIntoCurrentLayerInstructions;
|
||||
double currentPosition = Printer.Connection.RatioIntoCurrentLayerInstructions;
|
||||
layerRenderRatioSlider.FirstValue = 0;
|
||||
|
||||
if (lastPosition != currentPosition)
|
||||
|
|
@ -501,10 +501,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
public override void OnDraw(Graphics2D graphics2D)
|
||||
{
|
||||
bool printerIsRunningPrint = printer.Connection.Paused || printer.Connection.Printing;
|
||||
bool printerIsRunningPrint = Printer.Connection.Paused || Printer.Connection.Printing;
|
||||
if (gcodeOptions.SyncToPrint
|
||||
&& printerIsRunningPrint
|
||||
&& printer.ViewState.ViewMode != PartViewMode.Model)
|
||||
&& Printer.ViewState.ViewMode != PartViewMode.Model)
|
||||
{
|
||||
if (this.SetAnimationPosition())
|
||||
{
|
||||
|
|
@ -517,7 +517,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
protected override void GetViewControls3DOverflowMenu(PopupMenu popupMenu)
|
||||
{
|
||||
if (printer?.ViewState.ViewMode != PartViewMode.Model)
|
||||
if (Printer?.ViewState.ViewMode != PartViewMode.Model)
|
||||
{
|
||||
view3DWidget.ShowBedViewOptions(popupMenu);
|
||||
this.ShowGCodeOverflowMenu(popupMenu);
|
||||
|
|
@ -532,14 +532,14 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
// Unregister listeners
|
||||
sceneContext.LoadedGCodeChanged -= BedPlate_LoadedGCodeChanged;
|
||||
printer.Connection.CommunicationStateChanged -= Connection_CommunicationStateChanged;
|
||||
Printer.Connection.CommunicationStateChanged -= Connection_CommunicationStateChanged;
|
||||
|
||||
printer.Connection.PauseOnLayer -= Connection_PauseOnLayer;
|
||||
printer.Connection.FilamentRunout -= Connection_FilamentRunout;
|
||||
Printer.Connection.PauseOnLayer -= Connection_PauseOnLayer;
|
||||
Printer.Connection.FilamentRunout -= Connection_FilamentRunout;
|
||||
|
||||
printer.ViewState.VisibilityChanged -= ProcessOptionalTabs;
|
||||
printer.ViewState.ViewModeChanged -= ViewState_ViewModeChanged;
|
||||
printer.Bed.RendererOptions.PropertyChanged -= RendererOptions_PropertyChanged;
|
||||
Printer.ViewState.VisibilityChanged -= ProcessOptionalTabs;
|
||||
Printer.ViewState.ViewModeChanged -= ViewState_ViewModeChanged;
|
||||
Printer.Bed.RendererOptions.PropertyChanged -= RendererOptions_PropertyChanged;
|
||||
ApplicationController.Instance.ApplicationError -= ApplicationController_ApplicationError;
|
||||
ApplicationController.Instance.ApplicationEvent -= ApplicationController_ApplicationEvent;
|
||||
|
||||
|
|
@ -548,15 +548,15 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
private void AddSettingsTabBar(GuiWidget parent, GuiWidget widgetTodockTo)
|
||||
{
|
||||
sideBar = new DockingTabControl(widgetTodockTo, DockSide.Right, printer, theme)
|
||||
sideBar = new DockingTabControl(widgetTodockTo, DockSide.Right, Printer, theme)
|
||||
{
|
||||
Name = "DockingTabControl",
|
||||
ControlIsPinned = printer.ViewState.SliceSettingsTabPinned,
|
||||
ControlIsPinned = Printer.ViewState.SliceSettingsTabPinned,
|
||||
MinDockingWidth = 400 * (int)GuiWidget.DeviceScale
|
||||
};
|
||||
sideBar.PinStatusChanged += (s, e) =>
|
||||
{
|
||||
printer.ViewState.SliceSettingsTabPinned = sideBar.ControlIsPinned;
|
||||
Printer.ViewState.SliceSettingsTabPinned = sideBar.ControlIsPinned;
|
||||
};
|
||||
parent.AddChild(sideBar);
|
||||
|
||||
|
|
@ -564,9 +564,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
"Slice Settings",
|
||||
"Slice Settings".Localize(),
|
||||
sliceSettingsWidget = new SliceSettingsWidget(
|
||||
printer,
|
||||
Printer,
|
||||
new SettingsContext(
|
||||
printer,
|
||||
Printer,
|
||||
null,
|
||||
NamedSettingsLayers.All),
|
||||
theme));
|
||||
|
|
@ -580,16 +580,16 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
sideBar.RemovePage("Terminal", false);
|
||||
sideBar.RemovePage("Printer", false);
|
||||
|
||||
if (printer.ViewState.ControlsVisible)
|
||||
if (Printer.ViewState.ControlsVisible)
|
||||
{
|
||||
sideBar.AddPage("Controls", "Controls".Localize(), new ManualPrinterControls(printer, theme), false);
|
||||
sideBar.AddPage("Controls", "Controls".Localize(), new ManualPrinterControls(Printer, theme), false);
|
||||
}
|
||||
|
||||
if (printer.ViewState.TerminalVisible)
|
||||
if (Printer.ViewState.TerminalVisible)
|
||||
{
|
||||
sideBar.AddPage("Terminal",
|
||||
"Terminal".Localize(),
|
||||
new TerminalWidget(printer, theme)
|
||||
new TerminalWidget(Printer, theme)
|
||||
{
|
||||
VAnchor = VAnchor.Stretch,
|
||||
HAnchor = HAnchor.Stretch
|
||||
|
|
@ -597,12 +597,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
false);
|
||||
}
|
||||
|
||||
if (printer.ViewState.ConfigurePrinterVisible)
|
||||
if (Printer.ViewState.ConfigurePrinterVisible)
|
||||
{
|
||||
sideBar.AddPage(
|
||||
"Printer",
|
||||
"Printer".Localize(),
|
||||
new ConfigurePrinterWidget(sliceSettingsWidget.SettingsContext, printer, theme)
|
||||
new ConfigurePrinterWidget(sliceSettingsWidget.SettingsContext, Printer, theme)
|
||||
{
|
||||
HAnchor = HAnchor.Stretch,
|
||||
VAnchor = VAnchor.Stretch,
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
Enabled = scene.SelectedItem != null,
|
||||
};
|
||||
overflowButton.ToolTipText = "Selected Object Options".Localize();
|
||||
overflowButton.DynamicPopupContent = () =>
|
||||
{
|
||||
return ApplicationController.Instance.GetModifyMenu(view3DWidget.sceneContext);
|
||||
|
|
|
|||
|
|
@ -438,7 +438,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
UiThread.RunOnIdle(() =>
|
||||
{
|
||||
if (this.TabContent is PrinterTabPage printerTab
|
||||
&& printerTab.printer.Connection.Printing)
|
||||
&& printerTab.Printer.Connection.Printing)
|
||||
{
|
||||
StyledMessageBox.ShowMessageBox(
|
||||
(bool response) =>
|
||||
|
|
|
|||
|
|
@ -206,6 +206,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
}
|
||||
|
||||
this.OverflowButton.Name = "Printer Overflow Menu";
|
||||
this.OverflowButton.ToolTipText = "Printer Options".Localize();
|
||||
this.ExtendOverflowMenu = (popupMenu) =>
|
||||
{
|
||||
this.GeneratePrinterOverflowMenu(popupMenu, ApplicationController.Instance.MenuTheme);
|
||||
|
|
|
|||
|
|
@ -1762,9 +1762,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
// Render 3D GCode if applicable
|
||||
if (sceneContext.LoadedGCode != null
|
||||
&& sceneContext.GCodeRenderer != null
|
||||
&& printerTabPage?.printer.ViewState.ViewMode == PartViewMode.Layers3D)
|
||||
&& printerTabPage?.Printer.ViewState.ViewMode == PartViewMode.Layers3D)
|
||||
{
|
||||
printerTabPage.printer.Bed.RenderGCode3D(e);
|
||||
printerTabPage.Printer.Bed.RenderGCode3D(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -108,6 +108,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
view3DWidget.Object3DControlLayer.Focus();
|
||||
};
|
||||
|
||||
this.OverflowButton.ToolTipText = "Tool Bar Overflow".Localize();
|
||||
|
||||
this.OverflowButton.DynamicPopupContent = () =>
|
||||
{
|
||||
bool IncludeInMenu(SceneOperation operation)
|
||||
|
|
|
|||
|
|
@ -73,8 +73,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
settingsSection = PrinterSettings.Layout.Simple;
|
||||
break;
|
||||
|
||||
case "Moderate":
|
||||
settingsSection = PrinterSettings.Layout.Moderate;
|
||||
case "Intermediate":
|
||||
settingsSection = PrinterSettings.Layout.Intermediate;
|
||||
break;
|
||||
|
||||
case "Advanced":
|
||||
|
|
@ -153,6 +153,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
this.scopeName = scopeName;
|
||||
|
||||
var overflowBar = this.TabBar as OverflowBar;
|
||||
overflowBar.ToolTipText = "Settings View Options".Localize();
|
||||
overflowBar.ExtendOverflowMenu = this.ExtendOverflowMenu;
|
||||
|
||||
var overflowButton = this.TabBar.RightAnchorItem;
|
||||
|
|
@ -326,23 +327,14 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
searchButton.VAnchorChanged += (s, e) => Console.WriteLine();
|
||||
|
||||
// Restore the last selected tab
|
||||
if (int.TryParse(UserSettings.Instance.get(databaseMRUKey), out int tabIndex)
|
||||
&& tabIndex >= 0
|
||||
&& tabIndex < this.TabCount)
|
||||
{
|
||||
this.SelectedTabIndex = tabIndex;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.SelectedTabIndex = 0;
|
||||
}
|
||||
this.SelectedTabKey = UserSettings.Instance.get(databaseMRUKey);
|
||||
|
||||
// Store the last selected tab on change
|
||||
this.ActiveTabChanged += (s, e) =>
|
||||
{
|
||||
if (settingsContext.IsPrimarySettingsView)
|
||||
{
|
||||
UserSettings.Instance.set(databaseMRUKey, this.SelectedTabIndex.ToString());
|
||||
UserSettings.Instance.set(databaseMRUKey, this.SelectedTabKey);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -378,7 +370,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
|
||||
private void ExtendOverflowMenu(PopupMenu popupMenu)
|
||||
{
|
||||
popupMenu.CreateMenuItem("View Just My Settings".Localize()).Click += (s, e) =>
|
||||
var menu = popupMenu.CreateMenuItem("View Just My Settings".Localize());
|
||||
menu.ToolTipText = "Show all settings that are not the printer default".Localize();
|
||||
menu.Click += (s, e) =>
|
||||
{
|
||||
switch (settingsContext.ViewFilter)
|
||||
{
|
||||
|
|
@ -406,35 +400,35 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
this.ForceExpansionMode(ExpansionMode.Collapsed);
|
||||
};
|
||||
|
||||
popupMenu.CreateSeparator();
|
||||
if (this.scopeName == "SliceSettings"
|
||||
&& settingsContext.ViewFilter == NamedSettingsLayers.All)
|
||||
{
|
||||
popupMenu.CreateSeparator();
|
||||
|
||||
popupMenu.CreateSubMenu("Settings Detail".Localize(),
|
||||
theme,
|
||||
(menu) =>
|
||||
void SetDetail(string level, bool value)
|
||||
{
|
||||
void SetDetail(string level, bool value)
|
||||
UiThread.RunOnIdle(() =>
|
||||
{
|
||||
UiThread.RunOnIdle(() =>
|
||||
if (value)
|
||||
{
|
||||
if (value)
|
||||
{
|
||||
ApplicationController.Instance.ReloadSliceSettings(printer);
|
||||
}
|
||||
});
|
||||
}
|
||||
UserSettings.Instance.set(UserSettingsKey.SliceSettingsViewDetail, level);
|
||||
ApplicationController.Instance.ReloadSliceSettings(printer);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
menu.CreateBoolMenuItem("Simple".Localize(),
|
||||
() => UserSettings.Instance.get(UserSettingsKey.SliceSettingsViewDetail) == "Simple",
|
||||
(value) => SetDetail("Simple", value));
|
||||
|
||||
menu.CreateBoolMenuItem("Moderate".Localize(),
|
||||
() => UserSettings.Instance.get(UserSettingsKey.SliceSettingsViewDetail) == "Moderate",
|
||||
(value) => SetDetail("Moderate", value));
|
||||
popupMenu.CreateBoolMenuItem("Simple".Localize(),
|
||||
() => UserSettings.Instance.get(UserSettingsKey.SliceSettingsViewDetail) == "Simple",
|
||||
(value) => SetDetail("Simple", value));
|
||||
|
||||
menu.CreateBoolMenuItem("Advanced".Localize(),
|
||||
() => UserSettings.Instance.get(UserSettingsKey.SliceSettingsViewDetail) == "Advanced",
|
||||
(value) => SetDetail("Advanced", value));
|
||||
});
|
||||
popupMenu.CreateBoolMenuItem("Intermediate".Localize(),
|
||||
() => UserSettings.Instance.get(UserSettingsKey.SliceSettingsViewDetail) == "Intermediate",
|
||||
(value) => SetDetail("Intermediate", value));
|
||||
|
||||
popupMenu.CreateBoolMenuItem("Advanced".Localize(),
|
||||
() => UserSettings.Instance.get(UserSettingsKey.SliceSettingsViewDetail) == "Advanced",
|
||||
(value) => SetDetail("Advanced", value));
|
||||
}
|
||||
|
||||
externalExtendMenu?.Invoke(popupMenu);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue