Commit 454b5049 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

Network: Propagate undo stack.

Showing with 31 additions and 14 deletions
+31 -14
......@@ -263,13 +263,14 @@ class GraphWidget(QGraphicsView):
def __init__(self, graph, parent=None,
min_size=(400, 400), max_size=None,
size=None, only_display=False):
size=None, only_display=False, undo = None):
super(GraphWidget, self).__init__(parent=parent)
self.timerId = 0
self.parent = parent
self._state = "move"
self._only_display = only_display
self._undo = undo
self.graph = graph
......
......@@ -49,20 +49,18 @@ class NetworkWindow(ASubMainWindow):
self.undo_sc = QShortcut(QKeySequence.Undo, self)
self.redo_sc = QShortcut(QKeySequence.Redo, self)
self.copy_sc = QShortcut(QKeySequence.Copy, self)
self.paste_sc = QShortcut(QKeySequence.Paste, self)
def setup_table(self):
# Nodes table
self.nodes_model = GraphTableModel(
self._nodes_model = GraphTableModel(
headers = ["name", "type"],
graph = self._graph,
rows_type = "nodes",
undo = self._undo_stack,
)
table = self.find(QTableView, "tableView_nodes")
table.setModel(self.nodes_model)
table.setModel(self._nodes_model)
#table.resizeColumnsToContents()
table.setSelectionBehavior(QAbstractItemView.SelectRows)
......@@ -70,7 +68,7 @@ class NetworkWindow(ASubMainWindow):
# Edges table
self.reachs_model = GraphTableModel(
self._reachs_model = GraphTableModel(
headers = ["name", "enable", "node1", "node2"],
graph = self._graph,
rows_type = "edges",
......@@ -85,7 +83,7 @@ class NetworkWindow(ASubMainWindow):
)
table = self.find(QTableView, "tableView_reachs")
table.setModel(self.reachs_model)
table.setModel(self._reachs_model)
table.setItemDelegateForColumn(1, self.delegate_true_false_combobox)
table.setItemDelegateForColumn(2, self.delegate_combobox)
table.setItemDelegateForColumn(3, self.delegate_combobox)
......@@ -94,17 +92,20 @@ class NetworkWindow(ASubMainWindow):
#table.resizeColumnsToContents()
def setup_graph(self):
self._graph_widget = GraphWidget(self._graph, parent=self)
self._graph_widget = GraphWidget(
self._graph, parent=self,
undo = self._undo_stack
)
self._graph_layout = self.find(QHBoxLayout, "horizontalLayout_graph")
self._graph_layout.addWidget(self._graph_widget)
def setup_connections(self):
self.nodes_model.dataChanged.connect(self.reachs_model.update)
self.nodes_model.dataChanged.connect(self._graph_widget.rename_nodes)
self.reachs_model.dataChanged.connect(self._graph_widget.display_update)
self.reachs_model.dataChanged.connect(self.nodes_model.update)
self._graph_widget.changeEdge.connect(self.reachs_model.update)
self._graph_widget.changeNode.connect(self.nodes_model.update)
self._nodes_model.dataChanged.connect(self._reachs_model.update)
self._nodes_model.dataChanged.connect(self._graph_widget.rename_nodes)
self._reachs_model.dataChanged.connect(self._graph_widget.display_update)
self._reachs_model.dataChanged.connect(self._nodes_model.update)
self._graph_widget.changeEdge.connect(self._reachs_model.update)
self._graph_widget.changeNode.connect(self._nodes_model.update)
self.find(QAction, "action_toolBar_add").setCheckable(True)
self.find(QAction, "action_toolBar_add").triggered.connect(
......@@ -116,6 +117,9 @@ class NetworkWindow(ASubMainWindow):
self.clicked_del
)
self.undo_sc.activated.connect(self.undo)
self.redo_sc.activated.connect(self.redo)
def clicked_add(self):
if self.get_action_checkable("action_toolBar_add"):
self.set_action_checkable("action_toolBar_del", False)
......@@ -135,3 +139,15 @@ class NetworkWindow(ASubMainWindow):
if key == Qt.Key_Escape:
self._graph_widget.reset_selection
def undo(self):
self._undo_stack.undo()
self._reachs_model.update()
self._nodes_model.update()
self._graph_widget.display_update()
def redo(self):
self._undo_stack.redo()
self._reachs_model.update()
self._nodes_model.update()
self._graph_widget.display_update()
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment