Dont need to restart when changing icon themes any more

This commit is contained in:
Kovid Goyal 2022-01-11 21:10:24 +05:30
parent 168f583396
commit 985befbb6d
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 14 additions and 5 deletions

View File

@ -93,6 +93,17 @@ class IconResourceManager:
finally:
f.close()
@property
def user_theme_title(self):
q = QIcon.themeName()
if q in (self.default_dark_theme_name, self.default_light_theme_name):
return _('Default icons')
if q == self.user_dark_theme_name:
return self.user_icon_theme_metadata('dark')['title']
if q == self.user_light_theme_name:
return self.user_icon_theme_metadata('light')['title']
return self.user_icon_theme_metadata('any')['title']
def initialize(self):
if self.initialized:
return

View File

@ -6,7 +6,6 @@ __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import json
from collections import defaultdict
from threading import Thread
@ -21,8 +20,8 @@ from calibre import human_readable
from calibre.ebooks.metadata.book.render import DEFAULT_AUTHOR_LINK
from calibre.constants import ismacos, iswindows
from calibre.ebooks.metadata.sources.prefs import msprefs
from calibre.gui2 import default_author_link, choose_save_file, choose_files
from calibre.gui2.custom_column_widgets import get_field_list as em_get_field_list
from calibre.gui2 import default_author_link, icon_resource_manager, choose_save_file, choose_files
from calibre.gui2.dialogs.template_dialog import TemplateDialog
from calibre.gui2.preferences import ConfigWidgetBase, test_widget, CommaSeparatedList
from calibre.gui2.preferences.look_feel_ui import Ui_Form
@ -414,7 +413,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
r = self.register
try:
self.icon_theme_title = json.loads(I('icon-theme.json', data=True))['name']
self.icon_theme_title = icon_resource_manager.user_theme_title
except Exception:
self.icon_theme_title = _('Default icons')
self.icon_theme.setText(_('Icon theme: <b>%s</b>') % self.icon_theme_title)
@ -871,7 +870,6 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
gprefs['cover_grid_texture'] = self.cg_bg_widget.btex
if self.commit_icon_theme is not None:
self.commit_icon_theme()
rr = True
gprefs['default_author_link'] = self.default_author_link.value
bcss = self.opt_book_details_css.toPlainText().encode('utf-8')
defcss = P('templates/book_details.css', data=True, allow_user_override=False)

View File

@ -150,7 +150,7 @@
<item row="1" column="1">
<widget class="QPushButton" name="icon_theme_button">
<property name="text">
<string>Change &amp;icon theme (needs restart)</string>
<string>Change &amp;icon theme</string>
</property>
</widget>
</item>