mirror of https://gitlab.com/pamhyr/pamhyr2
Network: Fix reach selection where the study is read only.
parent
64d2b2678a
commit
e26b170b05
|
|
@ -925,9 +925,11 @@ class GraphWidget(QGraphicsView):
|
||||||
self.scale(scaleFactor, scaleFactor)
|
self.scale(scaleFactor, scaleFactor)
|
||||||
|
|
||||||
def mousePressEvent(self, event):
|
def mousePressEvent(self, event):
|
||||||
if self._only_display or self.graph._status.is_read_only():
|
if self._only_display:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
locked = self.graph._status.is_read_only()
|
||||||
|
|
||||||
pos = self.mapToScene(event.pos())
|
pos = self.mapToScene(event.pos())
|
||||||
self.clicked = True
|
self.clicked = True
|
||||||
|
|
||||||
|
|
@ -936,9 +938,6 @@ class GraphWidget(QGraphicsView):
|
||||||
super(GraphWidget, self).mousePressEvent(event)
|
super(GraphWidget, self).mousePressEvent(event)
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.graph._status.is_read_only():
|
|
||||||
return
|
|
||||||
|
|
||||||
# Move item and select edge item
|
# Move item and select edge item
|
||||||
if self._state == "move":
|
if self._state == "move":
|
||||||
self._selected_new_edge_src_node = None
|
self._selected_new_edge_src_node = None
|
||||||
|
|
@ -948,39 +947,41 @@ class GraphWidget(QGraphicsView):
|
||||||
edge = items[0]
|
edge = items[0]
|
||||||
if edge:
|
if edge:
|
||||||
self.set_current_edge(edge)
|
self.set_current_edge(edge)
|
||||||
elif items and type(items[0]) is NodeItem:
|
if not locked:
|
||||||
self._mouse_origin_x = pos.x()
|
if items and type(items[0]) is NodeItem:
|
||||||
self._mouse_origin_y = pos.y()
|
self._mouse_origin_x = pos.x()
|
||||||
self._current_moved_node = items[0]
|
self._mouse_origin_y = pos.y()
|
||||||
|
self._current_moved_node = items[0]
|
||||||
|
|
||||||
# Add nodes and edges
|
if not locked:
|
||||||
elif self._state == "add":
|
# Add nodes and edges
|
||||||
items = self.items(event.pos())
|
if self._state == "add":
|
||||||
nodes = list(filter(lambda i: type(i) is NodeItem, items))
|
items = self.items(event.pos())
|
||||||
if not nodes:
|
nodes = list(filter(lambda i: type(i) is NodeItem, items))
|
||||||
self.add_node(pos)
|
if not nodes:
|
||||||
self.set_selected_new_edge_src_node(None)
|
self.add_node(pos)
|
||||||
else:
|
self.set_selected_new_edge_src_node(None)
|
||||||
if self.selected_new_edge_src_node() is None:
|
|
||||||
self.set_selected_new_edge_src_node(nodes[0])
|
|
||||||
else:
|
else:
|
||||||
self.add_edge(self.selected_new_edge_src_node(), nodes[0])
|
if self.selected_new_edge_src_node() is None:
|
||||||
|
self.set_selected_new_edge_src_node(nodes[0])
|
||||||
|
else:
|
||||||
|
self.add_edge(self.selected_new_edge_src_node(), nodes[0])
|
||||||
|
|
||||||
# Delete nodes and edges
|
# Delete nodes and edges
|
||||||
elif self._state == "del":
|
elif self._state == "del":
|
||||||
self._selected_new_edge_src_node = None
|
self._selected_new_edge_src_node = None
|
||||||
items = list(
|
items = list(
|
||||||
filter(
|
filter(
|
||||||
lambda i: type(i) is NodeItem or type(i) is EdgeItem,
|
lambda i: type(i) is NodeItem or type(i) is EdgeItem,
|
||||||
self.items(event.pos())
|
self.items(event.pos())
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
if len(items) > 0:
|
||||||
if len(items) > 0:
|
item = items[0]
|
||||||
item = items[0]
|
if type(item) is NodeItem:
|
||||||
if type(item) is NodeItem:
|
self.del_node(item)
|
||||||
self.del_node(item)
|
elif type(item) is EdgeItem:
|
||||||
elif type(item) is EdgeItem:
|
self.del_edge(item)
|
||||||
self.del_edge(item)
|
|
||||||
|
|
||||||
self.update()
|
self.update()
|
||||||
super(GraphWidget, self).mousePressEvent(event)
|
super(GraphWidget, self).mousePressEvent(event)
|
||||||
|
|
@ -988,10 +989,12 @@ class GraphWidget(QGraphicsView):
|
||||||
def mouseReleaseEvent(self, event):
|
def mouseReleaseEvent(self, event):
|
||||||
self.clicked = False
|
self.clicked = False
|
||||||
|
|
||||||
if self._only_display or self.graph._status.is_read_only():
|
if self._only_display:
|
||||||
return
|
return
|
||||||
|
|
||||||
if self._state == "move":
|
locked = self.graph._status.is_read_only()
|
||||||
|
|
||||||
|
if not locked and self._state == "move":
|
||||||
if self._current_moved_node is not None:
|
if self._current_moved_node is not None:
|
||||||
pos = self.mapToScene(event.pos())
|
pos = self.mapToScene(event.pos())
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
|
|
@ -1007,10 +1010,8 @@ class GraphWidget(QGraphicsView):
|
||||||
super(GraphWidget, self).mouseReleaseEvent(event)
|
super(GraphWidget, self).mouseReleaseEvent(event)
|
||||||
|
|
||||||
def mouseMoveEvent(self, event):
|
def mouseMoveEvent(self, event):
|
||||||
if self.graph._status.is_read_only():
|
|
||||||
return
|
|
||||||
|
|
||||||
pos = self.mapToScene(event.pos())
|
pos = self.mapToScene(event.pos())
|
||||||
|
locked = self.graph._status.is_read_only()
|
||||||
|
|
||||||
# Selecte item on the fly
|
# Selecte item on the fly
|
||||||
items = self.items(event.pos())
|
items = self.items(event.pos())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue