Bug: Potentieller Speicherverlust + Speichert jetzt letztes Einstellungsfenster

This commit is contained in:
2024-11-29 12:28:59 +01:00
parent 0889597dd7
commit 302059277a
2 changed files with 70 additions and 4 deletions

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using BeWo.View.Navigation.Filter;
using BS.Shared;
using DevExpress.Xpf.Accordion;
using DevExpress.Xpf.Scheduling;
using DevExpress.XtraScheduler;
@@ -421,6 +422,8 @@ namespace BeWo.Core.Config
public bool ShowPivotGrid { get; set; }
public string ExpandedAdministrationItems { get; set; }
public string SelectedAdministrationItem { get; set; }
public bool ShowUrlaubsplanung { get; set; }
public bool DontShowSpitzabrechnung { get; set; }
public bool ShowDienstplanung { get; set; }

View File

@@ -14,6 +14,7 @@ using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using DevExpress.Xpf.Accordion;
using BeWo.View.Detail.Administration;
using System.Linq;
namespace BeWo.View.Master
{
@@ -29,7 +30,6 @@ namespace BeWo.View.Master
{
InitializeComponent();
//GenerateNewView(TabitemMandator);
Root.SelectedItem = TabitemMandator;
this.Loaded += AdministrationView_Loaded;
@@ -136,6 +136,15 @@ namespace BeWo.View.Master
// item.IsExpanded = true;
//}
}
if (BeWoApp.AppSettings.SelectedAdministrationItem is string selected)
{
Root.SelectedItem = searchAccordionItem(selected);
}
else
{
Root.SelectedItem = TabitemMandator;
}
}
private void Tabitem_Selected(object sender, RoutedEventArgs e)
@@ -143,10 +152,16 @@ namespace BeWo.View.Master
if (!(sender is AccordionItem selectedAccordionItem))
return;
if (_OpenViews.ContainsKey(selectedAccordionItem.Header.ToString()))
SetView(_OpenViews[selectedAccordionItem.Header.ToString()]);
var header = selectedAccordionItem.Header.ToString();
if (_OpenViews.TryGetValue(header, out var view))
{
if(view is object)
SetView(_OpenViews[header]);
}
else
GenerateNewView(selectedAccordionItem);
BeWoApp.AppSettings.SelectedAdministrationItem = header;
}
public override bool IsDirty => SelectedView != null &&
@@ -226,7 +241,7 @@ namespace BeWo.View.Master
pView.MaxHeight = ActualHeight - 120;
}
_OpenViews.Add(pTabItem.Header.ToString(), pView);
_OpenViews[pTabItem.Header.ToString()] = pView;
SetView(pView);
}
@@ -247,6 +262,17 @@ namespace BeWo.View.Master
if (accordionItem == null)
return;
var header = accordionItem.Header.ToString();
if (_OpenViews.TryGetValue(header, out var view))
{
return;
}
else
{
_OpenViews.Add(header, null);
}
switch (accordionItem.Name)
{
case nameof(TabitemMandator):
@@ -458,6 +484,43 @@ namespace BeWo.View.Master
}
}
private AccordionItem searchAccordionItem(string header)
{
foreach (var item in Root.Items)
{
var rtn = searchAccordionItem(item as AccordionItem, header);
if (rtn is object)
return rtn;
}
return null;
}
private AccordionItem searchAccordionItem(AccordionItem accordion, string header)
{
if (accordion is null)
return null;
if (!accordion.Items.Any())
{
if (header == accordion.Header.ToString())
return accordion;
else
return null;
}
foreach (var item in accordion.Items)
{
var rtn = searchAccordionItem(item as AccordionItem, header);
if (rtn is object)
return rtn;
}
return null;
}
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
//e.Handled = true;