add: air alarm scrubber select all gases button (#39296)
* add select all gases button * now make it work * localize * refactor * remove redundant Orientation Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com> * remove useless HorizontalExpand Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com> * add nice newline Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com> * deduplicate Enum.GetValues<Gas> usage --------- Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
This commit is contained in:
@@ -29,7 +29,13 @@
|
|||||||
<Collapsible Margin="2 2 2 2">
|
<Collapsible Margin="2 2 2 2">
|
||||||
<CollapsibleHeading Title="Gas filters" />
|
<CollapsibleHeading Title="Gas filters" />
|
||||||
<CollapsibleBody Margin="20 0 0 0">
|
<CollapsibleBody Margin="20 0 0 0">
|
||||||
<GridContainer HorizontalExpand="True" Name="CGasContainer" Columns="3" />
|
<BoxContainer Orientation="Vertical">
|
||||||
|
<BoxContainer Margin="2">
|
||||||
|
<Button Name="CSelectAll" Text="{Loc 'air-alarm-ui-scrubber-select-all-gases-label'}" />
|
||||||
|
<Button Name="CDeselectAll" Text="{Loc 'air-alarm-ui-scrubber-deselect-all-gases-label'}" />
|
||||||
|
</BoxContainer>
|
||||||
|
<GridContainer Name="CGasContainer" Columns="3" />
|
||||||
|
</BoxContainer>
|
||||||
</CollapsibleBody>
|
</CollapsibleBody>
|
||||||
</Collapsible>
|
</Collapsible>
|
||||||
</BoxContainer>
|
</BoxContainer>
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ public sealed partial class ScrubberControl : BoxContainer
|
|||||||
private FloatSpinBox _volumeRate => CVolumeRate;
|
private FloatSpinBox _volumeRate => CVolumeRate;
|
||||||
private CheckBox _wideNet => CWideNet;
|
private CheckBox _wideNet => CWideNet;
|
||||||
private Button _copySettings => CCopySettings;
|
private Button _copySettings => CCopySettings;
|
||||||
|
private Button _selectAll => CSelectAll;
|
||||||
|
private Button _deselectAll => CDeselectAll;
|
||||||
|
|
||||||
private GridContainer _gases => CGasContainer;
|
private GridContainer _gases => CGasContainer;
|
||||||
private Dictionary<Gas, Button> _gasControls = new();
|
private Dictionary<Gas, Button> _gasControls = new();
|
||||||
@@ -78,7 +80,20 @@ public sealed partial class ScrubberControl : BoxContainer
|
|||||||
ScrubberDataCopied?.Invoke(_data);
|
ScrubberDataCopied?.Invoke(_data);
|
||||||
};
|
};
|
||||||
|
|
||||||
foreach (var value in Enum.GetValues<Gas>())
|
var allGases = Enum.GetValues<Gas>();
|
||||||
|
_selectAll.OnPressed += _ =>
|
||||||
|
{
|
||||||
|
_data.FilterGases = new HashSet<Gas>(allGases);
|
||||||
|
ScrubberDataChanged?.Invoke(_address, _data);
|
||||||
|
};
|
||||||
|
|
||||||
|
_deselectAll.OnPressed += _ =>
|
||||||
|
{
|
||||||
|
_data.FilterGases = [];
|
||||||
|
ScrubberDataChanged?.Invoke(_address, _data);
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var value in allGases)
|
||||||
{
|
{
|
||||||
var gasButton = new Button
|
var gasButton = new Button
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ air-alarm-ui-vent-internal-bound-label = Internal bound
|
|||||||
air-alarm-ui-scrubber-pump-direction-label = Direction
|
air-alarm-ui-scrubber-pump-direction-label = Direction
|
||||||
air-alarm-ui-scrubber-volume-rate-label = Rate (L)
|
air-alarm-ui-scrubber-volume-rate-label = Rate (L)
|
||||||
air-alarm-ui-scrubber-wide-net-label = WideNet
|
air-alarm-ui-scrubber-wide-net-label = WideNet
|
||||||
|
air-alarm-ui-scrubber-select-all-gases-label = Select all
|
||||||
|
air-alarm-ui-scrubber-deselect-all-gases-label = Deselect all
|
||||||
|
|
||||||
### Thresholds
|
### Thresholds
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user