From c0ede2f53b8105d227e67d4943a0678154d63b89 Mon Sep 17 00:00:00 2001 From: flux Date: Sun, 22 Sep 2024 20:42:16 +0100 Subject: [PATCH 1/3] use current state flashing and color props on replace When using replace update method the default flashing, mask and color props are empty or none. This causes the text not to displayed or flashed when it shouldn't be. This update uses the current state's settings for new text if none are set. --- mpf/devices/segment_display/segment_display.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mpf/devices/segment_display/segment_display.py b/mpf/devices/segment_display/segment_display.py index 98a8c4344..d4a36888b 100644 --- a/mpf/devices/segment_display/segment_display.py +++ b/mpf/devices/segment_display/segment_display.py @@ -155,6 +155,13 @@ def add_text_entry(self, text, color, flashing, flash_mask, transition, transiti raise ValueError(f"Unknown update_method '{self.config['update_method']}' for segment display {self.name}") # For the replace-text update method, skip the stack and write straight to the display + if flashing is None: + flashing = self._current_state.flashing + if flash_mask is None: + flash_mask = self._current_state.flash_mask + if not color: + color = self._current_state.text.get_colors() + new_text = TextTemplate(self.machine, text).evaluate({}) text = SegmentDisplayText.from_str(new_text, self.size, self.config['integrated_dots'], self.config['integrated_commas'], self.config['use_dots_for_commas'], From 5d57b8cb90b24e5cdbb57d20364976b60dbb5ded Mon Sep 17 00:00:00 2001 From: flux Date: Sun, 22 Sep 2024 20:43:49 +0100 Subject: [PATCH 2/3] Removes the text from the display if update method is not stack --- mpf/devices/segment_display/segment_display.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpf/devices/segment_display/segment_display.py b/mpf/devices/segment_display/segment_display.py index d4a36888b..bd12afb40 100644 --- a/mpf/devices/segment_display/segment_display.py +++ b/mpf/devices/segment_display/segment_display.py @@ -178,7 +178,7 @@ def add_text(self, text: str, priority: int = 0, key: str = None) -> None: def remove_text_by_key(self, key: Optional[str]): """Remove entry from text stack.""" if self.config['update_method'] != "stack": - self.info_log("Segment display 'remove' action is TBD.") + self.add_text("") return if key in self._text_stack: From f7cfee43f6e9692bc3ee9aec418c6a3c79609da9 Mon Sep 17 00:00:00 2001 From: flux Date: Mon, 23 Sep 2024 16:05:50 +0100 Subject: [PATCH 3/3] linter errors --- mpf/devices/segment_display/segment_display.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpf/devices/segment_display/segment_display.py b/mpf/devices/segment_display/segment_display.py index bd12afb40..ecaf3b517 100644 --- a/mpf/devices/segment_display/segment_display.py +++ b/mpf/devices/segment_display/segment_display.py @@ -161,7 +161,7 @@ def add_text_entry(self, text, color, flashing, flash_mask, transition, transiti flash_mask = self._current_state.flash_mask if not color: color = self._current_state.text.get_colors() - + new_text = TextTemplate(self.machine, text).evaluate({}) text = SegmentDisplayText.from_str(new_text, self.size, self.config['integrated_dots'], self.config['integrated_commas'], self.config['use_dots_for_commas'],