From 53d7fc2c0bf50edd060a588ea025bbd10d2578a5 Mon Sep 17 00:00:00 2001 From: RemoteCTO <768254+RemoteCTO@users.noreply.github.com> Date: Wed, 8 Jan 2025 11:34:52 +0000 Subject: [PATCH 1/3] Fix _tkinter.TclError whenon MacOS --- src/O4_GUI_Utils.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/O4_GUI_Utils.py b/src/O4_GUI_Utils.py index 411eb571..a6020883 100755 --- a/src/O4_GUI_Utils.py +++ b/src/O4_GUI_Utils.py @@ -34,7 +34,7 @@ import O4_UI_Utils as UI import O4_Config_Utils as CFG -# Set OsX=True if you prefer the OsX way of drawing existing tiles but +# Set OsX=True if you prefer the OsX way of drawing existing tiles but # are on Linux or Windows. OsX = "dar" in sys.platform @@ -158,7 +158,7 @@ def __init__(self): # Widgets instances and placement # First row (Tile data) self.lat = tk.StringVar() - self.lat.trace("w", self.tile_change) + self.lat.trace_add("write", self.tile_change) tk.Label(self.frame_tile, text="Latitude:", bg="light green").grid( row=0, column=0, padx=5, pady=5, sticky=E + W ) @@ -172,7 +172,7 @@ def __init__(self): self.lat_entry.grid(row=0, column=1, padx=5, pady=5, sticky=W) self.lon = tk.StringVar() - self.lon.trace("w", self.tile_change) + self.lon.trace_add("write", self.tile_change) tk.Label( self.frame_tile, anchor=W, text="Longitude:", bg="light green" ).grid(row=0, column=2, padx=5, pady=5, sticky=E + W) @@ -186,7 +186,7 @@ def __init__(self): self.lon_entry.grid(row=0, column=3, padx=5, pady=5, sticky=W) self.default_website = tk.StringVar() - self.default_website.trace("w", self.update_cfg) + self.default_website.trace_add("write", self.update_cfg) tk.Label( self.frame_tile, anchor=W, text="Imagery:", bg="light green" ).grid(row=0, column=4, padx=5, pady=5, sticky=E + W) @@ -201,7 +201,7 @@ def __init__(self): self.img_combo.grid(row=0, column=5, padx=5, pady=5, sticky=W) self.default_zl = tk.StringVar() - self.default_zl.trace("w", self.update_cfg) + self.default_zl.trace_add("write", self.update_cfg) tk.Label( self.frame_tile, anchor=W, text="Zoomlevel:", bg="light green" ).grid(row=0, column=6, padx=5, pady=5, sticky=E + W) @@ -405,8 +405,8 @@ def pgrb_update(self): self.callback_pgrb = self.after(100, self.pgrb_update) def tile_change(self, *args): - # HACK : user preference is to not trash custom_dem and zone_list on - # tile change. Instead added a new shortcut for trashing all high zl + # HACK : user preference is to not trash custom_dem and zone_list on + # tile change. Instead added a new shortcut for trashing all high zl # list in the custom ZL window at once. return CFG.custom_dem = "" @@ -1434,7 +1434,7 @@ def preview_existing_tiles(self): lon = int(dir_name.split("XP_")[1][3:7]) except: continue - # With the enlarged accepetance rule for directory name + # With the enlarged accepetance rule for directory name # there might be more than one tile for the same (lat,lon), # we skip all but the first encountered. if (lat, lon) in self.dico_tiles_done: From 9bfefe809d00569af752e20695b490e3dba3b224 Mon Sep 17 00:00:00 2001 From: RemoteCTO <768254+RemoteCTO@users.noreply.github.com> Date: Wed, 8 Jan 2025 11:42:12 +0000 Subject: [PATCH 2/3] Fix broken buttons in latest OS --- src/O4_GUI_Utils.py | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/O4_GUI_Utils.py b/src/O4_GUI_Utils.py index a6020883..e026694e 100755 --- a/src/O4_GUI_Utils.py +++ b/src/O4_GUI_Utils.py @@ -898,14 +898,9 @@ def show_tile_preview(self, filepreview, lat, lon): 0, 0, anchor=NW, image=self.photo ) self.canvas.config(scrollregion=self.canvas.bbox(ALL)) - if "dar" in sys.platform: - self.canvas.bind("", self.scroll_start) - self.canvas.bind("", self.scroll_move) - self.canvas.bind("", self.delPol) - else: - self.canvas.bind("", self.scroll_start) - self.canvas.bind("", self.scroll_move) - self.canvas.bind("", self.delPol) + self.canvas.bind("", self.scroll_start) + self.canvas.bind("", self.scroll_move) + self.canvas.bind("", self.delPol) self.canvas.bind( "", lambda event: self.canvas.focus_set() ) @@ -1366,12 +1361,8 @@ def __init__(self, parent, lat, lon): self.canvas.yview_moveto(y0 / self.resolution) self.nx0 = int((8 * x0) // self.resolution) self.ny0 = int((8 * y0) // self.resolution) - if "dar" in sys.platform: - self.canvas.bind("", self.scroll_start) - self.canvas.bind("", self.scroll_move) - else: - self.canvas.bind("", self.scroll_start) - self.canvas.bind("", self.scroll_move) + self.canvas.bind("", self.scroll_start) + self.canvas.bind("", self.scroll_move) self.canvas.bind("", self.select_tile) self.canvas.bind("", self.add_tile) self.canvas.bind("", self.toggle_to_custom) From bf923e17e42c22768be79bb795514a114fcf8b0a Mon Sep 17 00:00:00 2001 From: RemoteCTO <768254+RemoteCTO@users.noreply.github.com> Date: Wed, 8 Jan 2025 15:29:23 +0000 Subject: [PATCH 3/3] Keep support for previous versions as per @w8sl comments Fix typo Typo again! --- src/O4_GUI_Utils.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/O4_GUI_Utils.py b/src/O4_GUI_Utils.py index e026694e..a6522aac 100755 --- a/src/O4_GUI_Utils.py +++ b/src/O4_GUI_Utils.py @@ -898,9 +898,14 @@ def show_tile_preview(self, filepreview, lat, lon): 0, 0, anchor=NW, image=self.photo ) self.canvas.config(scrollregion=self.canvas.bbox(ALL)) - self.canvas.bind("", self.scroll_start) - self.canvas.bind("", self.scroll_move) - self.canvas.bind("", self.delPol) + if "dar" in sys.platform and tk.TkVersion < 9: + self.canvas.bind("", self.scroll_start) + self.canvas.bind("", self.scroll_move) + self.canvas.bind("", self.delPol) + else: + self.canvas.bind("", self.scroll_start) + self.canvas.bind("", self.scroll_move) + self.canvas.bind("", self.delPol) self.canvas.bind( "", lambda event: self.canvas.focus_set() ) @@ -1361,8 +1366,12 @@ def __init__(self, parent, lat, lon): self.canvas.yview_moveto(y0 / self.resolution) self.nx0 = int((8 * x0) // self.resolution) self.ny0 = int((8 * y0) // self.resolution) - self.canvas.bind("", self.scroll_start) - self.canvas.bind("", self.scroll_move) + if "dar" in sys.platform and tk.TkVersion < 9: + self.canvas.bind("", self.scroll_start) + self.canvas.bind("", self.scroll_move) + else: + self.canvas.bind("", self.scroll_start) + self.canvas.bind("", self.scroll_move) self.canvas.bind("", self.select_tile) self.canvas.bind("", self.add_tile) self.canvas.bind("", self.toggle_to_custom)