From e5e60d3232d07627f7502e5cd7c090bd6639301b Mon Sep 17 00:00:00 2001 From: Juhani Numminen Date: Sat, 29 Feb 2020 11:40:01 +0200 Subject: [PATCH] Load icons from either images/misc or images/icons --- pysollib/util.py | 17 ++++++++++++++--- pysollib/winsystems/common.py | 3 ++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/pysollib/util.py b/pysollib/util.py index 94d38aab..49b83761 100644 --- a/pysollib/util.py +++ b/pysollib/util.py @@ -168,9 +168,20 @@ class DataLoader: return self.findFile(filename, subdirs) def findAllIconSizes(self, filename='pysol.png'): - icondir = self.findDir(os.path.join('images', 'icons')) - icons = [os.path.join(icondir, subdir, filename) for subdir in - os.listdir(icondir)] + try: + icondir = self.findDir(os.path.join('images', 'icons')) + icons = [os.path.join(icondir, subdir, filename) for subdir in + os.listdir(icondir)] + except OSError: + try: + # pysol06.png is known to have transparent borders around it + # which is unsuitable for a window icon + icon_blacklist = ('pysol06.png',) + miscdir = self.findDir(os.path.join('images', 'misc')) + icons = [os.path.join(miscdir, f) for f in os.listdir(miscdir) + if f not in icon_blacklist] + except OSError: + icons = [] return filter(os.path.isfile, icons) def findDir(self, filename, subdirs=None): diff --git a/pysollib/winsystems/common.py b/pysollib/winsystems/common.py index 3a65bbea..09cdf8c9 100644 --- a/pysollib/winsystems/common.py +++ b/pysollib/winsystems/common.py @@ -93,7 +93,8 @@ def base_init_root_window(root, app): if TOOLKIT == 'tk': icons = [loadImage(img) for img in app.dataloader.findAllIconSizes()] - root.wm_iconphoto(True, *icons) + if icons: + root.wm_iconphoto(True, *icons) # set minsize sw, sh = (root.winfo_screenwidth(), root.winfo_screenheight())