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]
|
return edge[0]
|
||||||
|
|
||||||
def _add_node(self, node):
|
def _create_node(self, x:float, y:float):
|
||||||
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):
|
|
||||||
node = self._node_ctor(
|
node = self._node_ctor(
|
||||||
self._nodes_ids,
|
self._nodes_ids,
|
||||||
f"Node {self._nodes_ids}",
|
f"Node {self._nodes_ids}",
|
||||||
x = x, y = y,
|
x = x, y = y,
|
||||||
status = self._status
|
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)
|
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):
|
def _add_edge(self, edge):
|
||||||
# This edge already exists ?
|
# This edge already exists ?
|
||||||
if any(filter(lambda e: (e.node1 == edge.node1 and
|
if any(filter(lambda e: (e.node1 == edge.node1 and
|
||||||
|
|
|
||||||
|
|
@ -376,7 +376,12 @@ class GraphWidget(QGraphicsView):
|
||||||
Returns:
|
Returns:
|
||||||
Nothing
|
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)
|
inode = NodeItem(node, self)
|
||||||
self.scene().addItem(inode)
|
self.scene().addItem(inode)
|
||||||
self.node_items.append(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.Edge import Edge
|
||||||
from Model.Network.Graph import Graph
|
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):
|
class SetCommand(QUndoCommand):
|
||||||
def __init__(self, element, column, new_value):
|
def __init__(self, element, column, new_value):
|
||||||
QUndoCommand.__init__(self)
|
QUndoCommand.__init__(self)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue