From d0364c96352bb4417475a0f61646c21e2a747717 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 3 Jul 2022 22:40:02 +0530 Subject: [PATCH] Workaround for QIcon::isNull() return False even though there are no available sizes --- src/calibre/customize/zipplugin.py | 2 +- src/calibre/gui2/__init__.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/calibre/customize/zipplugin.py b/src/calibre/customize/zipplugin.py index 5e53071bc3..83179a6f6e 100644 --- a/src/calibre/customize/zipplugin.py +++ b/src/calibre/customize/zipplugin.py @@ -79,7 +79,7 @@ def get_icons(zfp, name_or_list_of_names, plugin_name=''): if plugin_name: for name in namelist: q = QIcon.ic(f'{plugin_name}/{name}') - if q.isNull(): + if q.isNull() or not tuple(q.availableSizes()): failed.add(name) else: ans[name] = q diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 16535e6899..9402f0a36d 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -167,11 +167,11 @@ class IconResourceManager: return QIcon(q) icon_name = os.path.splitext(name.replace('\\', '__').replace('/', '__'))[0] ans = QIcon.fromTheme(icon_name) - if ans.isNull(): + if ans.isNull() and not tuple(ans.availableSizes()): if 'user-any' in QIcon.themeName(): tc = 'dark' if QApplication.instance().is_dark_theme else 'light' q = QIcon(f':/icons/calibre-default-{tc}/images/{name}') - if not q.isNull(): + if not q.isNull() and tuple(q.availableSizes()): ans = q return ans