Fixes to settings

This commit is contained in:
MaddoScientisto 2026-02-04 22:10:16 +01:00
commit fc7175c2f7
6 changed files with 628 additions and 267 deletions

View file

@ -115,31 +115,26 @@ public partial class MainForm
private void SetDefaults()
{
// Model defaults are already set in DataModel constructor, just bind ComboBoxes
// Bind ComboBoxes to Model using proper data binding
ComboBox1.DataSource = new List<string>(Model.VerticalPositions);
ComboBox1.SelectedItem = Model.VerticalPosition;
ComboBox1.DataBindings.Add(new Binding("SelectedItem", bindingSource1, nameof(Model.VerticalPosition),
false, DataSourceUpdateMode.OnPropertyChanged));
ComboBox2.DataSource = new List<string>(Model.HorizontalAlignments);
ComboBox2.SelectedItem = Model.HorizontalAlignment;
ComboBox2.DataBindings.Add(new Binding("SelectedItem", bindingSource1, nameof(Model.HorizontalAlignment),
false, DataSourceUpdateMode.OnPropertyChanged));
ComboBox3.DataSource = new List<string>(Model.AvailableFonts);
ComboBox3.SelectedItem = Model.FontName;
ComboBox3.DataBindings.Add(new Binding("SelectedItem", bindingSource1, nameof(Model.FontName),
false, DataSourceUpdateMode.OnPropertyChanged));
ComboBox4.DataSource = new List<string>(Model.HorizontalAlignments);
ComboBox4.SelectedItem = Model.LogoHorizontalPosition;
ComboBox4.DataBindings.Add(new Binding("SelectedItem", bindingSource1, nameof(Model.LogoHorizontalPosition),
false, DataSourceUpdateMode.OnPropertyChanged));
ComboBox5.DataSource = new List<string> { "Alto", "Centro", "Basso" };
ComboBox5.SelectedItem = Model.LogoVerticalPosition;
}
private void RefreshComboBoxSelections()
{
// Update ComboBox selections to reflect loaded Model values
ComboBox1.SelectedItem = Model.VerticalPosition;
ComboBox2.SelectedItem = Model.HorizontalAlignment;
ComboBox3.SelectedItem = Model.FontName;
ComboBox4.SelectedItem = Model.LogoHorizontalPosition;
ComboBox5.SelectedItem = Model.LogoVerticalPosition;
ComboBox5.DataBindings.Add(new Binding("SelectedItem", bindingSource1, nameof(Model.LogoVerticalPosition),
false, DataSourceUpdateMode.OnPropertyChanged));
}
@ -289,18 +284,28 @@ public partial class MainForm
if (openDialog.ShowDialog() != DialogResult.OK) return;
await Model.LoadSettingsFromFileAsync(openDialog.FileName);
// Refresh ComboBox selections to reflect loaded settings
RefreshComboBoxSelections();
// Update logo preview if logo file exists
if (File.Exists(Model.LogoFile))
try
{
UpdateLogoPictureBox(Model.LogoFile);
}
await Model.LoadSettingsFromFileAsync(openDialog.FileName);
// Explicitly ensure UI is enabled after loading
Model.UiEnabled = true;
// Update logo preview if logo file exists
if (File.Exists(Model.LogoFile))
{
UpdateLogoPictureBox(Model.LogoFile);
}
Text = "Image Catalog - " + Path.GetFileName(openDialog.FileName);
Text = "Image Catalog - " + Path.GetFileName(openDialog.FileName);
_logger.LogInformation($"Settings loaded successfully from {openDialog.FileName}");
}
catch (Exception ex)
{
_logger.LogError(ex, "Error loading settings");
MessageBox.Show($"Error loading settings: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void OnSelectColorRequested(object sender, EventArgs e)
@ -380,6 +385,7 @@ public partial class MainForm
_picSettings.LarghezzaBig = Model.PhotoBigWidth;
_picSettings.FotoGrandeDimOrigina = Model.KeepOriginalDimensions;
_picSettings.JpegQuality = Model.JpegQuality;
_picSettings.Codice = Model.BigPhotoSuffix;
// Logo settings from Model
_picSettings.LogoAggiungi = Model.AddLogo;
@ -414,10 +420,10 @@ public partial class MainForm
_picSettings.TestoOrario = Model.TimeLabel;
_picSettings.TestoMin = Model.ShowFileNameOnThumbnails;
// Controls that still need binding (TODO: move to Model)
_picSettings.AggiungiScritteMiniature = RadioButton3.Checked;
_picSettings.AggTempoGaraMin = RadioButton5.Checked;
_picSettings.AggNumTempMin = RadioButton7.Checked;
// Thumbnail text options from Model
_picSettings.AggiungiScritteMiniature = Model.AddTextToThumbnails;
_picSettings.AggTempoGaraMin = Model.AddRaceTimeToThumbnails;
_picSettings.AggNumTempMin = Model.AddNumberAndTimeToThumbnails;
}
private void setLabel18Text(string text)