mirror of https://gitlab.com/pamhyr/pamhyr2
Network: Propagate undo stack.
parent
7f1f028b17
commit
454b5049d2
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue