Files
Mimante/Mimante/Documentation/FIX_BROWSER_URL_READONLY.md
Alberto Balbo 29a567bb1d 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.
2025-11-20 14:11:37 +01:00

7.6 KiB

?? Fix URL Browser - Campo Non Editabile

Problema Rilevato

Nella scheda Browser:

  1. ? L'indirizzo URL della pagina corrente non era sempre visibile nel campo in alto
  2. ? Il campo era editabile, permettendo di inserire URL personalizzati (funzionalità non ancora implementata)
  3. ? Il pulsante "Vai" era presente ma non funzionale

Causa del Problema

Il TextBox BrowserAddress era configurato come campo editabile standard:

<!-- ? PRIMA -->
<TextBox x:Name="BrowserAddress" 
         VerticalAlignment="Center"
         BorderThickness="0"
         Background="Transparent"
         Foreground="#CCCCCC"
         Padding="10,0"
         FontSize="13"/>
         <!-- Mancava IsReadOnly="True" -->

L'URL veniva aggiornato correttamente negli eventi NavigationStarting e NavigationCompleted, ma:

  • Il campo era modificabile dall'utente
  • Il pulsante "Vai" suggeriva una funzionalità non implementata

Soluzione Implementata

? 1. Campo URL Non Editabile

Aggiunto IsReadOnly="True" al TextBox:

<!-- ? DOPO -->
<TextBox x:Name="BrowserAddress" 
         VerticalAlignment="Center"
         BorderThickness="0"
         Background="Transparent"
         Foreground="#CCCCCC"
         Padding="10,0"
         FontSize="13"
         IsReadOnly="True"
         Cursor="Arrow"
         ToolTip="Indirizzo della pagina corrente (non editabile)"/>

Caratteristiche:

  • ? IsReadOnly="True" - Non modificabile
  • ? Cursor="Arrow" - Mostra cursore normale (non testo)
  • ? ToolTip - Spiega che il campo è solo visualizzazione

? 2. Rimosso Pulsante "Vai"

Eliminato il pulsante "Vai" non necessario:

Prima:

<Button x:Name="BrowserGoButton" 
        Content="Vai" 
        Click="BrowserGoButton_Click"/>

Dopo: Pulsante rimosso ?

? 3. Mantenuto Aggiornamento Automatico

L'URL viene ancora aggiornato automaticamente in MainWindow.EventHandlers.Browser.cs:

private void EmbeddedWebView_NavigationStarting(...)
{
    BrowserAddress.Text = e.Uri ?? string.Empty;
    // ...
}

private void EmbeddedWebView_NavigationCompleted(...)
{
    var uri = EmbeddedWebView?.Source?.ToString() ?? BrowserAddress.Text;
    BrowserAddress.Text = uri;
    // ...
}

Comportamento Atteso

? Scenario 1: Navigazione Normale

  1. Apri scheda Browser
  2. Vai su https://it.bidoo.com
  3. ? URL appare nel campo in alto: https://it.bidoo.com/
  4. Clicca link in pagina ? Vai a https://it.bidoo.com/auction.php?a=asta_12345
  5. ? URL si aggiorna automaticamente nel campo

? Scenario 2: Campo Non Editabile

  1. Apri scheda Browser
  2. Prova a cliccare nel campo URL
  3. ? Non puoi modificare il testo
  4. ? Cursore rimane freccia (non diventa testo)
  5. ? Tooltip mostra: "Indirizzo della pagina corrente (non editabile)"

? Scenario 3: Navigazione con Pulsanti

  1. Usa "Indietro" / "Avanti" / "Ricarica" / "Home"
  2. ? URL si aggiorna automaticamente
  3. ? Campo mostra sempre l'indirizzo corrente

? Scenario 4: Aggiunta Asta

  1. Naviga su un'asta: https://it.bidoo.com/auction.php?a=asta_12345
  2. ? URL visibile nel campo
  3. Clicca "Aggiungi Asta"
  4. ? L'URL dal campo viene usato per aggiungere l'asta

Vantaggi della Soluzione

?? 1. UX Chiara

  • ? Prima: Campo editabile ma funzionalità non implementata
  • ? Dopo: Campo read-only, comportamento chiaro

?? 2. Nessuna Confusione

  • ? Prima: Pulsante "Vai" che non faceva nulla
  • ? Dopo: Solo funzionalità implementate visibili

?? 3. Visualizzazione Sempre Aggiornata

  • ? URL aggiornato automaticamente ad ogni navigazione
  • ? Sincronizzato con WebView2

?? 4. Preparato per Futuro

Se in futuro si implementa la navigazione manuale:

  • Basta rimuovere IsReadOnly="True"
  • Ri-aggiungere pulsante "Vai"
  • Tutto il resto già funziona

