From 0d8407f6248175b418aa7a22d6508a873eedbbc7 Mon Sep 17 00:00:00 2001 From: Martin Tranberg Date: Tue, 31 Mar 2026 16:11:08 +0200 Subject: [PATCH] feat: add application icon and improve path handling for bundled executables --- icon.ico | Bin 0 -> 67646 bytes sharepoint_browser.py | 18 ++++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 icon.ico diff --git a/icon.ico b/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..22ba4a6b6c346b39c4be8170f060bf14b5505527 GIT binary patch literal 67646 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 BbQ}Nx literal 0 HcmV?d00001 diff --git a/sharepoint_browser.py b/sharepoint_browser.py index 0f53482..7844c51 100644 --- a/sharepoint_browser.py +++ b/sharepoint_browser.py @@ -12,13 +12,15 @@ import webbrowser # --- STIHÅNDTERING (Til EXE-brug) --- if getattr(sys, 'frozen', False): - # Vi kører som en kompileret .exe - base_dir = os.path.dirname(sys.executable) + # RESOURCE_DIR er mapper indeni EXE-filen (ikoner, billeder) + RESOURCE_DIR = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) + # CONFIG_DIR er mappen hvor selve .exe filen ligger (settings.json) + CONFIG_DIR = os.path.dirname(sys.executable) else: - # Vi kører som normalt script - base_dir = os.path.dirname(os.path.abspath(__file__)) + RESOURCE_DIR = os.path.dirname(os.path.abspath(__file__)) + CONFIG_DIR = RESOURCE_DIR -SETTINGS_FILE = os.path.join(base_dir, 'settings.json') +SETTINGS_FILE = os.path.join(CONFIG_DIR, 'settings.json') def load_settings(): default_settings = { @@ -277,7 +279,11 @@ class SharePointApp(wx.Frame): self.Centre() self.Show() self.Bind(wx.EVT_CLOSE, self.on_close_window) - + + # SÆT VINDUESIKON (øverste venstre hjørne) + icon_path = os.path.join(RESOURCE_DIR, "icon.ico") + if os.path.exists(icon_path): + self.SetIcon(wx.Icon(icon_path, wx.BITMAP_TYPE_ICO)) def get_txt(self, key, **kwargs): text = STRINGS[self.lang].get(key, key) if kwargs: