Autore Topic: Comboseek: una casella combinata che ricerca nell'elenco digitato.  (Letto 635 volte)

Offline shordi

  • Gamberetto
  • *
  • Post: 39
    • Mostra profilo
Ieri ho scoperto che, non sapendo quale versione, il controllo della combobox è stato riscritto in gambas3. Da lì è stato facile modificare questo controllo per creare una casella combinata che viene visualizzata durante la digitazione e ricerca nell'elenco la corrispondenza più vicina al testo digitato, passando il valore selezionato quando si preme invio.
La ricerca è sfocata, quindi non importa se l'elenco è ordinato o meno (non sono sicuro se questo sia preferibile alla ricerca sempre in sequenza... ma penso che lo sia).

L'indizio di dove guardare mi è stato dato dal grande Gianluigi e da qui lo ringrazio.

Come sempre è molto poco testato, che l'impazienza di portarlo qui può farmi venire, quindi se lo provi e trovi dei bug te ne sarò eternamente grato.

Spero che vi piaccia e/o che vi sia utile.

Saluti
« Ultima modifica: 23 Giugno 2022, 10:21:20 da shordi »
Non possiamo tornare

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Comboseeker: una casella combinata che ricerca nell'elenco digitato.
« Risposta #1 il: 17 Giugno 2022, 13:58:06 »
Scaricato grazie  :)
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Comboseeker: una casella combinata che ricerca nell'elenco digitato.
« Risposta #2 il: 18 Giugno 2022, 14:27:22 »
Come sempre è molto poco testato, che l'impazienza di portarlo qui può farmi venire, quindi se lo provi e trovi dei bug te ne sarò eternamente grato.

Spero che vi piaccia e/o che vi sia utile.

Saluti

Per quello che l'ho potuto provare, funziona benissimo, anche se il modo in cui fa la ricerca mi spiazza un pochino.

Mi piace  :ok:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline shordi

  • Gamberetto
  • *
  • Post: 39
    • Mostra profilo
Re:Comboseeker: una casella combinata che ricerca nell'elenco digitato.
« Risposta #3 il: 18 Giugno 2022, 20:32:42 »
Purtroppo noto che funziona solo con QT. Non so cosa c'è di sbagliato in GTK che non consente di digitare nella combobox interna del combo. Mi dicono anche che con XFACE desktop l'elenco viene spostato dalla combobox. Non l'ho ancora provato ma tutto questo mi infastidisce: il codice che utilizzo è lo stesso che arriva nei sorgenti gambas3 scaricati da github, modificando solo la visibilità di alcuni oggetti e il comportamento degli eventi keypress e keyrelease. Non ha niente a che fare con tutto il resto... non funziona. :evil: :evil: :evil:
Non possiamo tornare

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Comboseeker: una casella combinata che ricerca nell'elenco digitato.
« Risposta #4 il: 18 Giugno 2022, 23:02:50 »
Purtroppo noto che funziona solo con QT. Non so cosa c'è di sbagliato in GTK che non consente di digitare nella combobox interna del combo. Mi dicono anche che con XFACE desktop l'elenco viene spostato dalla combobox. Non l'ho ancora provato ma tutto questo mi infastidisce: il codice che utilizzo è lo stesso che arriva nei sorgenti gambas3 scaricati da github, modificando solo la visibilità di alcuni oggetti e il comportamento degli eventi keypress e keyrelease. Non ha niente a che fare con tutto il resto... non funziona. :evil: :evil: :evil:

Su Ubuntu 20.04 funziona allo stesso modo sia con gb.gui.qt che con gb.gui o gb.gtk3.
L'unica cosa che ho notato è che se ti sposti col mouse sulla lista questa a sua volta si sposta nascondendo la voce trovata, ma accade con tutti i componenti anche qt.

Domani provo su una xubuntu e ti relaziono

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Comboseeker: una casella combinata che ricerca nell'elenco digitato.
« Risposta #5 il: 19 Giugno 2022, 12:22:56 »
Purtroppo noto che funziona solo con QT. Non so cosa c'è di sbagliato in GTK che non consente di digitare nella combobox interna del combo. Mi dicono anche che con XFACE desktop l'elenco viene spostato dalla combobox. Non l'ho ancora provato ma tutto questo mi infastidisce: il codice che utilizzo è lo stesso che arriva nei sorgenti gambas3 scaricati da github, modificando solo la visibilità di alcuni oggetti e il comportamento degli eventi keypress e keyrelease. Non ha niente a che fare con tutto il resto... non funziona. :evil: :evil: :evil:

Ho fatto un po di prove, il problema con le gtk esiste solo con la stabile se si usa la master il tuo progetto funziona bene.  :ok:
Occorre attendere oppure chiedere a Benoit di aggiornare la stabile.

Io preferisco la ricerca così (vedi progetto allegato) forse potresti inserire una nuova proprietà con più scelte da poter passare alla finestra popup con Open

 :ciao:
« Ultima modifica: 19 Giugno 2022, 19:00:58 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline shordi

  • Gamberetto
  • *
  • Post: 39
    • Mostra profilo
Re:Comboseeker: una casella combinata che ricerca nell'elenco digitato.
« Risposta #6 il: 19 Giugno 2022, 20:10:05 »
È un sollievo per GTK. Devo ancora testare il risultato sui desktop XFACE, che mi dicono che l'elenco è stato spostato.

Ti confesso che questa ricerca da te proposta era quella che usavo nel primo schizzo del controllo, ma poi ho pensato che forse era più "elastica" se si faceva il contrario. Tuttavia, penso che tu abbia ragione. Cerca sempre per stringa iniziale dà più sicurezza quando hai trovato l'oggetto che stai cercando e quando no.
Penso che userò la tua proposta.

Grazie mille per l'interessamento e la collaborazione.

Saluti
Non possiamo tornare

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Comboseeker: una casella combinata che ricerca nell'elenco digitato.
« Risposta #7 il: 19 Giugno 2022, 22:53:01 »
È un sollievo per GTK. Devo ancora testare il risultato sui desktop XFACE, che mi dicono che l'elenco è stato spostato.
Se ti riferisci a XFCE l'ho provato su Xubuntu 20.04, con la stabile e le gtk non funziona ma con le QT va alla grande.
Vedi immagini allegate
Citazione
Ti confesso che questa ricerca da te proposta era quella che usavo nel primo schizzo del controllo, ma poi ho pensato che forse era più "elastica" se si faceva il contrario. Tuttavia, penso che tu abbia ragione. Cerca sempre per stringa iniziale dà più sicurezza quando hai trovato l'oggetto che stai cercando e quando no.
Penso che userò la tua proposta.

Grazie mille per l'interessamento e la collaborazione.

Saluti

Figurati, sono interessato anche io e mi fa piacere imparare nuovi trucchi dal maestro  :)

 :ciao:

PS Ricorda che se uno ha una versione con ancora il vecchio ComboBox è normale che non funzioni in quel caso forse ComboFind potrebbe...
« Ultima modifica: 19 Giugno 2022, 22:55:57 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline shordi

  • Gamberetto
  • *
  • Post: 39
    • Mostra profilo
Re:Comboseeker: una casella combinata che ricerca nell'elenco digitato.
« Risposta #8 il: 21 Giugno 2022, 08:40:16 »
Grazie Vuott, ieri non ho avuto tempo di aggiornare qui. Le nuove modifiche sono:
-Ho aggiunto più comportamenti alla tastiera (up, down, pgUp, pgDown), che non erano stati considerati in precedenza.
-Ho adattato la modalità .Readonly, che penso funzioni bene ora.
-Ho impostato la modalità suggerita da GianLuigi per cercare solo l'inizio delle voci. È più "umano".
-Ho cambiato il nome in ComboSeek, che è più breve e significa la stessa cosa.
A parte le modifiche, l'ho provato nelle diverse versioni di Ubuntu e Debian e con le diverse librerie GTK e QT... e la parte interna funziona bene in tutte (l'elenco appare al suo posto, quello che viene digitato è visualizzato nella casella di testo e la ricerca è riuscita) ma il display non lo è. In alcuni il pulsante con la freccia non viene disegnato e sembra una casella di testo e in altri non viene disegnato nulla e sembra che tu stia scrivendo direttamente in un pannello.
Questo mi porta ad ammirare ancora di più Benoît, che riesce a far funzionare bene Gambas in tutti gli ambienti.
Vorrei poter presentare questo controllo come valido per tutti gli utenti Gambas3... ma temo che rimarrà una cosa "casalinga" se qualcuno con più conoscenze di me non affronta il problema.

