mirror of https://gitlab.com/pamhyr/pamhyr2
network: Remove landmark and minor change.
parent
cec8eac432
commit
c84ab379d1
|
|
@ -20,36 +20,6 @@ from PyQt5.QtWidgets import (
|
|||
QGraphicsView, QStyle, QGraphicsTextItem,
|
||||
)
|
||||
|
||||
class LandMark(QGraphicsItem):
|
||||
def __init__(self, width, height, parent=None):
|
||||
super(LandMark, self).__init__()
|
||||
|
||||
self.width = width
|
||||
self.height = height
|
||||
|
||||
self.center = QPoint(width / 2, height / 2)
|
||||
self.parent = parent
|
||||
|
||||
def paint(self, painter, option, widget):
|
||||
painter.setPen(Qt.NoPen)
|
||||
painter.setPen(QPen(Qt.black, 0))
|
||||
|
||||
painter.drawLine(
|
||||
-10 + self.center.x(), 0 + self.center.y(),
|
||||
10 + self.center.x(), 0 + self.center.y()
|
||||
)
|
||||
painter.drawLine(
|
||||
0 + self.center.x(), -10 + self.center.y(),
|
||||
0 + self.center.x(), 10 + self.center.y()
|
||||
)
|
||||
|
||||
def boundingRect(self):
|
||||
return QRectF(
|
||||
-10 + self.center.x(), -10 + self.center.y(),
|
||||
10 + self.center.x(), 10 + self.center.y()
|
||||
)
|
||||
|
||||
|
||||
class NodeItem(QGraphicsItem):
|
||||
Type = QGraphicsItem.UserType + 1
|
||||
|
||||
|
|
@ -174,11 +144,11 @@ class EdgeItem(QGraphicsItem):
|
|||
).normalized().adjusted(-extra, -extra, extra, extra)
|
||||
|
||||
def paint(self, painter, option, widget):
|
||||
color = QColor(Qt.white)
|
||||
color.setAlpha(128)
|
||||
# color = QColor(Qt.white)
|
||||
# color.setAlpha(128)
|
||||
|
||||
painter.setBrush(color)
|
||||
painter.drawRect(self.boundingRect())
|
||||
# painter.setBrush(color)
|
||||
# painter.drawRect(self.boundingRect())
|
||||
|
||||
line = QLineF(self.src_node.pos(), self.dest_node.pos())
|
||||
|
||||
|
|
@ -188,10 +158,11 @@ class EdgeItem(QGraphicsItem):
|
|||
color = Qt.blue
|
||||
if self.graph.selectedItem() == self:
|
||||
color = Qt.red
|
||||
elif self.graph.currentEdge() == self:
|
||||
color = Qt.darkBlue
|
||||
elif not self.graph.graph.is_enable_edge(self.edge):
|
||||
color = Qt.darkGray
|
||||
|
||||
|
||||
painter.setPen(QPen(color, 3, Qt.SolidLine, Qt.RoundCap,
|
||||
Qt.RoundJoin))
|
||||
painter.drawLine(line)
|
||||
|
|
@ -290,6 +261,7 @@ class GraphWidget(QGraphicsView):
|
|||
|
||||
self._selectedItem = None
|
||||
self._selectedNewEdgeSrcNode = None
|
||||
self._currentEdge = None
|
||||
self.tmp_line = None
|
||||
|
||||
self.node_items = []
|
||||
|
|
@ -345,9 +317,6 @@ class GraphWidget(QGraphicsView):
|
|||
self.scene().addItem(iedge)
|
||||
self.edge_items.append(iedge)
|
||||
|
||||
# self.mark = LandMark(1000, 1000, self)
|
||||
# self.scene().addItem(self.mark)
|
||||
|
||||
def state(self, status):
|
||||
self._state = status
|
||||
|
||||
|
|
@ -463,6 +432,16 @@ class GraphWidget(QGraphicsView):
|
|||
if previous_node:
|
||||
previous_node.update()
|
||||
|
||||
def currentEdge(self):
|
||||
return self._currentEdge
|
||||
|
||||
def setCurrentEdge(self, edge):
|
||||
previous_edge = self._selectedNewEdgeSrcNode
|
||||
self._currentEdge = edge
|
||||
|
||||
if previous_edge:
|
||||
previous_edge.update()
|
||||
|
||||
def reset_selection(self):
|
||||
self.setSelectedNewEdgeSrcNode(None)
|
||||
if self.tmp_line is not None:
|
||||
|
|
@ -500,7 +479,9 @@ class GraphWidget(QGraphicsView):
|
|||
self.scaleView(math.pow(2.0, -event.angleDelta().y() / 240.0))
|
||||
|
||||
def scaleView(self, scaleFactor):
|
||||
factor = self.transform().scale(scaleFactor, scaleFactor).mapRect(QRectF(0, 0, 1, 1)).width()
|
||||
factor = self.transform().scale(
|
||||
scaleFactor, scaleFactor
|
||||
).mapRect(QRectF(0, 0, 1, 1)).width()
|
||||
|
||||
if factor < 0.05 or factor > 1.5:
|
||||
return
|
||||
|
|
@ -512,9 +493,17 @@ class GraphWidget(QGraphicsView):
|
|||
def mousePressEvent(self, event):
|
||||
pos = self.mapToScene(event.pos())
|
||||
if self._state == "move":
|
||||
self._selectedNewEdgeSrcNode = None
|
||||
|
||||
self.mouse_origin_x = pos.x()
|
||||
self.mouse_origin_y = pos.y()
|
||||
|
||||
items = self.items(event.pos())
|
||||
if type(items[0]) == EdgeItem:
|
||||
edge = items[0]
|
||||
if edge:
|
||||
self.setCurrentEdge(edge)
|
||||
|
||||
elif self._state == "add":
|
||||
items = self.items(event.pos())
|
||||
nodes = list(filter(lambda i: type(i) == NodeItem, items))
|
||||
|
|
@ -527,6 +516,7 @@ class GraphWidget(QGraphicsView):
|
|||
self.add_edge(self.selectedNewEdgeSrcNode(), nodes[0])
|
||||
|
||||
elif self._state == "del":
|
||||
self._selectedNewEdgeSrcNode = None
|
||||
items = list(
|
||||
filter(
|
||||
lambda i: type(i) == NodeItem or type(i) == EdgeItem,
|
||||
|
|
|
|||
Loading…
Reference in New Issue