mirror of https://gitlab.com/pamhyr/pamhyr2
Network: Graph: Improve contextmenu.
parent
54a9418474
commit
ad7c195e4d
|
|
@ -6,7 +6,7 @@ from tools import timer
|
|||
|
||||
from PyQt5.QtCore import (
|
||||
Qt, QPoint, QPointF, QSizeF, QLineF, QRectF,
|
||||
pyqtSlot, pyqtSignal,
|
||||
pyqtSlot, pyqtSignal, QCoreApplication,
|
||||
)
|
||||
from PyQt5.QtGui import (
|
||||
QPainter, QColor, QBrush, QPen, QPainterPath,
|
||||
|
|
@ -21,6 +21,9 @@ from Model.Network.Node import Node
|
|||
from Model.Network.Edge import Edge
|
||||
from Model.Network.Graph import Graph
|
||||
|
||||
_translate = QCoreApplication.translate
|
||||
|
||||
|
||||
class NodeItem(QGraphicsItem):
|
||||
Type = QGraphicsItem.UserType + 1
|
||||
|
||||
|
|
@ -729,33 +732,42 @@ class GraphWidget(QGraphicsView):
|
|||
super(GraphWidget, self).mouseMoveEvent(event)
|
||||
|
||||
|
||||
# Contextual menu
|
||||
|
||||
def menu_default(self, event, pos, items, menu):
|
||||
add_node = menu.addAction(_translate("Network", "Add node"))
|
||||
|
||||
action = menu.exec_(self.mapToGlobal(event.pos()))
|
||||
|
||||
if action == add_node:
|
||||
self.add_node(pos)
|
||||
|
||||
def menu_node(self, event, pos, items, menu):
|
||||
delete = menu.addAction(_translate("Network", "Delete the node"))
|
||||
disable = menu.addAction(_translate("Network", "Disable the node"))
|
||||
|
||||
action = menu.exec_(self.mapToGlobal(event.pos()))
|
||||
|
||||
if action == delete:
|
||||
self.del_node(items[0])
|
||||
|
||||
def menu_edge(self, event, pos, items, menu):
|
||||
delete = menu.addAction(_translate("Network", "Delete the reach"))
|
||||
disable = menu.addAction(_translate("Network", "Disable the reach"))
|
||||
|
||||
action = menu.exec_(self.mapToGlobal(event.pos()))
|
||||
|
||||
if action == delete:
|
||||
self.del_edge(items[0])
|
||||
|
||||
def contextMenuEvent(self, event):
|
||||
pos = self.mapToScene(event.pos())
|
||||
items = self.items(event.pos())
|
||||
|
||||
menu = QMenu(self)
|
||||
if len(items) == 0:
|
||||
add_node = menu.addAction("Add")
|
||||
|
||||
self.menu_default(event, pos, items, menu)
|
||||
elif type(items[0]) == NodeItem:
|
||||
del_node = menu.addAction("Delete")
|
||||
disable_node = menu.addAction("Disable")
|
||||
|
||||
self.menu_node(event, pos, items, menu)
|
||||
elif type(items[0]) == EdgeItem:
|
||||
del_edge = menu.addAction("Delete")
|
||||
disable_edge = menu.addAction("Disable")
|
||||
|
||||
action = menu.exec_(self.mapToGlobal(event.pos()))
|
||||
|
||||
if len(items) == 0:
|
||||
if action == add_node:
|
||||
self.add_node(pos)
|
||||
|
||||
elif type(items[0]) == NodeItem:
|
||||
if action == del_node:
|
||||
self.del_node(items[0])
|
||||
#if action == disable_node:
|
||||
|
||||
elif type(items[0]) == EdgeItem:
|
||||
if action == del_edge:
|
||||
self.del_edge(items[0])
|
||||
self.menu_edge(event, pos, items, menu)
|
||||
|
|
|
|||
Loading…
Reference in New Issue