Hai anche la nuova versione al Gambas Farm.

Saluti
Non possiamo tornare

Offline shordi

  • Gamberetto
  • *
  • Post: 39
    • Mostra profilo
Re:Comboseek: una casella combinata che ricerca nell'elenco digitato.
« Risposta #9 il: 21 Giugno 2022, 10:09:01 »
P.S.: Vecchio come me, ieri ho fatto un pasticcio con le versioni e ho caricato la penultima invece dell'ultima. Ho caricato il numero, l'ultimo è 0.1.3 e l'ho aggiornato nell'intestazione di questo thread e nella Farm.
Mi scuso se questo ha causato problemi.
Non possiamo tornare

Offline shordi

  • Gamberetto
  • *
  • Post: 39
    • Mostra profilo
Re:Comboseek: una casella combinata che ricerca nell'elenco digitato.
« Risposta #10 il: 21 Giugno 2022, 10:39:22 »
Visto l'errore e il disastro di cui vi ho parlato sopra (versione errata: caricata sul forum spagnolo, caricata sulla farm, caricata sul forum italiano, scusate ovunque, ecc.  :evil: :evil:) ho deciso di caricarla su gitlab:
https://gitlab.com/shordi/ComboSeek

D'ora in poi se ci sono modifiche le metterò solo lì e così saprai sempre che se le scarichi da lì hai l'ultima versione.
Naturalmente, se qualcuno vuole collaborare, Gitlab è stato inventato per questo.

Saluti
Non possiamo tornare

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Comboseek: una casella combinata che ricerca nell'elenco digitato.
« Risposta #11 il: 22 Giugno 2022, 11:16:36 »
Visto l'errore e il disastro di cui vi ho parlato sopra (versione errata: caricata sul forum spagnolo, caricata sulla farm, caricata sul forum italiano, scusate ovunque, ecc.  :evil: :evil:) ho deciso di caricarla su gitlab:
https://gitlab.com/shordi/ComboSeek
:D
Citazione
D'ora in poi se ci sono modifiche le metterò solo lì e così saprai sempre che se le scarichi da lì hai l'ultima versione.
Naturalmente, se qualcuno vuole collaborare, Gitlab è stato inventato per questo.

Saluti

 :ok:

Volevo segnalare anche qui che dall'ultima versione Master:
https://www.gambas-it.org/smf/index.php?topic=9272.msg51840#msg51840
Benoit ha aggiunto questo nuovo comportamento, occorre cliccare sulla freccia e digitare quello che cerchi (funziona bene solo con le QT).

Forse può ispirarti qualcosa...
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Comboseek: una casella combinata che ricerca nell'elenco digitato.
« Risposta #12 il: 22 Giugno 2022, 12:07:54 »

Benoit ha aggiunto questo nuovo comportamento, occorre cliccare sulla freccia e digitare quello che cerchi (funziona bene solo con le QT).


"...occorre cliccare sulla freccia e digitare quello che cerchi". Cosa deve succedere? Perchè a me (QT5) non succede niente!
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Comboseek: una casella combinata che ricerca nell'elenco digitato.
« Risposta #13 il: 22 Giugno 2022, 12:11:27 »
 ;D
Ho capito, si evidenzia la voce nella Popup list!
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Comboseek: una casella combinata che ricerca nell'elenco digitato.
« Risposta #14 il: 22 Giugno 2022, 12:15:45 »
;D
Ho capito, si evidenzia la voce nella Popup list!
 :ciao:

 ;D si, anch'io ci ho messo un po a capire come funzionava  :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro