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, text=shape_text,
fill=self.text_color, fill=self.text_color,
font=text_font, font=text_font,
tags=tags.SHAPE_TEXT, tags=(tags.SHAPE_TEXT, tags.ANNOTATION),
) )
self.shape.created = True self.shape.created = True
else: else:

View file

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

View file

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

View file

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

View file

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