From e4386e20a3d6ee8582f36b8ddffc9fdf0e2ba36f Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Fri, 20 Oct 2023 11:45:28 +0200
Subject: [PATCH] Network: Fix item selection.

---
 src/View/Network/GraphWidget.py | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/View/Network/GraphWidget.py b/src/View/Network/GraphWidget.py
index 9c24b4f0..ade0eaff 100644
--- a/src/View/Network/GraphWidget.py
+++ b/src/View/Network/GraphWidget.py
@@ -442,7 +442,7 @@ class GraphWidget(QGraphicsView):
             Nothing
         """
         for i in self.texts:
-            if i is NodeItem:
+            if type(i) is NodeItem:
                 self.texts[i].rename()
 
     def enable_edge(self, edge, prev):
@@ -699,11 +699,11 @@ class GraphWidget(QGraphicsView):
             self._selected_new_edge_src_node = None
 
             items = self.items(event.pos())
-            if items and items[0] is EdgeItem:
+            if items and type(items[0]) is EdgeItem:
                 edge = items[0]
                 if edge:
                     self.set_current_edge(edge)
-            elif items and items[0] is NodeItem:
+            elif items and type(items[0]) is NodeItem:
                 self._mouse_origin_x = pos.x()
                 self._mouse_origin_y = pos.y()
                 self._current_moved_node = items[0]
@@ -711,7 +711,7 @@ class GraphWidget(QGraphicsView):
         # Add nodes and edges
         elif self._state == "add":
             items = self.items(event.pos())
-            nodes = list(filter(lambda i: i is NodeItem, items))
+            nodes = list(filter(lambda i: type(i) is NodeItem, items))
             if not nodes:
                 self.add_node(pos)
             else:
@@ -725,15 +725,15 @@ class GraphWidget(QGraphicsView):
             self._selected_new_edge_src_node = None
             items = list(
                 filter(
-                    lambda i: i is NodeItem or i is EdgeItem,
+                    lambda i: type(i) is NodeItem or type(i) is EdgeItem,
                     self.items(event.pos())
                 )
             )
             if len(items) > 0:
                 item = items[0]
-                if item is NodeItem:
+                if type(item) is NodeItem:
                     self.del_node(item)
-                elif item is EdgeItem:
+                elif type(item) is EdgeItem:
                     self.del_edge(item)
 
         self.update()
@@ -767,7 +767,7 @@ class GraphWidget(QGraphicsView):
         items = self.items(event.pos())
         selectable_items = list(
             filter(
-                lambda i: (i is NodeItem or i is EdgeItem),
+                lambda i: (type(i) is NodeItem or type(i) is EdgeItem),
                 items
             )
         )
@@ -858,7 +858,7 @@ class GraphWidget(QGraphicsView):
         menu = QMenu(self)
         if len(items) == 0:
             self._menu_default(event, pos, items, menu)
-        elif items[0] is NodeItem:
+        elif type(items[0]) is NodeItem:
             self._menu_node(event, pos, items, menu)
-        elif items[0] is EdgeItem:
+        elif type(items[0]) is EdgeItem:
             self._menu_edge(event, pos, items, menu)
-- 
GitLab