commit
2498b48e6b
4 changed files with 60 additions and 94 deletions
|
|
@ -43,7 +43,6 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
{
|
||||
internal class TemperatureWidgetBed : TemperatureWidgetBase
|
||||
{
|
||||
private EditableNumberDisplay settingsTemperature;
|
||||
private string sliceSettingsNote = "Note: Slice Settings are applied before the print actually starts. Changes while printing will not effect the active print.".Localize();
|
||||
private string waitingForBedToHeatMessage = "The bed is currently heating and its target temperature cannot be changed until it reaches {0}°C.\n\nYou can set the starting bed temperature in SETTINGS -> Filament -> Temperatures.\n\n{1}".Localize();
|
||||
private string waitingForBedToHeatTitle = "Waiting For Bed To Heat".Localize();
|
||||
|
|
@ -62,12 +61,6 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
protected override int ActualTemperature => (int)printer.Connection.ActualBedTemperature;
|
||||
protected override int TargetTemperature => (int)printer.Connection.TargetBedTemperature;
|
||||
|
||||
public override void OnClosed(ClosedEventArgs e)
|
||||
{
|
||||
ActiveSliceSettings.MaterialPresetChanged -= ActiveSliceSettings_MaterialPresetChanged;
|
||||
base.OnClosed(e);
|
||||
}
|
||||
|
||||
protected override GuiWidget GetPopupContent()
|
||||
{
|
||||
var widget = new IgnoredPopupWidget()
|
||||
|
|
@ -101,7 +94,7 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
|
||||
if (itemChecked)
|
||||
{
|
||||
SetTargetTemperature(settingsTemperature.Value);
|
||||
SetTargetTemperature(goalTemp);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -111,28 +104,15 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
},
|
||||
enforceGutter: false));
|
||||
|
||||
heatToggle = hotendRow.ChildrenRecursive<CheckBox>().FirstOrDefault();
|
||||
heatToggle = hotendRow.Decendants<CheckBox>().FirstOrDefault();
|
||||
heatToggle.Name = "Toggle Heater";
|
||||
|
||||
// put in the temp control
|
||||
settingsTemperature = new EditableNumberDisplay(printer.Settings.GetValue<double>(SettingsKey.bed_temperature), "000")
|
||||
{
|
||||
TextColor = Color.Black,
|
||||
BorderColor = Color.Black,
|
||||
Name = "Temperature Input"
|
||||
};
|
||||
settingsTemperature.ValueChanged += (s, e) =>
|
||||
{
|
||||
if (heatToggle.Checked)
|
||||
{
|
||||
SetTargetTemperature(settingsTemperature.Value);
|
||||
}
|
||||
};
|
||||
int tabIndex = 0;
|
||||
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
|
||||
|
||||
container.AddChild(new SettingsItem(
|
||||
"Temperature".Localize(),
|
||||
settingsTemperature,
|
||||
enforceGutter: false));
|
||||
var settingsData = SliceSettingsOrganizer.Instance.GetSettingsData(SettingsKey.bed_temperature);
|
||||
var row = SliceSettingsWidget.CreateItemRow(settingsData, settingsContext, printer, Color.Black, ref tabIndex);
|
||||
container.AddChild(row);
|
||||
|
||||
// add in the temp graph
|
||||
Action fillGraph = null;
|
||||
|
|
@ -142,16 +122,13 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
MinValue = 0,
|
||||
ShowGoal = true,
|
||||
GoalColor = ActiveTheme.Instance.PrimaryAccentColor,
|
||||
GoalValue = settingsTemperature.Value,
|
||||
GoalValue = printer.Settings.GetValue<double>(SettingsKey.bed_temperature),
|
||||
MaxValue = 150, // could come from some profile value in the future
|
||||
Width = widget.Width - 20,
|
||||
Height = 35, // this works better if it is a common multiple of the Width
|
||||
Margin = new BorderDouble(0, 5, 0, 0),
|
||||
};
|
||||
settingsTemperature.ValueChanged += (s, e) =>
|
||||
{
|
||||
graph.GoalValue = settingsTemperature.Value;
|
||||
};
|
||||
|
||||
fillGraph = () =>
|
||||
{
|
||||
graph.AddData(this.ActualTemperature);
|
||||
|
|
@ -161,11 +138,28 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
}
|
||||
};
|
||||
|
||||
var valueField = row.Decendants<MHNumberEdit>().FirstOrDefault();
|
||||
var settingsRow = row.Decendants<SliceSettingsRow>().FirstOrDefault();
|
||||
ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) =>
|
||||
{
|
||||
if (e is StringEventArgs stringEvent)
|
||||
{
|
||||
var temp = printer.Settings.GetValue<double>(SettingsKey.bed_temperature);
|
||||
valueField.Value = temp;
|
||||
graph.GoalValue = temp;
|
||||
settingsRow.UpdateStyle();
|
||||
if (stringEvent.Data == SettingsKey.bed_temperature
|
||||
&& heatToggle.Checked)
|
||||
{
|
||||
SetTargetTemperature(temp);
|
||||
}
|
||||
};
|
||||
}, ref unregisterEvents);
|
||||
|
||||
|
||||
UiThread.RunOnIdle(fillGraph);
|
||||
container.AddChild(graph);
|
||||
|
||||
ActiveSliceSettings.MaterialPresetChanged += ActiveSliceSettings_MaterialPresetChanged;
|
||||
|
||||
return widget;
|
||||
}
|
||||
|
||||
|
|
@ -194,13 +188,5 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
printer.Connection.TargetBedTemperature = (int)(targetTemp + .5);
|
||||
}
|
||||
}
|
||||
|
||||
private void ActiveSliceSettings_MaterialPresetChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (settingsTemperature != null && printer.Settings != null)
|
||||
{
|
||||
settingsTemperature.Text = printer.Settings.GetValue(SettingsKey.bed_temperature);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -172,7 +172,6 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
private TextImageButtonFactory buttonFactory;
|
||||
private int hotendIndex = -1;
|
||||
|
||||
private EditableNumberDisplay settingsTemperature;
|
||||
private string sliceSettingsNote = "Note: Slice Settings are applied before the print actually starts. Changes while printing will not effect the active print.".Localize();
|
||||
private string waitingForExtruderToHeatMessage = "The extruder is currently heating and its target temperature cannot be changed until it reaches {0}°C.\n\nYou can set the starting extruder temperature in 'Slice Settings' -> 'Filament'.\n\n{1}".Localize();
|
||||
|
||||
|
|
@ -191,12 +190,6 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
protected override int ActualTemperature => (int)printer.Connection.GetActualHotendTemperature(hotendIndex);
|
||||
protected override int TargetTemperature => (int)printer.Connection.GetTargetHotendTemperature(hotendIndex);
|
||||
|
||||
public override void OnClosed(ClosedEventArgs e)
|
||||
{
|
||||
ActiveSliceSettings.MaterialPresetChanged -= ActiveSliceSettings_MaterialPresetChanged;
|
||||
base.OnClosed(e);
|
||||
}
|
||||
|
||||
protected override GuiWidget GetPopupContent()
|
||||
{
|
||||
var widget = new IgnoredPopupWidget()
|
||||
|
|
@ -227,7 +220,7 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
if (itemChecked)
|
||||
{
|
||||
// Set to goal temp
|
||||
SetTargetTemperature(settingsTemperature.Value);
|
||||
SetTargetTemperature(printer.Settings.Helpers.ExtruderTemperature(hotendIndex));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -238,26 +231,16 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
},
|
||||
enforceGutter: false));
|
||||
|
||||
heatToggle = hotendRow.ChildrenRecursive<CheckBox>().FirstOrDefault();
|
||||
heatToggle = hotendRow.Decendants<CheckBox>().FirstOrDefault();
|
||||
heatToggle.Name = "Toggle Heater";
|
||||
|
||||
// put in the temp control
|
||||
settingsTemperature = new EditableNumberDisplay(printer.Settings.GetValue<double>(SettingsKey.temperature), "000")
|
||||
{
|
||||
TextColor = Color.Black,
|
||||
BorderColor = Color.Black,
|
||||
Name = "Temperature Input"
|
||||
};
|
||||
settingsTemperature.ValueChanged += (s, e) =>
|
||||
{
|
||||
if (heatToggle.Checked)
|
||||
{
|
||||
SetTargetTemperature(settingsTemperature.Value);
|
||||
}
|
||||
};
|
||||
container.AddChild(new SettingsItem(
|
||||
"Temperature".Localize(),
|
||||
settingsTemperature, enforceGutter: false));
|
||||
int tabIndex = 0;
|
||||
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
|
||||
// TODO: make this be for the correct extruder
|
||||
var settingsData = SliceSettingsOrganizer.Instance.GetSettingsData(SettingsKey.temperature);
|
||||
var row = SliceSettingsWidget.CreateItemRow(settingsData, settingsContext, printer, Color.Black, ref tabIndex);
|
||||
|
||||
container.AddChild(row);
|
||||
|
||||
// add in the temp graph
|
||||
Action fillGraph = null;
|
||||
|
|
@ -267,15 +250,11 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
MinValue = 0,
|
||||
ShowGoal = true,
|
||||
GoalColor = ActiveTheme.Instance.PrimaryAccentColor,
|
||||
GoalValue = settingsTemperature.Value,
|
||||
GoalValue = printer.Settings.Helpers.ExtruderTemperature(hotendIndex),
|
||||
MaxValue = 280, // could come from some profile value in the future
|
||||
Width = widget.Width - 20,
|
||||
Height = 35, // this works better if it is a common multiple of the Width
|
||||
};
|
||||
settingsTemperature.ValueChanged += (s, e) =>
|
||||
{
|
||||
graph.GoalValue = settingsTemperature.Value;
|
||||
};
|
||||
fillGraph = () =>
|
||||
{
|
||||
graph.AddData(this.ActualTemperature);
|
||||
|
|
@ -285,6 +264,25 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
}
|
||||
};
|
||||
|
||||
var valueField = row.Decendants<MHNumberEdit>().FirstOrDefault();
|
||||
valueField.Name = "Temperature Input";
|
||||
var settingsRow = row.Decendants<SliceSettingsRow>().FirstOrDefault();
|
||||
ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) =>
|
||||
{
|
||||
if (e is StringEventArgs stringEvent)
|
||||
{
|
||||
var temp = printer.Settings.Helpers.ExtruderTemperature(hotendIndex);
|
||||
valueField.Value = temp;
|
||||
graph.GoalValue = temp;
|
||||
settingsRow.UpdateStyle();
|
||||
if (stringEvent.Data == SettingsKey.temperature
|
||||
&& heatToggle.Checked)
|
||||
{
|
||||
SetTargetTemperature(temp);
|
||||
}
|
||||
};
|
||||
}, ref unregisterEvents);
|
||||
|
||||
UiThread.RunOnIdle(fillGraph);
|
||||
container.AddChild(graph);
|
||||
|
||||
|
|
@ -299,15 +297,6 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
|
||||
presetsSelector.DropDownList.Name = "Hotend Preset Selector";
|
||||
|
||||
presetsSelector.DropDownList.SelectionChanged += (s, e) =>
|
||||
{
|
||||
// delay this for an update so the slice setting can get updated first
|
||||
UiThread.RunOnIdle(() =>
|
||||
{
|
||||
settingsTemperature.Value = printer.Settings.GetValue<double>(SettingsKey.temperature);
|
||||
});
|
||||
};
|
||||
|
||||
this.Width = 150;
|
||||
|
||||
// HACK: remove undesired item
|
||||
|
|
@ -354,8 +343,6 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
container.AddChild(new ControlContentExtruder(printer, hotendIndex, buttonFactory));
|
||||
}
|
||||
|
||||
ActiveSliceSettings.MaterialPresetChanged += ActiveSliceSettings_MaterialPresetChanged;
|
||||
|
||||
return widget;
|
||||
}
|
||||
|
||||
|
|
@ -384,13 +371,5 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
printer.Connection.SetTargetHotendTemperature(hotendIndex, (int)(targetTemp + .5));
|
||||
}
|
||||
}
|
||||
|
||||
private void ActiveSliceSettings_MaterialPresetChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (settingsTemperature != null && printer.Settings != null)
|
||||
{
|
||||
settingsTemperature.Text = printer.Settings.GetValue(SettingsKey.temperature);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit bad43f38ef713d6b5b953cc674bfd600edfe5082
|
||||
Subproject commit 6151fbf50c3e657dc1e6c5059f8a9c12c1745d03
|
||||
|
|
@ -174,7 +174,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
|
|||
testRunner.ClickByName("Hotend 0");
|
||||
|
||||
// assert the temp is set when we first open (it comes from the material)
|
||||
EditableNumberDisplay tempWidget = testRunner.GetWidgetByName("Temperature Input", out _) as EditableNumberDisplay;
|
||||
MHNumberEdit tempWidget = testRunner.GetWidgetByName("Temperature Input", out _) as MHNumberEdit;
|
||||
Assert.AreEqual(240, (int)tempWidget.Value);
|
||||
|
||||
// change material
|
||||
|
|
@ -237,6 +237,7 @@ namespace MatterHackers.MatterControl.Tests.Automation
|
|||
|
||||
// type in 0 and have the heater turn off
|
||||
testRunner.ClickByName("Temperature Input");
|
||||
testRunner.Type("^a");
|
||||
testRunner.Type("0");
|
||||
testRunner.Type("{Enter}");
|
||||
testRunner.Delay();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue