pygui: updates to properly save and load canvas size for each canvas separately
This commit is contained in:
parent
2b89503432
commit
1ce6e51318
4 changed files with 13 additions and 17 deletions
|
@ -24,7 +24,7 @@ class SizeAndScaleDialog(Dialog):
|
|||
super().__init__(app, "Canvas Size and Scale")
|
||||
self.manager: CanvasManager = self.app.manager
|
||||
self.section_font: font.Font = font.Font(weight=font.BOLD)
|
||||
width, height = self.manager.current_dimensions
|
||||
width, height = self.manager.current().current_dimensions
|
||||
self.pixel_width: tk.IntVar = tk.IntVar(value=width)
|
||||
self.pixel_height: tk.IntVar = tk.IntVar(value=height)
|
||||
location = self.app.core.session.location
|
||||
|
@ -189,7 +189,7 @@ class SizeAndScaleDialog(Dialog):
|
|||
|
||||
def click_apply(self) -> None:
|
||||
width, height = self.pixel_width.get(), self.pixel_height.get()
|
||||
self.manager.redraw_canvases((width, height))
|
||||
self.manager.redraw_canvas((width, height))
|
||||
location = self.app.core.session.location
|
||||
location.x = self.x.get()
|
||||
location.y = self.y.get()
|
||||
|
|
|
@ -827,6 +827,7 @@ class CanvasGraph(tk.Canvas):
|
|||
wallpaper=wallpaper_path,
|
||||
wallpaper_style=self.scale_option.get(),
|
||||
fit_image=self.adjust_to_dim.get(),
|
||||
dimensions=self.current_dimensions,
|
||||
)
|
||||
|
||||
def parse_metadata(self, config: Dict[str, Any]) -> None:
|
||||
|
@ -834,6 +835,9 @@ class CanvasGraph(tk.Canvas):
|
|||
self.adjust_to_dim.set(fit_image)
|
||||
wallpaper_style = config.get("wallpaper_style", 1)
|
||||
self.scale_option.set(wallpaper_style)
|
||||
dimensions = config.get("dimensions")
|
||||
if dimensions:
|
||||
self.redraw_canvas(dimensions)
|
||||
wallpaper = config.get("wallpaper")
|
||||
if wallpaper:
|
||||
wallpaper = Path(wallpaper)
|
||||
|
|
|
@ -89,7 +89,6 @@ class CanvasManager:
|
|||
self.app.guiconfig.preferences.width,
|
||||
self.app.guiconfig.preferences.height,
|
||||
)
|
||||
self.current_dimensions: Tuple[int, int] = self.default_dimensions
|
||||
self.show_node_labels: ShowVar = ShowNodeLabels(
|
||||
self, tags.NODE_LABEL, value=True
|
||||
)
|
||||
|
@ -274,19 +273,15 @@ class CanvasManager:
|
|||
if not self.canvases:
|
||||
self.add_canvas()
|
||||
|
||||
def redraw_canvases(self, dimensions: Tuple[int, int]) -> None:
|
||||
for canvas in self.canvases.values():
|
||||
def redraw_canvas(self, dimensions: Tuple[int, int]) -> None:
|
||||
canvas = self.current()
|
||||
canvas.redraw_canvas(dimensions)
|
||||
if canvas.wallpaper:
|
||||
canvas.redraw_wallpaper()
|
||||
|
||||
def get_metadata(self) -> Dict[str, Any]:
|
||||
canvases = [x.get_metadata() for x in self.all()]
|
||||
return dict(
|
||||
gridlines=self.app.manager.show_grid.get(),
|
||||
dimensions=self.app.manager.current_dimensions,
|
||||
canvases=canvases,
|
||||
)
|
||||
return dict(gridlines=self.show_grid.get(), canvases=canvases)
|
||||
|
||||
def parse_metadata_canvas(self, metadata: Dict[str, Any]) -> None:
|
||||
# canvas setting
|
||||
|
@ -296,11 +291,8 @@ class CanvasManager:
|
|||
return
|
||||
canvas_config = json.loads(canvas_config)
|
||||
# get configured dimensions and gridlines option
|
||||
dimensions = self.default_dimensions
|
||||
dimensions = canvas_config.get("dimensions", dimensions)
|
||||
gridlines = canvas_config.get("gridlines", True)
|
||||
self.show_grid.set(gridlines)
|
||||
self.redraw_canvases(dimensions)
|
||||
|
||||
# get background configurations
|
||||
for canvas_config in canvas_config.get("canvases", []):
|
||||
|
|
|
@ -453,7 +453,7 @@ class Menubar(tk.Menu):
|
|||
dialog.show()
|
||||
|
||||
def click_autogrid(self) -> None:
|
||||
width, height = self.manager.current_dimensions
|
||||
width, height = self.manager.current().current_dimensions
|
||||
padding = (images.NODE_SIZE / 2) + 10
|
||||
layout_size = padding + images.NODE_SIZE
|
||||
col_count = width // layout_size
|
||||
|
|
Loading…
Reference in a new issue