pygui simplify show/hiding annotations

This commit is contained in:
Blake Harnden 2020-04-19 15:57:59 -07:00
parent d26c4fc4ab
commit 3233d8ab58
5 changed files with 17 additions and 28 deletions

View file

@ -235,7 +235,7 @@ class ShapeDialog(Dialog):
text=shape_text,
fill=self.text_color,
font=text_font,
tags=tags.SHAPE_TEXT,
tags=(tags.SHAPE_TEXT, tags.ANNOTATION),
)
self.shape.created = True
else:

View file

@ -94,9 +94,7 @@ class CanvasGraph(tk.Canvas):
self.show_node_labels = ShowVar(self, tags.NODE_LABEL, value=True)
self.show_link_labels = ShowVar(self, tags.LINK_LABEL, value=True)
self.show_grid = ShowVar(self, tags.GRIDLINE, value=True)
self.show_shapes = ShowVar(self, tags.SHAPE, value=True)
self.show_shape_labels = ShowVar(self, tags.SHAPE_TEXT, value=True)
self.show_marker = ShowVar(self, tags.MARKER, value=True)
self.show_annotations = ShowVar(self, tags.ANNOTATION, value=True)
self.show_interface_names = BooleanVar(value=False)
self.show_ip4s = BooleanVar(value=True)
self.show_ip6s = BooleanVar(value=True)
@ -585,8 +583,8 @@ class CanvasGraph(tk.Canvas):
y + r,
fill=self.app.toolbar.marker_tool.color,
outline="",
tags=tags.MARKER,
state=self.show_marker.state(),
tags=(tags.MARKER, tags.ANNOTATION),
state=self.show_annotations.state(),
)
return
if selected is None:
@ -669,7 +667,7 @@ class CanvasGraph(tk.Canvas):
y + r,
fill=self.app.toolbar.marker_tool.color,
outline="",
tags="marker",
tags=(tags.MARKER, tags.ANNOTATION),
)
return

View file

@ -80,12 +80,12 @@ class Shape:
self.y1,
self.x2,
self.y2,
tags=tags.SHAPE,
tags=(tags.SHAPE, tags.ANNOTATION),
dash=dash,
fill=self.shape_data.fill_color,
outline=self.shape_data.border_color,
width=self.shape_data.border_width,
state=self.canvas.show_shapes.state(),
state=self.canvas.show_annotations.state(),
)
self.draw_shape_text()
elif self.shape_type == ShapeType.RECTANGLE:
@ -94,12 +94,12 @@ class Shape:
self.y1,
self.x2,
self.y2,
tags=tags.SHAPE,
tags=(tags.SHAPE, tags.ANNOTATION),
dash=dash,
fill=self.shape_data.fill_color,
outline=self.shape_data.border_color,
width=self.shape_data.border_width,
state=self.canvas.show_shapes.state(),
state=self.canvas.show_annotations.state(),
)
self.draw_shape_text()
elif self.shape_type == ShapeType.TEXT:
@ -107,11 +107,11 @@ class Shape:
self.id = self.canvas.create_text(
self.x1,
self.y1,
tags=tags.SHAPE_TEXT,
tags=(tags.SHAPE_TEXT, tags.ANNOTATION),
text=self.shape_data.text,
fill=self.shape_data.text_color,
font=font,
state=self.canvas.show_shapes.state(),
state=self.canvas.show_annotations.state(),
)
else:
logging.error("unknown shape type: %s", self.shape_type)
@ -135,11 +135,11 @@ class Shape:
self.text_id = self.canvas.create_text(
x,
y,
tags=tags.SHAPE_TEXT,
tags=(tags.SHAPE_TEXT, tags.ANNOTATION),
text=self.shape_data.text,
fill=self.shape_data.text_color,
font=font,
state=self.canvas.show_shape_labels.state(),
state=self.canvas.show_annotations.state(),
)
def shape_motion(self, x1: float, y1: float):

View file

@ -1,3 +1,4 @@
ANNOTATION = "annotation"
GRIDLINE = "gridline"
SHAPE = "shape"
SHAPE_TEXT = "shapetext"

View file

@ -3,7 +3,7 @@ import os
import tkinter as tk
import webbrowser
from functools import partial
from tkinter import BooleanVar, filedialog, messagebox
from tkinter import filedialog, messagebox
from typing import TYPE_CHECKING
from core.gui.appconfig import XMLS_PATH
@ -44,7 +44,6 @@ class Menubar(tk.Menu):
self.canvas = app.canvas
self.recent_menu = None
self.edit_menu = None
self.show_annotations = BooleanVar(value=True)
self.draw()
def draw(self) -> None:
@ -158,8 +157,8 @@ class Menubar(tk.Menu):
)
menu.add_checkbutton(
label="Annotations",
command=self.click_show_annotations,
variable=self.show_annotations,
command=self.canvas.show_annotations.click_handler,
variable=self.canvas.show_annotations,
)
menu.add_checkbutton(
label="Canvas Grid",
@ -462,12 +461,3 @@ class Menubar(tk.Menu):
def click_edge_label_change(self) -> None:
for edge in self.canvas.edges.values():
edge.draw_labels()
def click_show_annotations(self) -> None:
value = self.show_annotations.get()
self.canvas.show_shapes.set(value)
self.canvas.show_shape_labels.set(value)
self.canvas.show_marker.set(value)
self.canvas.show_shapes.click_handler()
self.canvas.show_shape_labels.click_handler()
self.canvas.show_marker.click_handler()