pygui: changes to leverage common icon scaling function, fix issue with scaling toolbar

This commit is contained in:
Blake Harnden 2020-05-18 23:25:42 -07:00
parent cde053da73
commit 773f733cb8
5 changed files with 20 additions and 28 deletions

View file

@ -6,7 +6,7 @@ import grpc
from core.api.grpc.mobility_pb2 import MobilityAction from core.api.grpc.mobility_pb2 import MobilityAction
from core.gui.dialogs.dialog import Dialog from core.gui.dialogs.dialog import Dialog
from core.gui.images import ImageEnum, Images from core.gui.images import ImageEnum
from core.gui.themes import PADX, PADY from core.gui.themes import PADX, PADY
if TYPE_CHECKING: if TYPE_CHECKING:
@ -89,17 +89,17 @@ class MobilityPlayerDialog(Dialog):
for i in range(3): for i in range(3):
frame.columnconfigure(i, weight=1) frame.columnconfigure(i, weight=1)
image = Images.get(ImageEnum.START, width=int(ICON_SIZE * self.app.app_scale)) image = self.app.get_icon(ImageEnum.START, ICON_SIZE)
self.play_button = ttk.Button(frame, image=image, command=self.click_play) self.play_button = ttk.Button(frame, image=image, command=self.click_play)
self.play_button.image = image self.play_button.image = image
self.play_button.grid(row=0, column=0, sticky="ew", padx=PADX) self.play_button.grid(row=0, column=0, sticky="ew", padx=PADX)
image = Images.get(ImageEnum.PAUSE, width=int(ICON_SIZE * self.app.app_scale)) image = self.app.get_icon(ImageEnum.PAUSE, ICON_SIZE)
self.pause_button = ttk.Button(frame, image=image, command=self.click_pause) self.pause_button = ttk.Button(frame, image=image, command=self.click_pause)
self.pause_button.image = image self.pause_button.image = image
self.pause_button.grid(row=0, column=1, sticky="ew", padx=PADX) self.pause_button.grid(row=0, column=1, sticky="ew", padx=PADX)
image = Images.get(ImageEnum.STOP, width=int(ICON_SIZE * self.app.app_scale)) image = self.app.get_icon(ImageEnum.STOP, ICON_SIZE)
self.stop_button = ttk.Button(frame, image=image, command=self.click_stop) self.stop_button = ttk.Button(frame, image=image, command=self.click_stop)
self.stop_button.image = image self.stop_button.image = image
self.stop_button.grid(row=0, column=2, sticky="ew", padx=PADX) self.stop_button.grid(row=0, column=2, sticky="ew", padx=PADX)

View file

@ -17,6 +17,8 @@ if TYPE_CHECKING:
from core.gui.app import Application from core.gui.app import Application
from core.gui.graph.node import CanvasNode from core.gui.graph.node import CanvasNode
ICON_SIZE = 16
class ServiceConfigDialog(Dialog): class ServiceConfigDialog(Dialog):
def __init__( def __init__(
@ -51,10 +53,8 @@ class ServiceConfigDialog(Dialog):
self.directory_entry = None self.directory_entry = None
self.default_directories = [] self.default_directories = []
self.temp_directories = [] self.temp_directories = []
self.documentnew_img = Images.get( self.documentnew_img = self.app.get_icon(ImageEnum.DOCUMENTNEW, ICON_SIZE)
ImageEnum.DOCUMENTNEW, int(16 * app.app_scale) self.editdelete_img = self.app.get_icon(ImageEnum.EDITDELETE, ICON_SIZE)
)
self.editdelete_img = Images.get(ImageEnum.EDITDELETE, int(16 * app.app_scale))
self.notebook = None self.notebook = None
self.metadata_entry = None self.metadata_entry = None
self.filename_combobox = None self.filename_combobox = None

View file

@ -20,7 +20,7 @@ from core.gui.graph.enums import GraphMode, ScaleOption
from core.gui.graph.node import CanvasNode from core.gui.graph.node import CanvasNode
from core.gui.graph.shape import Shape from core.gui.graph.shape import Shape
from core.gui.graph.shapeutils import ShapeType, is_draw_shape, is_marker from core.gui.graph.shapeutils import ShapeType, is_draw_shape, is_marker
from core.gui.images import ImageEnum, Images, TypeToImage from core.gui.images import ImageEnum, TypeToImage
from core.gui.nodeutils import NodeUtils from core.gui.nodeutils import NodeUtils
if TYPE_CHECKING: if TYPE_CHECKING:
@ -290,9 +290,7 @@ class CanvasGraph(tk.Canvas):
) )
# if the gui can't find node's image, default to the "edit-node" image # if the gui can't find node's image, default to the "edit-node" image
if not image: if not image:
image = Images.get( image = self.app.get_icon(ImageEnum.EDITNODE, ICON_SIZE)
ImageEnum.EDITNODE, int(ICON_SIZE * self.app.app_scale)
)
x = core_node.position.x x = core_node.position.x
y = core_node.position.y y = core_node.position.y
node = CanvasNode(self.app, x, y, core_node, image) node = CanvasNode(self.app, x, y, core_node, image)
@ -734,13 +732,11 @@ class CanvasGraph(tk.Canvas):
if not core_node: if not core_node:
return return
try: try:
self.node_draw.image = Images.get( image_enum = self.node_draw.image_enum
self.node_draw.image_enum, int(ICON_SIZE * self.app.app_scale) self.node_draw.image = self.app.get_icon(image_enum, ICON_SIZE)
)
except AttributeError: except AttributeError:
self.node_draw.image = Images.get_custom( image_file = self.node_draw.image_file
self.node_draw.image_file, int(ICON_SIZE * self.app.app_scale) self.node_draw.image = self.app.get_custom_icon(image_file, ICON_SIZE)
)
node = CanvasNode(self.app, x, y, core_node, self.node_draw.image) node = CanvasNode(self.app, x, y, core_node, self.node_draw.image)
self.core.canvas_nodes[core_node.id] = node self.core.canvas_nodes[core_node.id] = node
self.nodes[node.id] = node self.nodes[node.id] = node
@ -1006,14 +1002,12 @@ class CanvasGraph(tk.Canvas):
): ):
for custom_node in self.app.guiconfig.nodes: for custom_node in self.app.guiconfig.nodes:
if custom_node.name == canvas_node.core_node.model: if custom_node.name == canvas_node.core_node.model:
img = Images.get_custom( img = self.app.get_custom_icon(custom_node.image, ICON_SIZE)
custom_node.image, int(ICON_SIZE * self.app.app_scale)
)
else: else:
image_enum = TypeToImage.get( image_enum = TypeToImage.get(
canvas_node.core_node.type, canvas_node.core_node.model canvas_node.core_node.type, canvas_node.core_node.model
) )
img = Images.get(image_enum, int(ICON_SIZE * self.app.app_scale)) img = self.app.get_icon(image_enum, ICON_SIZE)
self.itemconfig(nid, image=img) self.itemconfig(nid, image=img)
canvas_node.image = img canvas_node.image = img

View file

@ -17,7 +17,7 @@ from core.gui.dialogs.wlanconfig import WlanConfigDialog
from core.gui.graph import tags from core.gui.graph import tags
from core.gui.graph.edges import CanvasEdge from core.gui.graph.edges import CanvasEdge
from core.gui.graph.tooltip import CanvasTooltip from core.gui.graph.tooltip import CanvasTooltip
from core.gui.images import ImageEnum, Images from core.gui.images import ImageEnum
from core.gui.nodeutils import ANTENNA_SIZE, NodeUtils from core.gui.nodeutils import ANTENNA_SIZE, NodeUtils
if TYPE_CHECKING: if TYPE_CHECKING:
@ -91,7 +91,7 @@ class CanvasNode:
def add_antenna(self): def add_antenna(self):
x, y = self.canvas.coords(self.id) x, y = self.canvas.coords(self.id)
offset = len(self.antennas) * 8 * self.app.app_scale offset = len(self.antennas) * 8 * self.app.app_scale
img = Images.get(ImageEnum.ANTENNA, int(ANTENNA_SIZE * self.app.app_scale)) img = self.app.get_icon(ImageEnum.ANTENNA, ANTENNA_SIZE)
antenna_id = self.canvas.create_image( antenna_id = self.canvas.create_image(
x - 16 + offset, x - 16 + offset,
y - int(23 * self.app.app_scale), y - int(23 * self.app.app_scale),
@ -327,9 +327,7 @@ class CanvasNode:
def scale_antennas(self): def scale_antennas(self):
for i in range(len(self.antennas)): for i in range(len(self.antennas)):
antenna_id = self.antennas[i] antenna_id = self.antennas[i]
image = Images.get( image = self.app.get_icon(ImageEnum.ANTENNA, ANTENNA_SIZE)
ImageEnum.ANTENNA, int(ANTENNA_SIZE * self.app.app_scale)
)
self.canvas.itemconfig(antenna_id, image=image) self.canvas.itemconfig(antenna_id, image=image)
self.antenna_images[antenna_id] = image self.antenna_images[antenna_id] = image
node_x, node_y = self.canvas.coords(self.id) node_x, node_y = self.canvas.coords(self.id)

View file

@ -466,7 +466,7 @@ class Toolbar(ttk.Frame):
self.scale_button(self.select_button, ImageEnum.SELECT) self.scale_button(self.select_button, ImageEnum.SELECT)
self.scale_button(self.link_button, ImageEnum.LINK) self.scale_button(self.link_button, ImageEnum.LINK)
if self.current_node.image_enum: if self.current_node.image_enum:
self.scale_button(self.node_button, self.current_node) self.scale_button(self.node_button, self.current_node.image_enum)
else: else:
self.scale_button(self.node_button, image_file=self.current_node.image_file) self.scale_button(self.node_button, image_file=self.current_node.image_file)
self.scale_button(self.network_button, self.current_network.image_enum) self.scale_button(self.network_button, self.current_network.image_enum)