Ajout de la persistence des paramètres d'affichage et de la taille de la fenêtre principale

This commit is contained in:
2020-12-29 22:56:32 +01:00
parent 794ad8342d
commit 06cb964d6c
10 changed files with 383 additions and 61 deletions

View File

@@ -14,22 +14,63 @@ namespace Hermes {
private ModelContext dbContext = null;
private CollectionViewSource citoyenCollectionViewSource = null;
private bool isEnabledFilter = false;
private Preferences pref = null;
public MainWindow() {
dbContext = ModelContext.Getinstance();
//dbContext.Database.Log = log => System.Console.WriteLine(log);
dbContext.Database.CreateIfNotExists();
dbContext.CitoyenSet.Load();
dbContext.Preferences.Load();
if(dbContext.Preferences.Local.Count == 0) {
pref = new Preferences();
pref.civiliteViewEnabled = false;
pref.nomViewEnabled = true;
pref.nomNaissanceViewEnabled = false;
pref.prenomViewEnabled = true;
pref.ageViewEnabled = false;
pref.professionViewEnabled = false;
pref.typeResidenceViewEnabled = false;
pref.mailViewEnabled = false;
pref.telViewEnabled = false;
pref.telPortViewEnabled = false;
pref.quartierViewEnabled = false;
pref.adresseViewEnabled = true;
pref.adresseBatimentViewEnabled = false;
pref.adresseNumeroBatimentViewEnabled = false;
pref.adresseExtViewEnabled = false;
pref.adresseExtCPViewEnabled = false;
pref.adresseExtVilleViewEnabled = false;
pref.dateCreationViewEnabled = false;
pref.dateModificationViewEnabled = false;
pref.windowWidth = 1024;
pref.windowHeight = 640;
pref.windowMaximized = false;
dbContext.Preferences.Add(pref);
dbContext.SaveChanges();
}
pref = dbContext.Preferences.Local[0];
InitializeComponent();
Height = pref.windowHeight;
Width = pref.windowWidth;
if(pref.windowMaximized) {
WindowState = WindowState.Maximized;
} else {
WindowState = WindowState.Normal;
}
viewMenu.DataContext = pref;
}
private void Window_Loaded(object sender, RoutedEventArgs e) {
dbContext.CitoyenSet.Load();
dbContext.Preferences.Load();
citoyenCollectionViewSource = (CollectionViewSource) this.FindResource("citoyenCollectionViewSource");
citoyenCollectionViewSource.Source = dbContext.CitoyenSet.Local;
if(dbContext.Preferences.Local.Count == 0) {
if(string.IsNullOrWhiteSpace(pref.VilleCP) || string.IsNullOrWhiteSpace(pref.Ville)) {
MessageBox.Show("Il s'agit du premier lancement de Hermes. Veuillez renseigner les informations sur votre commune.", "Premier lancement", MessageBoxButton.OK, MessageBoxImage.None);
PreferencesWindow preferencesWindow = new PreferencesWindow(this);
preferencesWindow.ShowDialog();
@@ -267,6 +308,14 @@ namespace Hermes {
}
protected override void OnClosed(EventArgs e) {
if(WindowState == WindowState.Maximized) {
pref.windowMaximized = true;
} else {
pref.windowMaximized = false;
}
pref.windowHeight = (int) Height;
pref.windowWidth = (int) Width;
dbContext.SaveChanges();
dbContext.Dispose();
base.OnClosed(e);
Application.Current.Shutdown();