Crash in der config.py bei Verwendung von ConfigNumber.addNotifier und Löschen des Wertes mit der Mute-Taste

  • Hallo


    @Reichi
    Bei Verwendung von ConfigNumber.addNotifier kommt es im AutotimerEditor (ConfigListScreen) zum Crash in der config.py,
    wenn man bei ausgewählten/markierten ConfigNumber-Wert auf die Mute-Taste oder Delete rechts/links drückt.


    Schritte zum Reproduzieren:
    1. AT-Plugin öffnen
    2. einen Autotimer öffnen/bearbeiten
    3. mit Pfeil runter bis der Wert für "x mal aufnehmen" ausgewählt ist
    4. Mute-Taste oder Löschen links/rechts drücken
    5. GS mit nachfolgendem Inhalt:

    Da müsste vor der Zeile 1159 in der config.py wohl irgendwie noch der Default-Wert gesetzt werden, bevor er mit ' ' weiterarbeiten will.
    Folgende Änderung der config.py (zusätzliche Zeile 1159 + 1160) löst das Problem, nur weiß ich nicht, ob das die beste Lösung ist :winking_face:

    Python: config.py (Components)
    class ConfigNumber(ConfigText):
    	def __init__(self, default = 0):
    		ConfigText.__init__(self, str(default), fixed_size = False)
    
    
    	def getValue(self):
    		if self.text == "":
    			self.text = self.default
    		return int(self.text)

    Wenn ich das addNotifier für diesen Config-Eintrag deaktiviere, gibt es beim Löschen mit der Mute-Taste auch ohne Änderung der config.py keinen Crash und der Wert wird brav auf "0" gesetzt.
    Der Crash passiert nur in Verbindung mit dem addNotifier.


    Hier wird der Configeintrag für ConfigNumber im AT festgelegt:
    https://github.com/opendreambo…c/AutoTimerEditor.py#L309


    und hier ist das addNotifier dazu:
    https://github.com/opendreambo…c/AutoTimerEditor.py#L449


    Der Code gelangt dann beim Löschen mit der Mute-Taste gar nicht mehr in die Callbackfunction (self.reloadList), weil es vorher crashed.


    Hab jetzt im AT keine Möglichkeit gefunden, das abzufangen.
    Ist da evtl. der Code im AT doch etwas fehlerhaft oder muss das tatsächlich in etwa wie oben in der config.py abgefangen werden?


    Danke schon mal.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

    2 Mal editiert, zuletzt von Sven H ()