File Modificati

1. ? Controls\BrowserControl.xaml

Modifiche:

  • Aggiunto IsReadOnly="True" a BrowserAddress
  • Aggiunto Cursor="Arrow" per UX migliore
  • Aggiunto ToolTip esplicativo
  • Rimosso pulsante "Vai" (BrowserGoButton)

Prima:

<TextBox x:Name="BrowserAddress" ... />
<Button x:Name="BrowserGoButton" Content="Vai" Click="BrowserGoButton_Click"/>
<Button x:Name="BrowserAddAuctionButton" Content="Aggiungi Asta" .../>

Dopo:

<TextBox x:Name="BrowserAddress" IsReadOnly="True" Cursor="Arrow" ToolTip="..." />
<Button x:Name="BrowserAddAuctionButton" Content="Aggiungi Asta" .../>

2. ? Controls\BrowserControl.xaml.cs

Modifiche:

  • Rimosso metodo BrowserGoButton_Click
  • Evento BrowserGoClickedEvent lasciato per compatibilità (non usato)

3. ? Core\EventHandlers\MainWindow.EventHandlers.Browser.cs

Modifiche:

  • Rimosso gestore BrowserGoButton_Click
  • Mantenuti gestori NavigationStarting e NavigationCompleted

4. ? MainWindow.xaml

Modifiche:

  • Rimosso binding BrowserGoClicked="Browser_BrowserGoClicked"

Layout Browser

Toolbar Nuovo

??????????????????????????????????????????????????????????????
? [Indietro] [Avanti] [Ricarica] [Home]  ?URL?  [Aggiungi]  ?
??????????????????????????????????????????????????????????????

Prima:

[Indietro] [Avanti] [Ricarica] [Home] [URL editabile] [Vai] [Aggiungi]

Dopo:

[Indietro] [Avanti] [Ricarica] [Home] [URL read-only] [Aggiungi Asta]

Note Tecniche

Perché IsReadOnly invece di Disabilitato?

Proprietà Effetto Pro Contro
IsEnabled="False" ? Disabilitato Chiaro che non è usabile Testo grigio, difficile da leggere
IsReadOnly="True" ? Read-only Testo leggibile, copiabile Potrebbe sembrare editabile

Scelta: IsReadOnly="True" + Cursor="Arrow" + ToolTip

  • ? Testo leggibile e copiabile
  • ? Cursore chiarisce che non è editabile
  • ? Tooltip spiega il comportamento

Aggiornamento URL

L'URL viene aggiornato in 2 eventi:

  1. NavigationStarting: Quando inizia la navigazione

    BrowserAddress.Text = e.Uri ?? string.Empty;
    
  2. NavigationCompleted: Quando la navigazione finisce

    BrowserAddress.Text = EmbeddedWebView?.Source?.ToString() ?? BrowserAddress.Text;
    

Perché entrambi?

  • NavigationStarting: Mostra subito dove stai andando
  • NavigationCompleted: Aggiorna con URL finale (dopo redirect)

Funzionalità Future

Se si vuole Navigazione Manuale

  1. Rimuovi IsReadOnly="True" da BrowserAddress
  2. Ri-aggiungi pulsante "Vai":
    <Button Content="Vai" Click="BrowserGoButton_Click"/>
    
  3. Implementa gestore:
    private void BrowserGoButton_Click(...)
    {
        var url = BrowserAddress.Text?.Trim();
        if (!url.StartsWith("http")) url = "https://" + url;
        EmbeddedWebView?.CoreWebView2?.Navigate(url);
    }
    

Se si vuole Autocompletamento

  1. Sostituisci TextBox con ComboBox editabile
  2. Popola con cronologia navigazione
  3. Usa IsEditable="True" + suggerimenti

? Test di Verifica

  • URL visibile nel campo in alto
  • URL si aggiorna automaticamente
  • Campo non editabile (IsReadOnly)
  • Cursore freccia (non testo)
  • Tooltip informativo
  • Pulsante "Vai" rimosso
  • Pulsante "Aggiungi Asta" funziona
  • Navigazione con Indietro/Avanti funziona
  • URL copiabile con Ctrl+C

Data Fix: 2025
Versione: 4.0+
Issue: URL Browser non visibile e editabile
Status: ? RISOLTO

Prima:

  • ? URL non sempre visibile
  • ? Campo editabile (ma non funzionante)
  • ? Pulsante "Vai" non implementato

Dopo:

  • ? URL sempre visibile e aggiornato
  • ? Campo read-only (chiaro e leggibile)
  • ? Solo funzionalità implementate disponibili
  • ? UX pulita e coerente