mirror of https://gitlab.com/pamhyr/pamhyr2
Network: Add add node command.
parent
a44dc91ae9
commit
bc209f78f6
|
|
@ -81,22 +81,32 @@ class Graph(object):
|
|||
|
||||
return edge[0]
|
||||
|
||||
def _add_node(self, node):
|
||||
self._nodes.append(node)
|
||||
self._nodes_ids += 1
|
||||
|
||||
self._status.modified()
|
||||
return node
|
||||
|
||||
def add_node(self, x:float = 0.0, y:float = 0.0):
|
||||
def _create_node(self, x:float, y:float):
|
||||
node = self._node_ctor(
|
||||
self._nodes_ids,
|
||||
f"Node {self._nodes_ids}",
|
||||
x = x, y = y,
|
||||
status = self._status
|
||||
)
|
||||
self._nodes_ids += 1
|
||||
return node
|
||||
|
||||
def _add_node(self, node):
|
||||
self._nodes.append(node)
|
||||
self._status.modified()
|
||||
return node
|
||||
|
||||
def add_node(self, x:float = 0.0, y:float = 0.0):
|
||||
node = self._create_node(x, y)
|
||||
return self._add_node(node)
|
||||
|
||||
def insert_node(self, node):
|
||||
self._add_node(node)
|
||||
|
||||
def create_node(self, x:float = 0.0, y:float = 0.0):
|
||||
node = self._create_node(x, y)
|
||||
return node
|
||||
|
||||
def _add_edge(self, edge):
|
||||
# This edge already exists ?
|
||||
if any(filter(lambda e: (e.node1 == edge.node1 and
|
||||
|
|
|
|||
|
|
@ -376,7 +376,12 @@ class GraphWidget(QGraphicsView):
|
|||
Returns:
|
||||
Nothing
|
||||
"""
|
||||
node = self.graph.add_node(pos.x(), pos.y())
|
||||
node = self.graph.create_node(pos.x(), pos.y())
|
||||
self._undo.push(
|
||||
AddNodeCommand(
|
||||
self.graph, node
|
||||
)
|
||||
)
|
||||
inode = NodeItem(node, self)
|
||||
self.scene().addItem(inode)
|
||||
self.node_items.append(inode)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,20 @@ from Model.Network.Node import Node
|
|||
from Model.Network.Edge import Edge
|
||||
from Model.Network.Graph import Graph
|
||||
|
||||
class AddNodeCommand(QUndoCommand):
|
||||
def __init__(self, graph, node):
|
||||
QUndoCommand.__init__(self)
|
||||
|
||||
self._graph = graph
|
||||
self._node = node
|
||||
|
||||
def undo(self):
|
||||
self._graph.remove_node(self._node.name)
|
||||
|
||||
def redo(self):
|
||||
self._graph.insert_node(self._node)
|
||||
|
||||
|
||||
class SetCommand(QUndoCommand):
|
||||
def __init__(self, element, column, new_value):
|
||||
QUndoCommand.__init__(self)
|
||||
|
|
|
|||
Loading…
Reference in New Issue