Listbox_Click, Message.Question, Listbox.Remove

OpenSUSE-KDE-Plasma Gambas 3.19.3 qt5

Een eigenaardig feonomeen: ik laat de gebruiker op de listbox klikken, waarop gevraagd wordt of hij de betreffende listbox lijn (aangeduid door Listbox.index) wil verwijderen. Zo ja, verwijder ik die met Listbox.Remove(Listbox.Index).

Mijn voorbeeld: de listbox (Mode: Single) bevat 1 lijn. Ik klik op knop 1.

Code:

Public Sub lsbxError_Click()
  Dim i As Integer
'  
  i = Message.Question(lsbxError.Index & ": " & lsbxError.Text, "Clear", "Clear All", "Cancel")
  Debug i
  Select i 
    Case 1
      lsbxError.Remove(lsbxError.Index)
    Case 2
      lsbxError.Clear
    Case 3
    ' else do nothing
  End Select
'
End

Na het verwijderen van de lijn krijg ik een nieuwe vraag met een lege tekst en als index -1. Als je nog eens op Clear klikt, krijg je een foutmelding Out of bounds
.. op de lijn van de Remove; het gaat blijkbaar over de index.

Ik merk op (bij meer elementen) dat de listbox na het verwijderen een ander item selecteert (zonder dat ik dat expliciet vraag), dat ik dan ook niet meer kan kiezen voor verwijderen.
Ik kan de fout blijkbaar vermijden door een “unselect” toe te voegen:

Public Sub lsbxError_Click()
  Dim i As Integer
  '
  i = Message.Question(lsbxError.Index & ": " & lsbxError.Text, "Clear", "Clear All", "Cancel")
  Debug i
  Select i 
    Case 1
      lsbxError.Remove(lsbxError.Index)
      lsbxError.UnselectAll()
    Case 2
      lsbxError.Clear
    Case 3
    ' else do nothing
  End Select
'
End

en de “index” fout kan ik vermijden door op voorhand een voorwaarde toe te voegen:

Public Sub lsbxLog_Click()
  Dim i As Integer
  
  Debug lsbxLog.Index
  If lsbxLog.Index >= 0 Then
    i = Message.Question(lsbxLog.Text, "Clear", "Clear All", "Cancel")
    Select i
      Case 1
        lsbxLog.Remove(lsbxLog.Index)
        lsbxLog.UnselectAll()
      Case 2
        lsbxLog.Clear
      Case Else
        ' else do nothing
    End Select
  Endif
  
End

Raspbian 11: $EDITOR gezocht

Editor of $EDITOR?
Een van de eerste dingen die opvallen na installatie van Gambas3 op de Raspberry Pi met OS Raspbian GNU/Linux 11 is dat Gambas naar de “Editor” vraagt bij het openen van een bestaand (git-)project:

Please set the $EDITOR environment variable with your favorite graphical text editor. Some version control commands need it

Dit heb ik opgelost door de volgende lijn toe te voegen aan /etc/profile.
export EDITOR=/usr/bin/mcedit

Select-editor
De .bashrc oplossing zoals andere Linux distributies (bv OpenSUSE Gambas opstart set $Editor) werkt hier niet op Raspbian.
De Raspberry Pi heeft zijn eigen tool voor het instellen van de editor (waarvan het resultaat niet herkend werd door Gambas), het commando

select-editor.

Daarna krijg je een keuzemenu met genummerde mogelijkheden, en kan je met een cijfer je keuze maken, bv 1. Nano.
Als je zelf bv al midnight commander geïnstalleerd had, komt mcedit ook voor in de keuzelijst.
Select-editor toont helaas niet wat de huidige keuze is.
Na de keuze zet select-editor een verborgen bestand .selected_editor in je home direoctory, met daarin
SELECTED_EDITOR="/usr/bin/mcedit"
Ik vermoed dat het bij de volgende start/login gelezen wordt.

Of toch niet?
Maar Gambas blijft de $EDITOR variabele vragen, zelfs na de volgende login. 
Ik weet dat de keuze aktief is door een test met crontab -e.

Het bestand ~/.bashrc bestaat ook hier, en ik voeg toe: 
EXPORT EDITOR=/usr/bin/mcedit
maar op geen enkele manier (met aanhalingstekens, zonder, met $, zonder..) werkt dat.
(m.a.w. Gambas3 blijft de vraag stellen).

Ik probeer de volgende lijn  toe te voegen aan /etc/profile:
export EDITOR=/usr/bin/mcedit
(sudo nodig).

Na herstarten op de commandline 
echo $EDITOR
/usr/bin/mcedit

Deze keer ok!