pygui: changes to leverage common icon scaling function, fix issue with scaling toolbar
This commit is contained in:
parent
cde053da73
commit
773f733cb8
5 changed files with 20 additions and 28 deletions
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue