Miglioramenti UX e gestione impostazioni predefinite

* Rimosso il pulsante "Vai" e reso il campo URL non editabile.
* Introdotta persistenza delle impostazioni predefinite (es. anticipo).
* Aggiunto metodo `LoadDefaultSettings()` per caricare i defaults.
* Logging dettagliato per salvataggio e applicazione impostazioni.
* Ottimizzata gestione aste con valori predefiniti da configurazione.
* Fix per evitare puntate inutili quando l'utente è già vincitore.
* Logging migliorato per strategia di puntata e decisioni di skip.
* Aggiornata documentazione con dettagli sui fix implementati.
* Aggiornato `CHANGELOG.md` con le nuove funzionalità e correzioni.
This commit is contained in:
Alberto Balbo
2025-11-20 14:11:37 +01:00
parent f017ec0364
commit 29a567bb1d
12 changed files with 1060 additions and 92 deletions
@@ -10,6 +10,37 @@ namespace AutoBidder
/// </summary>
public partial class MainWindow
{
/// <summary>
/// Carica impostazioni predefinite salvate nei controlli UI
/// </summary>
private void LoadDefaultSettings()
{
try
{
var settings = SettingsManager.Load();
// Popola i controlli con i valori salvati
DefaultBidBeforeDeadlineMs.Text = settings.DefaultBidBeforeDeadlineMs.ToString();
DefaultCheckAuctionOpen.IsChecked = settings.DefaultCheckAuctionOpenBeforeBid;
DefaultMinPrice.Text = settings.DefaultMinPrice.ToString("F2", System.Globalization.CultureInfo.InvariantCulture);
DefaultMaxPrice.Text = settings.DefaultMaxPrice.ToString("F2", System.Globalization.CultureInfo.InvariantCulture);
DefaultMaxClicks.Text = settings.DefaultMaxClicks.ToString();
Log($"[OK] Impostazioni predefinite caricate: Anticipo={settings.DefaultBidBeforeDeadlineMs}ms", LogLevel.Info);
}
catch (Exception ex)
{
Log($"[WARN] Errore caricamento defaults: {ex.Message}", LogLevel.Warn);
// Valori di fallback se il caricamento fallisce
DefaultBidBeforeDeadlineMs.Text = "200";
DefaultCheckAuctionOpen.IsChecked = false;
DefaultMinPrice.Text = "0.00";
DefaultMaxPrice.Text = "0.00";
DefaultMaxClicks.Text = "0";
}
}
private async void SaveCookieButton_Click(object sender, RoutedEventArgs e)
{
try
@@ -174,12 +205,12 @@ namespace AutoBidder
}
Utilities.SettingsManager.Save(settings);
Log("[OK] Impostazioni predefinite aste salvate", LogLevel.Success);
Log($"[OK] Impostazioni predefinite salvate: Anticipo={bidMs}ms, MinPrice=€{settings.DefaultMinPrice:F2}, MaxPrice=€{settings.DefaultMaxPrice:F2}, MaxClicks={maxClicks}", LogLevel.Success);
// Rimosso MessageBox - verrà mostrato dal chiamante
}
else
{
Log("[WARN] Valore anticipo puntata non valido", LogLevel.Warn);
Log("[WARN] Valore anticipo puntata non valido (deve essere 0-5000)", LogLevel.Warn);
}
}
catch (Exception ex)
@@ -193,24 +224,7 @@ namespace AutoBidder
try
{
// Ricarica defaults salvati
var settings = Utilities.SettingsManager.Load();
if (settings != null)
{
DefaultBidBeforeDeadlineMs.Text = settings.DefaultBidBeforeDeadlineMs.ToString();
DefaultCheckAuctionOpen.IsChecked = settings.DefaultCheckAuctionOpenBeforeBid;
DefaultMinPrice.Text = settings.DefaultMinPrice.ToString("F2");
DefaultMaxPrice.Text = settings.DefaultMaxPrice.ToString("F2");
DefaultMaxClicks.Text = settings.DefaultMaxClicks.ToString();
}
else
{
// Valori di default se non ci sono impostazioni salvate
DefaultBidBeforeDeadlineMs.Text = "200";
DefaultCheckAuctionOpen.IsChecked = false;
DefaultMinPrice.Text = "0";
DefaultMaxPrice.Text = "0";
DefaultMaxClicks.Text = "0";
}
LoadDefaultSettings();
Log("[INFO] Impostazioni predefinite ripristinate", LogLevel.Info);
MessageBox.Show(this, "Impostazioni predefinite ripristinate.", "Annulla", MessageBoxButton.OK, MessageBoxImage.Information);