Process enabled logic on load
- Issue MatterHackers/MCCentral#4002 Extruder controls enabled before printer is Connected
This commit is contained in:
parent
c5e311bb01
commit
50e317ca91
1 changed files with 29 additions and 16 deletions
|
|
@ -111,24 +111,9 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
};
|
||||
container.AddChild(DirectionIndicator);
|
||||
|
||||
bool isEnabled = printer.Connection.IsConnected;
|
||||
|
||||
printer.Connection.CommunicationStateChanged.RegisterEvent((s, e) =>
|
||||
{
|
||||
if (isEnabled != printer.Connection.IsConnected)
|
||||
{
|
||||
isEnabled = printer.Connection.IsConnected;
|
||||
|
||||
var flowLayout = this.PopupContent.Children.OfType<FlowLayoutWidget>().FirstOrDefault();
|
||||
if (flowLayout != null)
|
||||
{
|
||||
foreach (var child in flowLayout.Children.Except(alwaysEnabled))
|
||||
{
|
||||
child.Enabled = isEnabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enableControls();
|
||||
}, ref unregisterEvents);
|
||||
}
|
||||
|
||||
|
|
@ -156,10 +141,38 @@ namespace MatterHackers.MatterControl.ActionBar
|
|||
|
||||
protected virtual void SetTargetTemperature(double targetTemp) { }
|
||||
|
||||
public override void OnLoad(EventArgs args)
|
||||
{
|
||||
enableControls();
|
||||
|
||||
base.OnLoad(args);
|
||||
}
|
||||
|
||||
public override void OnClosed(ClosedEventArgs e)
|
||||
{
|
||||
unregisterEvents?.Invoke(this, null);
|
||||
base.OnClosed(e);
|
||||
}
|
||||
|
||||
bool? isEnabled = null;
|
||||
|
||||
private void enableControls()
|
||||
{
|
||||
if (isEnabled != printer.Connection.IsConnected)
|
||||
{
|
||||
isEnabled = printer.Connection.IsConnected;
|
||||
|
||||
var flowLayout = this.PopupContent.Children.OfType<FlowLayoutWidget>().FirstOrDefault();
|
||||
if (flowLayout != null)
|
||||
{
|
||||
foreach (var child in flowLayout.Children.Except(alwaysEnabled))
|
||||
{
|
||||
child.Enabled = isEnabled == true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue