From bffaacd3c23d3fc0f45e422d208bfbad37155748 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 10 Jan 2022 14:46:43 +0530 Subject: [PATCH] Build a Qt resource file containing the icon themes generated from the actual image files Loading from a resource file should be considerably faster --- setup/extensions.json | 8 ++++---- setup/gui.py | 5 +++++ src/calibre/{gui2 => utils}/rcc/__init__.py | 0 src/calibre/{gui2 => utils}/rcc/rcc.cpp | 0 src/calibre/{gui2 => utils}/rcc/rcc.h | 0 src/calibre/{gui2 => utils}/rcc/rcc.sip | 0 6 files changed, 9 insertions(+), 4 deletions(-) rename src/calibre/{gui2 => utils}/rcc/__init__.py (100%) rename src/calibre/{gui2 => utils}/rcc/rcc.cpp (100%) rename src/calibre/{gui2 => utils}/rcc/rcc.h (100%) rename src/calibre/{gui2 => utils}/rcc/rcc.sip (100%) diff --git a/setup/extensions.json b/setup/extensions.json index 692e5d209c..29625fd870 100644 --- a/setup/extensions.json +++ b/setup/extensions.json @@ -133,10 +133,10 @@ }, { "name": "rcc_backend", - "sources": "calibre/gui2/rcc/rcc.cpp", - "headers": "calibre/gui2/rcc/rcc.h", - "sip_files": "calibre/gui2/rcc/rcc.sip", - "inc_dirs": "calibre/gui2/rcc", + "sources": "calibre/utils/rcc/rcc.cpp", + "headers": "calibre/utils/rcc/rcc.h", + "sip_files": "calibre/utils/rcc/rcc.sip", + "inc_dirs": "calibre/utils/rcc", "qt_modules": ["-gui"] }, { diff --git a/setup/gui.py b/setup/gui.py index 5c88570100..e9b00706ec 100644 --- a/setup/gui.py +++ b/setup/gui.py @@ -14,6 +14,7 @@ class GUI(Command): description = 'Compile all GUI forms' PATH = os.path.join(Command.SRC, __appname__, 'gui2') QRC = os.path.join(Command.RESOURCES, 'images.qrc') + RCC = os.path.join(Command.RESOURCES, 'icons.rcc') def add_options(self, parser): parser.add_option('--summary', default=False, action='store_true', @@ -52,6 +53,10 @@ class GUI(Command): for root, _, files2 in os.walk('images'): for name in files2: sources.append(os.path.join(root, name)) + if self.newer(self.RCC, sources): + self.info('Creating icon theme resource file') + from calibre.utils.rcc import compile_icon_dir_as_themes + compile_icon_dir_as_themes('images', self.RCC) if self.newer(self.QRC, sources): self.info('Creating images.qrc') for s in sources: diff --git a/src/calibre/gui2/rcc/__init__.py b/src/calibre/utils/rcc/__init__.py similarity index 100% rename from src/calibre/gui2/rcc/__init__.py rename to src/calibre/utils/rcc/__init__.py diff --git a/src/calibre/gui2/rcc/rcc.cpp b/src/calibre/utils/rcc/rcc.cpp similarity index 100% rename from src/calibre/gui2/rcc/rcc.cpp rename to src/calibre/utils/rcc/rcc.cpp diff --git a/src/calibre/gui2/rcc/rcc.h b/src/calibre/utils/rcc/rcc.h similarity index 100% rename from src/calibre/gui2/rcc/rcc.h rename to src/calibre/utils/rcc/rcc.h diff --git a/src/calibre/gui2/rcc/rcc.sip b/src/calibre/utils/rcc/rcc.sip similarity index 100% rename from src/calibre/gui2/rcc/rcc.sip rename to src/calibre/utils/rcc/rcc.sip