pygui: updated edge tokens to use core node ids instead of canvas ids, updated link config to properly set/load width/color, updated metadata to store/load edge width/color when switching sessions and saving xml
This commit is contained in:
parent
68934da204
commit
aa40229495
4 changed files with 35 additions and 20 deletions
|
@ -27,10 +27,10 @@ def create_wireless_token(src: int, dst: int, network: int) -> str:
|
|||
return f"{src}-{dst}-{network}"
|
||||
|
||||
|
||||
def create_edge_token(src: int, dst: int, link: Link) -> str:
|
||||
def create_edge_token(link: Link) -> str:
|
||||
iface1_id = link.iface1.id if link.iface1 else None
|
||||
iface2_id = link.iface2.id if link.iface2 else None
|
||||
return f"{src}-{iface1_id}-{dst}-{iface2_id}"
|
||||
return f"{link.node1_id}-{iface1_id}-{link.node2_id}-{iface2_id}"
|
||||
|
||||
|
||||
def arc_edges(edges) -> None:
|
||||
|
|
|
@ -229,7 +229,7 @@ class CanvasGraph(tk.Canvas):
|
|||
self.tag_lower(self.rect)
|
||||
|
||||
def add_wired_edge(self, src: CanvasNode, dst: CanvasNode, link: Link) -> None:
|
||||
token = create_edge_token(src.id, dst.id, link)
|
||||
token = create_edge_token(link)
|
||||
if token in self.edges and link.options.unidirectional:
|
||||
edge = self.edges[token]
|
||||
edge.asymmetric_link = link
|
||||
|
@ -241,14 +241,14 @@ class CanvasGraph(tk.Canvas):
|
|||
edge = CanvasEdge(self, src.id, src_pos, dst_pos)
|
||||
self.complete_edge(src, dst, edge, link)
|
||||
|
||||
def delete_wired_edge(self, src: CanvasNode, dst: CanvasNode, link: Link) -> None:
|
||||
token = create_edge_token(src.id, dst.id, link)
|
||||
def delete_wired_edge(self, link: Link) -> None:
|
||||
token = create_edge_token(link)
|
||||
edge = self.edges.get(token)
|
||||
if edge:
|
||||
self.delete_edge(edge)
|
||||
|
||||
def update_wired_edge(self, src: CanvasNode, dst: CanvasNode, link: Link) -> None:
|
||||
token = create_edge_token(src.id, dst.id, link)
|
||||
def update_wired_edge(self, link: Link) -> None:
|
||||
token = create_edge_token(link)
|
||||
edge = self.edges.get(token)
|
||||
if edge:
|
||||
edge.link.options = deepcopy(link.options)
|
||||
|
@ -915,7 +915,7 @@ class CanvasGraph(tk.Canvas):
|
|||
dst.ifaces[iface2.id] = iface2
|
||||
src.edges.add(edge)
|
||||
dst.edges.add(edge)
|
||||
edge.token = create_edge_token(src.id, dst.id, edge.link)
|
||||
edge.token = create_edge_token(edge.link)
|
||||
self.arc_common_edges(edge)
|
||||
edge.draw_labels()
|
||||
edge.check_options()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue