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 (
|
from PyQt5.QtCore import (
|
||||||
Qt, QPoint, QPointF, QSizeF, QLineF, QRectF,
|
Qt, QPoint, QPointF, QSizeF, QLineF, QRectF,
|
||||||
pyqtSlot, pyqtSignal,
|
pyqtSlot, pyqtSignal, QCoreApplication,
|
||||||
)
|
)
|
||||||
from PyQt5.QtGui import (
|
from PyQt5.QtGui import (
|
||||||
QPainter, QColor, QBrush, QPen, QPainterPath,
|
QPainter, QColor, QBrush, QPen, QPainterPath,
|
||||||
|
|
@ -21,6 +21,9 @@ from Model.Network.Node import Node
|
||||||
from Model.Network.Edge import Edge
|
from Model.Network.Edge import Edge
|
||||||
from Model.Network.Graph import Graph
|
from Model.Network.Graph import Graph
|
||||||
|
|
||||||
|
_translate = QCoreApplication.translate
|
||||||
|
|
||||||
|
|
||||||
class NodeItem(QGraphicsItem):
|
class NodeItem(QGraphicsItem):
|
||||||
Type = QGraphicsItem.UserType + 1
|
Type = QGraphicsItem.UserType + 1
|
||||||
|
|
||||||
|
|
@ -729,33 +732,42 @@ class GraphWidget(QGraphicsView):
|
||||||
super(GraphWidget, self).mouseMoveEvent(event)
|
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):
|
def contextMenuEvent(self, event):
|
||||||
pos = self.mapToScene(event.pos())
|
pos = self.mapToScene(event.pos())
|
||||||
items = self.items(event.pos())
|
items = self.items(event.pos())
|
||||||
|
|
||||||
menu = QMenu(self)
|
menu = QMenu(self)
|
||||||
if len(items) == 0:
|
if len(items) == 0:
|
||||||
add_node = menu.addAction("Add")
|
self.menu_default(event, pos, items, menu)
|
||||||
|
|
||||||
elif type(items[0]) == NodeItem:
|
elif type(items[0]) == NodeItem:
|
||||||
del_node = menu.addAction("Delete")
|
self.menu_node(event, pos, items, menu)
|
||||||
disable_node = menu.addAction("Disable")
|
|
||||||
|
|
||||||
elif type(items[0]) == EdgeItem:
|
elif type(items[0]) == EdgeItem:
|
||||||
del_edge = menu.addAction("Delete")
|
self.menu_edge(event, pos, items, menu)
|
||||||
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])
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue