From f8af7c036f1bbba82831e1a39b299a7413dd89c8 Mon Sep 17 00:00:00 2001 From: Martin <martin.hogstedt@hotmail.com> Date: Tue, 2 Jul 2024 13:32:35 +0200 Subject: [PATCH] editing memory now takes bit length into account for negative values aswell. Fixed type and tells the user size of memory addresses when input doesnt fit --- .../module_graphics_item/integer_memory_graphic.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/simudator/gui/module_graphics_item/integer_memory_graphic.py b/src/simudator/gui/module_graphics_item/integer_memory_graphic.py index ecf598b..a177b62 100644 --- a/src/simudator/gui/module_graphics_item/integer_memory_graphic.py +++ b/src/simudator/gui/module_graphics_item/integer_memory_graphic.py @@ -17,7 +17,7 @@ class Base(Enum): HEXADECIMAL = 4 -class ValueToBig(Exception): +class ValueTooBig(Exception): """ A class representing the error of a user inputting a value that does not fit in the memory. @@ -199,6 +199,7 @@ class IntegerMemoryTable(MemoryTable): item = self.item(row, col) value = item.text() max_value = 2**self._bit_length + min_value = -(2 ** (self._bit_length - 1)) # Turn every value into a positive int # in base 10 @@ -216,8 +217,8 @@ class IntegerMemoryTable(MemoryTable): ): value = int(value) - if value > max_value: - raise ValueToBig + if value > max_value or value < min_value: + raise ValueTooBig except ValueError: msg = None @@ -233,9 +234,9 @@ class IntegerMemoryTable(MemoryTable): self.update() return - except ValueToBig: + except ValueTooBig: self._errorMessageWidget.showMessage( - "Input value does not fit within the bit length." + f"Input value does not fit within the bit length of {self._bit_length}." ) self.update() return -- GitLab