From 627639cbbfc56c64a2e30112d7d73324e2266e1b Mon Sep 17 00:00:00 2001
From: Martin <martin.hogstedt@hotmail.com>
Date: Tue, 2 Jul 2024 09:17:01 +0200
Subject: [PATCH] added error msg box to grx and it now handles incorrect input
 instead of crashing

---
 .../gui/module_graphics_item/module_graphics_item.py   |  4 ++++
 src/simudator/processor/mia/gui/mia_grx_graphic.py     | 10 ++++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/simudator/gui/module_graphics_item/module_graphics_item.py b/src/simudator/gui/module_graphics_item/module_graphics_item.py
index 30ae67a..320ae76 100644
--- a/src/simudator/gui/module_graphics_item/module_graphics_item.py
+++ b/src/simudator/gui/module_graphics_item/module_graphics_item.py
@@ -185,6 +185,10 @@ class ModuleGraphicsItem(QGraphicsObject, QGraphicsItem):
             parsed_value = ast.literal_eval(value)
         except SyntaxError as e:
             self.errorMessageWidget.showMessage(str(e))
+        except ValueError as e:
+            self.errorMessageWidget.showMessage(
+                "Value Error. Unable to parse input. Make sure it is in the correct base."
+            )
         else:
             module_state = self.module.get_state()
             module_state[state] = parsed_value
diff --git a/src/simudator/processor/mia/gui/mia_grx_graphic.py b/src/simudator/processor/mia/gui/mia_grx_graphic.py
index d7d9429..2f978eb 100644
--- a/src/simudator/processor/mia/gui/mia_grx_graphic.py
+++ b/src/simudator/processor/mia/gui/mia_grx_graphic.py
@@ -3,6 +3,7 @@ import math
 from qtpy.QtCore import QPointF
 from qtpy.QtGui import QPolygonF
 from qtpy.QtWidgets import (
+    QErrorMessage,
     QGraphicsLineItem,
     QGraphicsPolygonItem,
     QGraphicsRectItem,
@@ -32,6 +33,7 @@ class GrxGraphicsItem(ModuleGraphicsItem):
 
     def __init__(self, module: GRX):
         self.register_text_labels = []
+        self.errorMessageWidget = QErrorMessage()
         super().__init__(module)
 
     def draw_graphics_item(self):
@@ -126,14 +128,18 @@ class GrxGraphicsItem(ModuleGraphicsItem):
         )
 
         # Add ports to and from bus
-        from_bus_port = PortGraphicsItem(self.module.signals["in_input"], Orientation.RIGHT, self)
+        from_bus_port = PortGraphicsItem(
+            self.module.signals["in_input"], Orientation.RIGHT, self
+        )
         from_bus_port.setPos(
             rect_width + self.LINE_LENGTH + self.MUX_WIDTH,
             # Use the buses port margins so the ports align nicely
             mux_height / 2 - BusGraphicsItem.PORT_MARGIN / 2,
         )
 
-        to_bus_port = PortGraphicsItem(self.module.signals["out_content"], Orientation.RIGHT, self)
+        to_bus_port = PortGraphicsItem(
+            self.module.signals["out_content"], Orientation.RIGHT, self
+        )
         to_bus_port.setPos(
             rect_width + self.LINE_LENGTH + self.MUX_WIDTH,
             # Use the buses port margins so the ports align nicely
-- 
GitLab