Handle windows for manual control correctly
Test / Run tests (push) Successful in 13s

This commit is contained in:
2026-08-07 16:15:00 +02:00
parent 28aaa6b1f3
commit c82adcc054
4 changed files with 29 additions and 9 deletions
@@ -5,6 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:PamhagenSysCtrl"
mc:Ignorable="d"
Closed="OnClosed"
Title="Handbetrieb - Anlagensteuerung Pamhagen" Height="550" Width="860">
<Grid>
<Grid x:Name="ValvePanel" Margin="5,5,5,5">
@@ -1,4 +1,5 @@
using PamhagenSysCtrl.Helpers;
using PamhagenSysCtrl.Windows;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
@@ -47,6 +48,14 @@ namespace PamhagenSysCtrl {
App.Plant?.Update += OnUpdate;
}
private void OnClosed(object sender, EventArgs evt) {
foreach (var win in Application.Current.Windows) {
if (win is PlantSchemeWindow w) {
w.Menu_Settings_ManualControl.IsChecked = false;
}
}
}
public void OnUpdate(object? sender, PlantEventArgs evt) {
if (sender is not PamhagenPlant plant) return;
+10 -6
View File
@@ -4,6 +4,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:PamhagenSysCtrl.Windows"
Closed="OnClosed"
Title="Anlagensteuerung Pamhagen" Height="950" Width="1600" MinWidth="1500" MinHeight="950">
<Grid>
<Grid.RowDefinitions>
@@ -14,20 +15,23 @@
<Menu Grid.Row="0" BorderThickness="0,0,0,1" BorderBrush="LightGray" Background="White">
<MenuItem Header="Einstellungen">
<MenuItem x:Name="Menu_Settings_ManualControl" Header="Handbetrieb"
Click="Menu_Settings_ManualControl_Click" IsCheckable="True">
<MenuItem x:Name="Menu_Settings_ManualControl" Header="Handbetrieb" IsCheckable="True"
Checked="Menu_Settings_ManualControl_Changed"
Unchecked="Menu_Settings_ManualControl_Changed">
<MenuItem.Icon>
<TextBlock FontFamily="Segoe MDL2 Assets" FontSize="16" Text="&#xF271;"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="Menu_Settings_OverridePathClearances" Header="Pfad-Freigaben überbrücken"
Click="Menu_Settings_OverridePathClearances_Click" IsCheckable="True">
<MenuItem x:Name="Menu_Settings_OverridePathClearances" Header="Pfad-Freigaben überbrücken" IsCheckable="True"
Checked="Menu_Settings_OverridePathClearances_Changed"
Unchecked="Menu_Settings_OverridePathClearances_Changed">
<MenuItem.Icon>
<TextBlock FontFamily="Segoe MDL2 Assets" FontSize="16" Text="&#xE785;"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="Menu_Settings_OverrideDryRunClearances" Header="Trockenlauf-Freigaben überbrücken"
Click="Menu_Settings_OverrideDryRunClearances_Click" IsCheckable="True"/>
<MenuItem x:Name="Menu_Settings_OverrideDryRunClearances" Header="Trockenlauf-Freigaben überbrücken" IsCheckable="True"
Checked="Menu_Settings_OverrideDryRunClearances_Changed"
Unchecked="Menu_Settings_OverrideDryRunClearances_Changed"/>
<Separator/>
<MenuItem x:Name="Menu_Settings_Config" Header="Konfigurationsdatei öffnen..." Click="Menu_Settings_Config_Click">
<MenuItem.Icon>
@@ -21,7 +21,11 @@ namespace PamhagenSysCtrl.Windows {
Graph.Draw(SchemeCanvas);
}
private void Menu_Settings_ManualControl_Click(object sender, RoutedEventArgs evt) {
private void OnClosed(object sender, EventArgs evt) {
Application.Current.Shutdown();
}
private void Menu_Settings_ManualControl_Changed(object sender, RoutedEventArgs evt) {
App.Plant?.ManualControlMode = Menu_Settings_ManualControl.IsChecked;
if (Menu_Settings_ManualControl.IsChecked) {
foreach (var win in Application.Current.Windows) {
@@ -38,16 +42,18 @@ namespace PamhagenSysCtrl.Windows {
w.Close();
}
}
Menu_Settings_OverridePathClearances.IsChecked = false;
Menu_Settings_OverrideDryRunClearances.IsChecked = false;
}
OnUpdate(null, null);
}
private void Menu_Settings_OverridePathClearances_Click(object sender, RoutedEventArgs evt) {
private void Menu_Settings_OverridePathClearances_Changed(object sender, RoutedEventArgs evt) {
App.Plant?.OverridePathClearances = Menu_Settings_OverridePathClearances.IsChecked;
OnUpdate(null, null);
}
private void Menu_Settings_OverrideDryRunClearances_Click(object sender, RoutedEventArgs evt) {
private void Menu_Settings_OverrideDryRunClearances_Changed(object sender, RoutedEventArgs evt) {
App.Plant?.OverrideDryRunClearances = Menu_Settings_OverrideDryRunClearances.IsChecked;
OnUpdate(null, null);
}