Making it possible to register for specific settings changes (extending what we've been doing to be more generic).
This commit is contained in:
parent
7a3d263f9d
commit
2881375666
4 changed files with 43 additions and 21 deletions
|
|
@ -49,18 +49,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
"extruder_count",
|
||||
};
|
||||
|
||||
static List<string> settingsRequiringPreviewUpdate = new List<string>()
|
||||
{
|
||||
"bed_size",
|
||||
"print_center",
|
||||
"build_height",
|
||||
"bed_shape",
|
||||
"center_part_on_bed",
|
||||
"extruder_offset",
|
||||
};
|
||||
|
||||
public static RootedObjectEventHandler PartPreviewSettingsChanged = new RootedObjectEventHandler();
|
||||
|
||||
const string SliceSettingsShowHelpEntry = "SliceSettingsShowHelp";
|
||||
const string SliceSettingsLevelEntry = "SliceSettingsLevel";
|
||||
TextImageButtonFactory buttonFactory = new TextImageButtonFactory();
|
||||
|
|
@ -489,17 +477,32 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
return dataTypeInfo;
|
||||
}
|
||||
|
||||
static Dictionary<string, RootedObjectEventHandler> functionsToCallOnChange = new Dictionary<string, RootedObjectEventHandler>();
|
||||
public static void RegisterForSettingsChange(string settingName, EventHandler functionToCallOnChange, ref EventHandler functionThatWillBeCalledToUnregisterEvent)
|
||||
{
|
||||
if (!functionsToCallOnChange.ContainsKey(settingName))
|
||||
{
|
||||
functionsToCallOnChange.Add(settingName, new RootedObjectEventHandler());
|
||||
}
|
||||
|
||||
RootedObjectEventHandler rootedEvent = functionsToCallOnChange[settingName];
|
||||
rootedEvent.RegisterEvent(functionToCallOnChange, ref functionThatWillBeCalledToUnregisterEvent);
|
||||
}
|
||||
|
||||
private void CallEventsOnSettingsChange(OrganizerSettingsData settingData)
|
||||
{
|
||||
foreach (KeyValuePair<string, RootedObjectEventHandler> keyValue in functionsToCallOnChange)
|
||||
{
|
||||
if (keyValue.Key == settingData.SlicerConfigName)
|
||||
{
|
||||
keyValue.Value.CallEvents(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
if (settingToReloadUiWhenChanged.Contains(settingData.SlicerConfigName))
|
||||
{
|
||||
ApplicationController.Instance.ReloadAll(null, null);
|
||||
}
|
||||
|
||||
if (settingsRequiringPreviewUpdate.Contains(settingData.SlicerConfigName))
|
||||
{
|
||||
PartPreviewSettingsChanged.CallEvents(this, null);
|
||||
}
|
||||
}
|
||||
|
||||
private GuiWidget CreateSettingInfoUIControls(OrganizerSettingsData settingData, double minSettingNameWidth, int extruderIndex)
|
||||
|
|
|
|||
|
|
@ -88,8 +88,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
|
|||
//doCoolHeadLift=False # Will cause the head to be raised in z until the min layer time is reached.
|
||||
new MapItemToBool("doCoolHeadLift", "cool_extruder_lift"),
|
||||
|
||||
//new MapItemToBool("extruder_2_offset", ""),
|
||||
//new MapItemToBool("temperature_extruder_2", ""),
|
||||
new NotPassedItem("", "extruder_count"),
|
||||
|
||||
//endCode=M104 S0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue