diff --git a/EeProm/EePromRepetierStorage.cs b/EeProm/EePromRepetierStorage.cs index a90001290..c54dc2427 100644 --- a/EeProm/EePromRepetierStorage.cs +++ b/EeProm/EePromRepetierStorage.cs @@ -49,14 +49,20 @@ namespace MatterHackers.MatterControl.EeProm public void Clear() { - eePromSettingsList.Clear(); + lock (eePromSettingsList) + { + eePromSettingsList.Clear(); + } } public void Save() { - foreach (EePromRepetierParameter p in eePromSettingsList.Values) + lock (eePromSettingsList) { - p.save(); + foreach (EePromRepetierParameter p in eePromSettingsList.Values) + { + p.save(); + } } } @@ -77,16 +83,17 @@ namespace MatterHackers.MatterControl.EeProm } EePromRepetierParameter parameter = new EePromRepetierParameter(line); - if (eePromSettingsList.ContainsKey(parameter.position)) + lock (eePromSettingsList) { - eePromSettingsList.Remove(parameter.position); + if (eePromSettingsList.ContainsKey(parameter.position)) + { + eePromSettingsList.Remove(parameter.position); + } + + eePromSettingsList.Add(parameter.position, parameter); } - eePromSettingsList.Add(parameter.position, parameter); - if (eventAdded != null) - { - eventAdded(this, parameter); - } + eventAdded(this, parameter); } public void AskPrinterForSettings() diff --git a/EeProm/EePromRepetierWindow.cs b/EeProm/EePromRepetierWindow.cs index 69ae1a95f..fe462ab51 100644 --- a/EeProm/EePromRepetierWindow.cs +++ b/EeProm/EePromRepetierWindow.cs @@ -33,7 +33,7 @@ using MatterHackers.Agg.UI; using MatterHackers.Localizations; using MatterHackers.MatterControl.PrinterCommunication; using System; -using System.ComponentModel; +using System.Collections.Generic; namespace MatterHackers.MatterControl.EeProm { @@ -42,7 +42,6 @@ namespace MatterHackers.MatterControl.EeProm protected TextImageButtonFactory textImageButtonFactory = new TextImageButtonFactory(); private EePromRepetierStorage currentEePromSettings; - private BindingList data = new BindingList(); private FlowLayoutWidget settingsColmun; private event EventHandler unregisterEvents; @@ -169,55 +168,64 @@ namespace MatterHackers.MatterControl.EeProm buttonSave.Click += buttonSave_Click; } + bool waitingForUiUpdate = false; private void NewSettingReadFromPrinter(object sender, EventArgs e) { EePromRepetierParameter newSetting = e as EePromRepetierParameter; if (newSetting != null) { - data.Add(newSetting); - - UiThread.RunOnIdle(AddItemToUi, newSetting); + if (!waitingForUiUpdate) + { + waitingForUiUpdate = true; + UiThread.RunOnIdle(AddItemToUi, 1); + } } } private int currentTabIndex = 0; - private void AddItemToUi(object state) + private void AddItemToUi() { - EePromRepetierParameter newSetting = state as EePromRepetierParameter; - if (newSetting != null) + List tempList = new List(); + lock (currentEePromSettings.eePromSettingsList) { - FlowLayoutWidget row = new FlowLayoutWidget(); - row.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth; - row.AddChild(AddDescription(newSetting.Description)); - row.Padding = new BorderDouble(5, 0); - if ((settingsColmun.Children.Count % 2) == 1) + foreach (KeyValuePair keyValue in currentEePromSettings.eePromSettingsList) { - row.BackgroundColor = new RGBA_Bytes(0, 0, 0, 50); + tempList.Add(keyValue.Value); } - - CreateSpacer(row); - - double currentValue; - double.TryParse(newSetting.Value, out currentValue); - MHNumberEdit valueEdit = new MHNumberEdit(currentValue, pixelWidth: 80, allowNegatives: true, allowDecimals: true); - valueEdit.SelectAllOnFocus = true; - valueEdit.TabIndex = currentTabIndex++; - valueEdit.VAnchor = Agg.UI.VAnchor.ParentCenter; - valueEdit.ActuallNumberEdit.EditComplete += (sender, e) => - { - newSetting.Value = valueEdit.ActuallNumberEdit.Value.ToString(); - }; - row.AddChild(valueEdit); - - settingsColmun.AddChild(row); } - // TODO: fix the flow layout so we don't need this. - // This is correcting a bug in flow layout widgets not setting sizes correctly. - double oldWidth = Width; - Width = Width + 1; - Width = oldWidth; + foreach (EePromRepetierParameter newSetting in tempList) + { + if (newSetting != null) + { + FlowLayoutWidget row = new FlowLayoutWidget(); + row.HAnchor = Agg.UI.HAnchor.Max_FitToChildren_ParentWidth; + row.AddChild(AddDescription(newSetting.Description)); + row.Padding = new BorderDouble(5, 0); + if ((settingsColmun.Children.Count % 2) == 1) + { + row.BackgroundColor = new RGBA_Bytes(0, 0, 0, 30); + } + + CreateSpacer(row); + + double currentValue; + double.TryParse(newSetting.Value, out currentValue); + MHNumberEdit valueEdit = new MHNumberEdit(currentValue, pixelWidth: 80 * TextWidget.GlobalPointSizeScaleRatio, allowNegatives: true, allowDecimals: true); + valueEdit.SelectAllOnFocus = true; + valueEdit.TabIndex = currentTabIndex++; + valueEdit.VAnchor = Agg.UI.VAnchor.ParentCenter; + valueEdit.ActuallNumberEdit.EditComplete += (sender, e) => + { + newSetting.Value = valueEdit.ActuallNumberEdit.Value.ToString(); + }; + row.AddChild(valueEdit); + + settingsColmun.AddChild(row); + } + } + waitingForUiUpdate = false; } private GuiWidget AddDescription(string description) @@ -251,7 +259,6 @@ namespace MatterHackers.MatterControl.EeProm private void DoButtonAbort_Click() { currentEePromSettings.Clear(); - data.Clear(); currentEePromSettings.eventAdded -= NewSettingReadFromPrinter; Close(); } diff --git a/PrinterControls/ControlWidgets/FanControls.cs b/PrinterControls/ControlWidgets/FanControls.cs index 99c9179d1..7aac1d2ef 100644 --- a/PrinterControls/ControlWidgets/FanControls.cs +++ b/PrinterControls/ControlWidgets/FanControls.cs @@ -45,7 +45,7 @@ namespace MatterHackers.MatterControl.PrinterControls protected override void AddChildElements() { - AltGroupBox fanControlsGroupBox = new AltGroupBox(new TextWidget("Fan Controls".Localize(), pointSize: 18, textColor: ActiveTheme.Instance.SecondaryAccentColor)); + AltGroupBox fanControlsGroupBox = new AltGroupBox(new TextWidget("Fan".Localize(), pointSize: 18, textColor: ActiveTheme.Instance.SecondaryAccentColor)); fanControlsGroupBox.Margin = new BorderDouble(0); fanControlsGroupBox.BorderColor = ActiveTheme.Instance.PrimaryTextColor; diff --git a/PrinterControls/ControlWidgets/MovementControls.cs b/PrinterControls/ControlWidgets/MovementControls.cs index bac659c49..5a8d22b7d 100644 --- a/PrinterControls/ControlWidgets/MovementControls.cs +++ b/PrinterControls/ControlWidgets/MovementControls.cs @@ -112,7 +112,7 @@ namespace MatterHackers.MatterControl.PrinterControls protected override void AddChildElements() { Button editButton; - movementControlsGroupBox = new AltGroupBox(textImageButtonFactory.GenerateGroupBoxLabelWithEdit(new TextWidget("Movement Controls".Localize(), pointSize: 18, textColor: ActiveTheme.Instance.SecondaryAccentColor), out editButton)); + movementControlsGroupBox = new AltGroupBox(textImageButtonFactory.GenerateGroupBoxLabelWithEdit(new TextWidget("Movement".Localize(), pointSize: 18, textColor: ActiveTheme.Instance.SecondaryAccentColor), out editButton)); editButton.Click += (sender, e) => { if (editManualMovementSettingsWindow == null) diff --git a/StaticData/Translations/Master.txt b/StaticData/Translations/Master.txt index c955b7ece..57d61670b 100644 --- a/StaticData/Translations/Master.txt +++ b/StaticData/Translations/Master.txt @@ -4345,3 +4345,9 @@ Translated:The distance to move the nozzle along the Z axis to ensure that it is English:Retract When \nChanging Islands Translated:Retract When \nChanging Islands +English:Movement +Translated:Movement + +English:Fan +Translated:Fan +