diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index b4d5412668..6a9ae0032d 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -515,7 +515,7 @@ def show_restart_warning(msg, parent=None): d = warning_dialog(parent, _('Restart needed'), msg, show_copy_button=False) b = d.bb.addButton(_('&Restart calibre now'), QDialogButtonBox.ButtonRole.AcceptRole) - b.setIcon(QIcon(I('lt.png'))) + b.setIcon(QIcon.ic('lt.png')) d.do_restart = False def rf(): diff --git a/src/calibre/gui2/actions/__init__.py b/src/calibre/gui2/actions/__init__.py index 444541141c..a33293e424 100644 --- a/src/calibre/gui2/actions/__init__.py +++ b/src/calibre/gui2/actions/__init__.py @@ -158,7 +158,7 @@ class InterfaceAction(QObject): spec = self.action_spec text, icon, tooltip, shortcut = spec if icon is not None: - action = QAction(QIcon(I(icon)), text, self.gui) + action = QAction(QIcon.ic(icon), text, self.gui) else: action = QAction(text, self.gui) if attr == 'qaction': @@ -253,7 +253,7 @@ class InterfaceAction(QObject): ac = menu.addAction(text) if icon is not None: if not isinstance(icon, QIcon): - icon = QIcon(I(icon)) + icon = QIcon.ic(icon) ac.setIcon(icon) keys = () if shortcut is not None and shortcut is not False: diff --git a/src/calibre/gui2/actions/choose_library.py b/src/calibre/gui2/actions/choose_library.py index 288a4a576c..57462e55b4 100644 --- a/src/calibre/gui2/actions/choose_library.py +++ b/src/calibre/gui2/actions/choose_library.py @@ -139,14 +139,14 @@ class MovedDialog(QDialog): # {{{ self.loc = QLineEdit(loc, self) l.addWidget(self.loc, l.rowCount(), 0, 1, 1) self.cd = QToolButton(self) - self.cd.setIcon(QIcon(I('document_open.png'))) + self.cd.setIcon(QIcon.ic('document_open.png')) self.cd.clicked.connect(self.choose_dir) l.addWidget(self.cd, l.rowCount() - 1, 1, 1, 1) self.bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Abort) b = self.bb.addButton(_('Library moved'), QDialogButtonBox.ButtonRole.AcceptRole) - b.setIcon(QIcon(I('ok.png'))) + b.setIcon(QIcon.ic('ok.png')) b = self.bb.addButton(_('Forget library'), QDialogButtonBox.ButtonRole.RejectRole) - b.setIcon(QIcon(I('edit-clear.png'))) + b.setIcon(QIcon.ic('edit-clear.png')) b.clicked.connect(self.forget_library) self.bb.accepted.connect(self.accept) self.bb.rejected.connect(self.reject) @@ -188,7 +188,7 @@ class BackupStatus(QDialog): # {{{ bb.rejected.connect(self.reject) b = bb.addButton(_('Queue &all books for backup'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.mark_all_dirty) - b.setIcon(QIcon(I('lt.png'))) + b.setIcon(QIcon.ic('lt.png')) l.addWidget(bb) self.db = weakref.ref(gui.current_db) self.setResult(9) @@ -265,7 +265,7 @@ class ChooseLibraryAction(InterfaceAction): ac.triggered.connect(self.pick_random) self.choose_library_icon_menu = QMenu(_('Change the icon for this library')) - self.choose_library_icon_menu.setIcon(QIcon(I('icon_choose.png'))) + self.choose_library_icon_menu.setIcon(QIcon.ic('icon_choose.png')) self.choose_library_icon_action = self.create_action( spec=(_('Choose an icon'), 'icon_choose.png', None, None), attr='action_choose_library_icon') @@ -532,7 +532,7 @@ class ChooseLibraryAction(InterfaceAction): restrictions.insert(0, '') for vl in restrictions: if vl == vl_at_startup: - self.vl_to_apply_menu.addAction(QIcon(I('ok.png')), vl if vl else _('No Virtual library'), + self.vl_to_apply_menu.addAction(QIcon.ic('ok.png'), vl if vl else _('No Virtual library'), Dispatcher(partial(self.change_vl_at_startup_requested, vl))) else: self.vl_to_apply_menu.addAction(vl if vl else _('No Virtual library'), diff --git a/src/calibre/gui2/actions/copy_to_library.py b/src/calibre/gui2/actions/copy_to_library.py index 9187802163..02929721d6 100644 --- a/src/calibre/gui2/actions/copy_to_library.py +++ b/src/calibre/gui2/actions/copy_to_library.py @@ -226,7 +226,7 @@ class ChooseLibrary(Dialog): # {{{ le = self.le = QLineEdit(self) la.setBuddy(le) b = self.b = QToolButton(self) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) b.setToolTip(_('Browse for library')) b.clicked.connect(self.browse) h = QHBoxLayout() @@ -237,11 +237,11 @@ class ChooseLibrary(Dialog): # {{{ bb.setStandardButtons(QDialogButtonBox.StandardButton.Cancel) self.delete_after_copy = False b = bb.addButton(_('&Copy'), QDialogButtonBox.ButtonRole.AcceptRole) - b.setIcon(QIcon(I('edit-copy.png'))) + b.setIcon(QIcon.ic('edit-copy.png')) b.setToolTip(_('Copy to the specified library')) b2 = bb.addButton(_('&Move'), QDialogButtonBox.ButtonRole.AcceptRole) connect_lambda(b2.clicked, self, lambda self: setattr(self, 'delete_after_copy', True)) - b2.setIcon(QIcon(I('edit-cut.png'))) + b2.setIcon(QIcon.ic('edit-cut.png')) b2.setToolTip(_('Copy to the specified library and delete from the current library')) b.setDefault(True) l.addWidget(bb, 1, 0, 1, 2) @@ -293,11 +293,11 @@ class DuplicatesQuestion(QDialog): # {{{ bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) self.a = b = bb.addButton(_('Select &all'), QDialogButtonBox.ButtonRole.ActionRole) - b.clicked.connect(self.select_all), b.setIcon(QIcon(I('plus.png'))) + b.clicked.connect(self.select_all), b.setIcon(QIcon.ic('plus.png')) self.n = b = bb.addButton(_('Select &none'), QDialogButtonBox.ButtonRole.ActionRole) - b.clicked.connect(self.select_none), b.setIcon(QIcon(I('minus.png'))) + b.clicked.connect(self.select_none), b.setIcon(QIcon.ic('minus.png')) self.ctc = b = bb.addButton(_('&Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole) - b.clicked.connect(self.copy_to_clipboard), b.setIcon(QIcon(I('edit-copy.png'))) + b.clicked.connect(self.copy_to_clipboard), b.setIcon(QIcon.ic('edit-copy.png')) l.addWidget(bb) self.resize(600, 400) diff --git a/src/calibre/gui2/actions/device.py b/src/calibre/gui2/actions/device.py index 41c93a4d18..15056d4b3f 100644 --- a/src/calibre/gui2/actions/device.py +++ b/src/calibre/gui2/actions/device.py @@ -45,22 +45,22 @@ class ShareConnMenu(QMenu): # {{{ def __init__(self, parent=None): QMenu.__init__(self, parent) self.ip_text = '' - mitem = self.addAction(QIcon(I('devices/folder.png')), _('Connect to folder')) + mitem = self.addAction(QIcon.ic('devices/folder.png'), _('Connect to folder')) mitem.setEnabled(True) connect_lambda(mitem.triggered, self, lambda self: self.connect_to_folder.emit()) self.connect_to_folder_action = mitem self.addSeparator() self.toggle_server_action = \ - self.addAction(QIcon(I('network-server.png')), + self.addAction(QIcon.ic('network-server.png'), _('Start Content server')) connect_lambda(self.toggle_server_action.triggered, self, lambda self: self.toggle_server.emit()) self.open_server_in_browser_action = self.addAction( - QIcon(I('forward.png')), _("Visit Content server in browser")) + QIcon.ic('forward.png'), _("Visit Content server in browser")) connect_lambda(self.open_server_in_browser_action.triggered, self, lambda self: open_in_browser()) self.open_server_in_browser_action.setVisible(False) self.control_smartdevice_action = \ - self.addAction(QIcon(I('dot_red.png')), + self.addAction(QIcon.ic('dot_red.png'), self.DEVICE_MSGS[0]) connect_lambda(self.control_smartdevice_action.triggered, self, lambda self: self.control_smartdevice.emit()) self.addSeparator() @@ -228,10 +228,10 @@ class ConnectShareAction(InterfaceAction): self.share_conn_menu.server_state_changed(running) if running: self.content_server_is_running = True - self.qaction.setIcon(QIcon(I('connect_share_on.png'))) + self.qaction.setIcon(QIcon.ic('connect_share_on.png')) else: self.content_server_is_running = False - self.qaction.setIcon(QIcon(I('connect_share.png'))) + self.qaction.setIcon(QIcon.ic('connect_share.png')) def toggle_content_server(self): if self.gui.content_server is None: @@ -304,5 +304,5 @@ class ConnectShareAction(InterfaceAction): icon = 'green' if running else 'red' ac = self.share_conn_menu.control_smartdevice_action - ac.setIcon(QIcon(I('dot_%s.png'%icon))) + ac.setIcon(QIcon.ic('dot_%s.png'%icon)) ac.setText(text) diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index cbd31c0c7e..bc604052ca 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -305,7 +305,7 @@ class EditMetadataAction(InterfaceAction): log_is_file=True, checkbox_msg=checkbox_msg, checkbox_checked=False, action_callback=review_apply, action_label=_('Revie&w downloaded metadata'), - action_icon=QIcon(I('auto_author_sort.png'))) + action_icon=QIcon.ic('auto_author_sort.png')) def apply_downloaded_metadata(self, review, payload, *args): good_ids, tdir, log_file, lm_map, failed_ids = payload diff --git a/src/calibre/gui2/actions/plugin_updates.py b/src/calibre/gui2/actions/plugin_updates.py index 67f4e79ac3..39e4b383ad 100644 --- a/src/calibre/gui2/actions/plugin_updates.py +++ b/src/calibre/gui2/actions/plugin_updates.py @@ -18,7 +18,7 @@ class PluginUpdaterAction(InterfaceAction): action_type = 'current' def genesis(self): - self.qaction.setIcon(QIcon(I('plugins/plugin_updater.png'))) + self.qaction.setIcon(QIcon.ic('plugins/plugin_updater.png')) self.qaction.triggered.connect(self.check_for_plugin_updates) def check_for_plugin_updates(self): diff --git a/src/calibre/gui2/actions/polish.py b/src/calibre/gui2/actions/polish.py index 3c0c41d418..c79c17a321 100644 --- a/src/calibre/gui2/actions/polish.py +++ b/src/calibre/gui2/actions/polish.py @@ -29,7 +29,7 @@ class Polish(QDialog): # {{{ from calibre.ebooks.oeb.polish.main import HELP QDialog.__init__(self, parent) self.db, self.book_id_map = weakref.ref(db), book_id_map - self.setWindowIcon(QIcon(I('polish.png'))) + self.setWindowIcon(QIcon.ic('polish.png')) title = _('Polish book') if len(book_id_map) > 1: title = _('Polish %d books')%len(book_id_map) @@ -313,7 +313,7 @@ class Report(QDialog): # {{{ QDialog.__init__(self, parent) self.gui = parent self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose, False) - self.setWindowIcon(QIcon(I('polish.png'))) + self.setWindowIcon(QIcon.ic('polish.png')) self.reports = [] self.l = l = QGridLayout() diff --git a/src/calibre/gui2/actions/preferences.py b/src/calibre/gui2/actions/preferences.py index dd29b696e3..e237df4de6 100644 --- a/src/calibre/gui2/actions/preferences.py +++ b/src/calibre/gui2/actions/preferences.py @@ -26,7 +26,7 @@ class PreferencesAction(InterfaceAction): pm = self.qaction.menu() cm = partial(self.create_menu_action, pm) if ismacos: - pm.addAction(QIcon(I('config.png')), _('Preferences'), self.do_config) + pm.addAction(QIcon.ic('config.png'), _('Preferences'), self.do_config) cm('welcome wizard', _('Run Welcome wizard'), icon='wizard.png', triggered=self.gui.run_wizard) cm('plugin updater', _('Get plugins to enhance calibre'), diff --git a/src/calibre/gui2/actions/sort.py b/src/calibre/gui2/actions/sort.py index 02282cddab..2159f9c0da 100644 --- a/src/calibre/gui2/actions/sort.py +++ b/src/calibre/gui2/actions/sort.py @@ -55,7 +55,7 @@ class SortByAction(InterfaceAction): dont_add_to = frozenset(('context-menu-cover-browser', )) def genesis(self): - self.sorted_icon = QIcon(I('ok.png')) + self.sorted_icon = QIcon.ic('ok.png') self.qaction.menu().aboutToShow.connect(self.about_to_show) def c(attr, title, tooltip, callback, keys=()): diff --git a/src/calibre/gui2/actions/toc_edit.py b/src/calibre/gui2/actions/toc_edit.py index 91ff110e9a..d077ed8d83 100644 --- a/src/calibre/gui2/actions/toc_edit.py +++ b/src/calibre/gui2/actions/toc_edit.py @@ -25,7 +25,7 @@ class ChooseFormat(QDialog): # {{{ def __init__(self, formats, parent=None): QDialog.__init__(self, parent) self.setWindowTitle(_('Choose format to edit')) - self.setWindowIcon(QIcon(I('dialog_question.png'))) + self.setWindowIcon(QIcon.ic('dialog_question.png')) l = self.l = QGridLayout() self.setLayout(l) la = self.la = QLabel(_('Choose which format you want to edit:')) diff --git a/src/calibre/gui2/actions/unpack_book.py b/src/calibre/gui2/actions/unpack_book.py index 0c080b1460..d729542d6e 100644 --- a/src/calibre/gui2/actions/unpack_book.py +++ b/src/calibre/gui2/actions/unpack_book.py @@ -23,7 +23,7 @@ class UnpackBook(QDialog): def __init__(self, parent, book_id, fmts, db): QDialog.__init__(self, parent) - self.setWindowIcon(QIcon(I('unpack-book.png'))) + self.setWindowIcon(QIcon.ic('unpack-book.png')) self.book_id, self.fmts, self.db_ref = book_id, fmts, weakref.ref(db) self._exploded = None self._cleanup_dirs = [] @@ -102,10 +102,10 @@ class UnpackBook(QDialog): b.setContentsMargins(left, top, right, bottom) l.addLayout(b, stretch=10) - self.explode_button = QPushButton(QIcon(I('wizard.png')), _('&Explode book')) - self.preview_button = QPushButton(QIcon(I('view.png')), _('&Preview book')) - self.cancel_button = QPushButton(QIcon(I('window-close.png')), _('&Cancel')) - self.rebuild_button = QPushButton(QIcon(I('exec.png')), _('&Rebuild book')) + self.explode_button = QPushButton(QIcon.ic('wizard.png'), _('&Explode book')) + self.preview_button = QPushButton(QIcon.ic('view.png'), _('&Preview book')) + self.cancel_button = QPushButton(QIcon.ic('window-close.png'), _('&Cancel')) + self.rebuild_button = QPushButton(QIcon.ic('exec.png'), _('&Rebuild book')) self.explode_button.setToolTip( _('Explode the book to edit its components')) diff --git a/src/calibre/gui2/actions/view.py b/src/calibre/gui2/actions/view.py index 376ca6eebc..7c5bad9ca9 100644 --- a/src/calibre/gui2/actions/view.py +++ b/src/calibre/gui2/actions/view.py @@ -66,7 +66,7 @@ class ViewAction(InterfaceAction): self.internal_view_action = cm('internal', _('View with calibre E-book viewer'), icon='viewer.png', triggered=self.view_internal) self.action_pick_random = cm('pick random', _('Read a random book'), icon='random.png', triggered=self.view_random) - self.view_menu.addAction(QIcon(I('highlight.png')), _('Browse annotations'), self.browse_annots) + self.view_menu.addAction(QIcon.ic('highlight.png'), _('Browse annotations'), self.browse_annots) self.clear_sep1 = self.view_menu.addSeparator() self.clear_sep2 = self.view_menu.addSeparator() self.clear_history_action = cm('clear history', diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index 50fb82377d..72f5bea7f6 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -80,10 +80,10 @@ def create_search_internet_menu(callback, author=None): if author is not None else _('Search the internet for this book') ) - m.menuAction().setIcon(QIcon(I('search.png'))) + m.menuAction().setIcon(QIcon.ic('search.png')) items = all_book_searches() if author is None else all_author_searches() for k in sorted(items, key=lambda k: name_for(k).lower()): - m.addAction(QIcon(I('search.png')), name_for(k), partial(callback, InternetSearch(author, k))) + m.addAction(QIcon.ic('search.png'), name_for(k), partial(callback, InternetSearch(author, k))) return m @@ -109,7 +109,7 @@ def escape_for_menu(x): def init_manage_action(ac, field, value): from calibre.library.field_metadata import category_icon_map ic = category_icon_map.get(field) or 'blank.png' - ac.setIcon(QIcon(I(ic))) + ac.setIcon(QIcon.ic(ic)) ac.setText(_('Manage %s') % escape_for_menu(value)) ac.current_fmt = field, value return ac @@ -119,7 +119,7 @@ def init_find_in_tag_browser(menu, ac, field, value): from calibre.gui2.ui import get_gui hidden_cats = get_gui().tags_view.model().hidden_categories if field not in hidden_cats: - ac.setIcon(QIcon(I('search.png'))) + ac.setIcon(QIcon.ic('search.png')) ac.setText(_('Find %s in the Tag browser') % escape_for_menu(value)) ac.current_fmt = field, value menu.addAction(ac) @@ -155,7 +155,7 @@ def init_find_in_grouped_search(menu, field, value, book_info): if gsts_to_show: m = QMenu((_('Search calibre for %s') + '...')%escape_for_menu(value), menu) - m.setIcon(QIcon(I('search.png'))) + m.setIcon(QIcon.ic('search.png')) menu.addMenu(m) m.addAction(QIcon(get_icon_path(field, '')), _('in category %s')%escape_for_menu(field_name), @@ -168,7 +168,7 @@ def init_find_in_grouped_search(menu, field, value, book_info): lambda g=gst: book_info.search_requested( '{}:"={}"'.format(g, value.replace('"', r'\"')), '')) else: - menu.addAction(QIcon(I('search.png')), + menu.addAction(QIcon.ic('search.png'), _('Search calibre for {val} in category {name}').format( val=escape_for_menu(value), name=escape_for_menu(field_name)), lambda g=field: book_info.search_requested( @@ -313,7 +313,7 @@ def add_item_specific_entries(menu, data, book_info, copy_menu, search_menu): dt = data['type'] def add_copy_action(name): - copy_menu.addAction(QIcon(I('edit-copy.png')), _('The text: {}').format(name), lambda: QApplication.instance().clipboard().setText(name)) + copy_menu.addAction(QIcon.ic('edit-copy.png'), _('The text: {}').format(name), lambda: QApplication.instance().clipboard().setText(name)) if dt == 'format': add_format_entries(menu, data, book_info, copy_menu, search_menu) @@ -379,7 +379,7 @@ def add_item_specific_entries(menu, data, book_info, copy_menu, search_menu): init_find_in_grouped_search(search_menu, field, value, book_info) else: v = data.get('original_value') or data.get('value') - copy_menu.addAction(QIcon(I('edit-copy.png')), _('The text: {}').format(v), + copy_menu.addAction(QIcon.ic('edit-copy.png'), _('The text: {}').format(v), lambda: QApplication.instance().clipboard().setText(v)) ac = book_info.remove_item_action ac.data = (field, remove_value, book_id) @@ -387,7 +387,7 @@ def add_item_specific_entries(menu, data, book_info, copy_menu, search_menu): menu.addAction(ac) else: v = data.get('original_value') or data.get('value') - copy_menu.addAction(QIcon(I('edit-copy.png')), _('The text: {}').format(v), + copy_menu.addAction(QIcon.ic('edit-copy.png'), _('The text: {}').format(v), lambda: QApplication.instance().clipboard().setText(v)) return search_internet_added @@ -404,7 +404,7 @@ def create_copy_links(menu, data=None): def link(text, url): def doit(): QApplication.instance().clipboard().setText(url) - menu.addAction(QIcon(I('edit-copy.png')), text, doit) + menu.addAction(QIcon.ic('edit-copy.png'), text, doit) menu.addSeparator() link(_('Link to show book in calibre'), f'calibre://show-book/{library_id}/{book_id}') @@ -426,15 +426,15 @@ def create_copy_links(menu, data=None): def details_context_menu_event(view, ev, book_info, add_popup_action=False, edit_metadata=None): url = view.anchorAt(ev.pos()) menu = QMenu(view) - copy_menu = menu.addMenu(QIcon(I('edit-copy.png')), _('Copy')) - copy_menu.addAction(QIcon(I('edit-copy.png')), _('All book details'), partial(copy_all, view)) + copy_menu = menu.addMenu(QIcon.ic('edit-copy.png'), _('Copy')) + copy_menu.addAction(QIcon.ic('edit-copy.png'), _('All book details'), partial(copy_all, view)) if view.textCursor().hasSelection(): - copy_menu.addAction(QIcon(I('edit-copy.png')), _('Selected text'), view.copy) + copy_menu.addAction(QIcon.ic('edit-copy.png'), _('Selected text'), view.copy) copy_menu.addSeparator() copy_links_added = False search_internet_added = False search_menu = QMenu(_('Search'), menu) - search_menu.setIcon(QIcon(I('search.png'))) + search_menu.setIcon(QIcon.ic('search.png')) if url and url.startswith('action:'): data = json_loads(from_hex_bytes(url.split(':', 1)[1])) search_internet_added = add_item_specific_entries(menu, data, book_info, copy_menu, search_menu) @@ -784,7 +784,7 @@ class BookInfo(HTMLDisplay): ('set_cover_format', 'default_cover.png'), ('find_in_tag_browser', 'search.png') ]: - ac = QAction(QIcon(I(icon)), '', self) + ac = QAction(QIcon.ic(icon), '', self) ac.current_fmt = None ac.current_url = None ac.triggered.connect(getattr(self, '%s_triggerred'%x)) @@ -792,12 +792,12 @@ class BookInfo(HTMLDisplay): self.manage_action = QAction(self) self.manage_action.current_fmt = self.manage_action.current_url = None self.manage_action.triggered.connect(self.manage_action_triggered) - self.edit_identifiers_action = QAction(QIcon(I('identifiers.png')), _('Edit identifiers for this book'), self) + self.edit_identifiers_action = QAction(QIcon.ic('identifiers.png'), _('Edit identifiers for this book'), self) self.edit_identifiers_action.triggered.connect(self.edit_identifiers) - self.remove_item_action = ac = QAction(QIcon(I('minus.png')), '...', self) + self.remove_item_action = ac = QAction(QIcon.ic('minus.png'), '...', self) ac.data = (None, None, None) ac.triggered.connect(self.remove_item_triggered) - self.copy_identifiers_url_action = ac = QAction(QIcon(I('edit-copy.png')), _('Identifier &URL'), self) + self.copy_identifiers_url_action = ac = QAction(QIcon.ic('edit-copy.png'), _('Identifier &URL'), self) ac.triggered.connect(self.copy_id_url_triggerred) ac.current_url = ac.current_fmt = None self.setFocusPolicy(Qt.FocusPolicy.NoFocus) diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.py b/src/calibre/gui2/catalog/catalog_epub_mobi.py index 2ab3a7f97b..3f51321dac 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.py +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.py @@ -368,7 +368,7 @@ class PluginWidget(QWidget,Ui_Form): prefix_rules.append(opt_value) # Add icon to the reset button, hook textChanged signal - self.reset_exclude_genres_tb.setIcon(QIcon(I('trash.png'))) + self.reset_exclude_genres_tb.setIcon(QIcon.ic('trash.png')) self.reset_exclude_genres_tb.clicked.connect(self.exclude_genre_reset) # Hook textChanged event for exclude_genre QLineEdit @@ -931,28 +931,28 @@ class GenericRulesTable(QTableWidget): self.move_rule_up_tb = QToolButton() self.move_rule_up_tb.setObjectName("move_rule_up_tb") self.move_rule_up_tb.setToolTip('Move rule up') - self.move_rule_up_tb.setIcon(QIcon(I('arrow-up.png'))) + self.move_rule_up_tb.setIcon(QIcon.ic('arrow-up.png')) self.move_rule_up_tb.clicked.connect(self.move_row_up) vbl.addWidget(self.move_rule_up_tb) self.add_rule_tb = QToolButton() self.add_rule_tb.setObjectName("add_rule_tb") self.add_rule_tb.setToolTip('Add a new rule') - self.add_rule_tb.setIcon(QIcon(I('plus.png'))) + self.add_rule_tb.setIcon(QIcon.ic('plus.png')) self.add_rule_tb.clicked.connect(self.add_row) vbl.addWidget(self.add_rule_tb) self.delete_rule_tb = QToolButton() self.delete_rule_tb.setObjectName("delete_rule_tb") self.delete_rule_tb.setToolTip('Delete selected rule') - self.delete_rule_tb.setIcon(QIcon(I('list_remove.png'))) + self.delete_rule_tb.setIcon(QIcon.ic('list_remove.png')) self.delete_rule_tb.clicked.connect(self.delete_row) vbl.addWidget(self.delete_rule_tb) self.move_rule_down_tb = QToolButton() self.move_rule_down_tb.setObjectName("move_rule_down_tb") self.move_rule_down_tb.setToolTip('Move rule down') - self.move_rule_down_tb.setIcon(QIcon(I('arrow-down.png'))) + self.move_rule_down_tb.setIcon(QIcon.ic('arrow-down.png')) self.move_rule_down_tb.clicked.connect(self.move_row_down) vbl.addWidget(self.move_rule_down_tb) diff --git a/src/calibre/gui2/comments_editor.py b/src/calibre/gui2/comments_editor.py index 59590a72f8..94219a35f6 100644 --- a/src/calibre/gui2/comments_editor.py +++ b/src/calibre/gui2/comments_editor.py @@ -301,7 +301,7 @@ class EditorWidget(QTextEdit, LineEditECM): # {{{ r('insert_hr', 'format-text-hr', _('Insert separator'),) r('clear', 'trash', _('Clear')) - self.action_block_style = QAction(QIcon(I('format-text-heading.png')), + self.action_block_style = QAction(QIcon.ic('format-text-heading.png'), _('Style text block'), self) self.action_block_style.setToolTip( _('Style the selected text block')) @@ -654,7 +654,7 @@ class EditorWidget(QTextEdit, LineEditECM): # {{{ d.setMinimumWidth(600) d.bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) d.br = b = QPushButton(_('&Browse')) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) def cf(): filetypes = [] diff --git a/src/calibre/gui2/convert/single.py b/src/calibre/gui2/convert/single.py index 5c8412da15..dd6d3ca6b8 100644 --- a/src/calibre/gui2/convert/single.py +++ b/src/calibre/gui2/convert/single.py @@ -85,7 +85,7 @@ class Config(QDialog): self.groups.entered[(QModelIndex)].connect(self.show_group_help) rb = self.buttonBox.button(QDialogButtonBox.StandardButton.RestoreDefaults) rb.setText(_('Restore &defaults')) - rb.setIcon(QIcon(I('clear_left.png'))) + rb.setIcon(QIcon.ic('clear_left.png')) rb.clicked.connect(self.restore_defaults) self.groups.setMouseTracking(True) geom = gprefs.get('convert_single_dialog_geom', None) @@ -100,7 +100,7 @@ class Config(QDialog): def setupUi(self): self.setObjectName("Dialog") self.resize(1024, 700) - self.setWindowIcon(QIcon(I('convert.png'))) + self.setWindowIcon(QIcon.ic('convert.png')) self.gridLayout = QGridLayout(self) self.gridLayout.setObjectName("gridLayout") self.horizontalLayout = QHBoxLayout() diff --git a/src/calibre/gui2/convert/xpath_wizard.py b/src/calibre/gui2/convert/xpath_wizard.py index 1c21982dde..4d5f964ac8 100644 --- a/src/calibre/gui2/convert/xpath_wizard.py +++ b/src/calibre/gui2/convert/xpath_wizard.py @@ -76,7 +76,7 @@ class XPathEdit(QWidget): self.l = l = QVBoxLayout() h.addLayout(l) self.button = b = QToolButton(self) - b.setIcon(QIcon(I('wizard.png'))) + b.setIcon(QIcon.ic('wizard.png')) b.setToolTip(_('Use a wizard to generate the XPath expression')) b.clicked.connect(self.wizard) h.addWidget(b) diff --git a/src/calibre/gui2/covers.py b/src/calibre/gui2/covers.py index d316368441..42c43fdb37 100644 --- a/src/calibre/gui2/covers.py +++ b/src/calibre/gui2/covers.py @@ -143,13 +143,13 @@ class CoverSettingsWidget(QWidget): self.colors_list = cl = QListWidget(cp) l.addWidget(cl, 1, 0, 1, -1) self.colors_map = OrderedDict() - self.ncs = ncs = QPushButton(QIcon(I('plus.png')), _('&New color scheme'), cp) + self.ncs = ncs = QPushButton(QIcon.ic('plus.png'), _('&New color scheme'), cp) ncs.clicked.connect(self.create_color_scheme) l.addWidget(ncs) - self.ecs = ecs = QPushButton(QIcon(I('format-fill-color.png')), _('&Edit color scheme'), cp) + self.ecs = ecs = QPushButton(QIcon.ic('format-fill-color.png'), _('&Edit color scheme'), cp) ecs.clicked.connect(self.edit_color_scheme) l.addWidget(ecs, l.rowCount()-1, 1) - self.rcs = rcs = QPushButton(QIcon(I('minus.png')), _('&Remove color scheme'), cp) + self.rcs = rcs = QPushButton(QIcon.ic('minus.png'), _('&Remove color scheme'), cp) rcs.clicked.connect(self.remove_color_scheme) l.addWidget(rcs, l.rowCount()-1, 2) diff --git a/src/calibre/gui2/custom_column_widgets.py b/src/calibre/gui2/custom_column_widgets.py index 0dae360b0d..611dbca732 100644 --- a/src/calibre/gui2/custom_column_widgets.py +++ b/src/calibre/gui2/custom_column_widgets.py @@ -88,7 +88,7 @@ class Base: self.editor = editor = edit_widget(parent) l.addWidget(editor) self.clear_button = QToolButton(parent) - self.clear_button.setIcon(QIcon(I('trash.png'))) + self.clear_button.setIcon(QIcon.ic('trash.png')) self.clear_button.clicked.connect(self.set_to_undefined) self.clear_button.setToolTip(_('Clear {0}').format(self.col_metadata['name'])) l.addWidget(self.clear_button) @@ -192,20 +192,20 @@ class Bool(Base): l.addWidget(self.combobox) c = QToolButton(parent) - c.setIcon(QIcon(I('ok.png'))) + c.setIcon(QIcon.ic('ok.png')) c.setToolTip(_('Set {} to yes').format(name)) l.addWidget(c) c.clicked.connect(self.set_to_yes) c = QToolButton(parent) - c.setIcon(QIcon(I('list_remove.png'))) + c.setIcon(QIcon.ic('list_remove.png')) c.setToolTip(_('Set {} to no').format(name)) l.addWidget(c) c.clicked.connect(self.set_to_no) if self.db.new_api.pref('bools_are_tristate'): c = QToolButton(parent) - c.setIcon(QIcon(I('trash.png'))) + c.setIcon(QIcon.ic('trash.png')) c.setToolTip(_('Clear {}').format(name)) l.addWidget(c) c.clicked.connect(self.set_to_cleared) @@ -358,7 +358,7 @@ class DateTime(Base): l.addWidget(self.today_button) self.clear_button = QToolButton(parent) - self.clear_button.setIcon(QIcon(I('trash.png'))) + self.clear_button.setIcon(QIcon.ic('trash.png')) self.clear_button.clicked.connect(dte.set_to_clear) self.clear_button.setToolTip(_('Clear {0}').format(self.col_metadata['name'])) l.addWidget(self.clear_button) @@ -447,7 +447,7 @@ class MultipleWidget(QWidget): layout.addWidget(self.tags_box, stretch=1000) self.editor_button = QToolButton(self) self.editor_button.setToolTip(_('Open Item editor. If CTRL or SHIFT is pressed, open Manage items')) - self.editor_button.setIcon(QIcon(I('chapters.png'))) + self.editor_button.setIcon(QIcon.ic('chapters.png')) layout.addWidget(self.editor_button) self.setLayout(layout) @@ -927,25 +927,25 @@ class BulkBase(Base): l = self.widgets[1].layout() if not is_bool or self.bools_are_tristate: self.clear_button = QToolButton(parent) - self.clear_button.setIcon(QIcon(I('trash.png'))) + self.clear_button.setIcon(QIcon.ic('trash.png')) self.clear_button.setToolTip(_('Clear {0}').format(self.col_metadata['name'])) self.clear_button.clicked.connect(self.set_to_undefined) l.insertWidget(1, self.clear_button) if is_bool: self.set_no_button = QToolButton(parent) - self.set_no_button.setIcon(QIcon(I('list_remove.png'))) + self.set_no_button.setIcon(QIcon.ic('list_remove.png')) self.set_no_button.clicked.connect(lambda:self.main_widget.setCurrentIndex(1)) self.set_no_button.setToolTip(_('Set {0} to No').format(self.col_metadata['name'])) l.insertWidget(1, self.set_no_button) self.set_yes_button = QToolButton(parent) - self.set_yes_button.setIcon(QIcon(I('ok.png'))) + self.set_yes_button.setIcon(QIcon.ic('ok.png')) self.set_yes_button.clicked.connect(lambda:self.main_widget.setCurrentIndex(0)) self.set_yes_button.setToolTip(_('Set {0} to Yes').format(self.col_metadata['name'])) l.insertWidget(1, self.set_yes_button) if add_edit_tags_button[0]: self.edit_tags_button = QToolButton(parent) self.edit_tags_button.setToolTip(_('Open Item editor')) - self.edit_tags_button.setIcon(QIcon(I('chapters.png'))) + self.edit_tags_button.setIcon(QIcon.ic('chapters.png')) self.edit_tags_button.clicked.connect(add_edit_tags_button[1]) l.insertWidget(1, self.edit_tags_button) l.insertStretch(2) @@ -1135,7 +1135,7 @@ class BulkDateTime(BulkBase): self.today_button.setText(_('Today')) l.insertWidget(1, self.today_button) self.clear_button = QToolButton(parent) - self.clear_button.setIcon(QIcon(I('trash.png'))) + self.clear_button.setIcon(QIcon.ic('trash.png')) self.clear_button.setToolTip(_('Clear {0}').format(self.col_metadata['name'])) l.insertWidget(2, self.clear_button) l.insertStretch(3) @@ -1376,7 +1376,7 @@ class RemoveTags(QWidget): layout.addWidget(self.tags_box, stretch=3) self.remove_tags_button = QToolButton(parent) self.remove_tags_button.setToolTip(_('Open Item editor')) - self.remove_tags_button.setIcon(QIcon(I('chapters.png'))) + self.remove_tags_button.setIcon(QIcon.ic('chapters.png')) layout.addWidget(self.remove_tags_button) self.checkbox = QCheckBox(_('Remove all tags'), parent) layout.addWidget(self.checkbox) diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index 9a6434678c..2f98789cd7 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -764,7 +764,7 @@ class DeviceMenu(QMenu): # {{{ self._memory = [] self.set_default_menu = QMenu(_('Set default send to device action')) - self.set_default_menu.setIcon(QIcon(I('config.png'))) + self.set_default_menu.setIcon(QIcon.ic('config.png')) basic_actions = [ ('main:', False, False, I('reader.png'), @@ -842,7 +842,7 @@ class DeviceMenu(QMenu): # {{{ self.addMenu(later_menus[0]) self.addSeparator() - mitem = self.addAction(QIcon(I('eject.png')), _('Eject device')) + mitem = self.addAction(QIcon.ic('eject.png'), _('Eject device')) mitem.setEnabled(False) connect_lambda(mitem.triggered, self, lambda self, x: self.disconnect_mounted_device.emit()) self.disconnect_mounted_device_action = mitem @@ -1008,7 +1008,7 @@ class DeviceMixin: # {{{ config_dialog = QDialog(self) config_dialog.setWindowTitle(_('Configure %s')%dev.get_gui_name()) - config_dialog.setWindowIcon(QIcon(I('config.png'))) + config_dialog.setWindowIcon(QIcon.ic('config.png')) l = QVBoxLayout(config_dialog) config_dialog.setLayout(l) bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel) diff --git a/src/calibre/gui2/device_drivers/mtp_config.py b/src/calibre/gui2/device_drivers/mtp_config.py index 720ad0ee9f..f562a59c33 100644 --- a/src/calibre/gui2/device_drivers/mtp_config.py +++ b/src/calibre/gui2/device_drivers/mtp_config.py @@ -38,12 +38,12 @@ class FormatsConfig(QWidget): # {{{ item.setCheckState(Qt.CheckState.Checked if fmt in format_map else Qt.CheckState.Unchecked) self.button_up = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-up.png'))) + b.setIcon(QIcon.ic('arrow-up.png')) l.addWidget(b, 0, 1) b.clicked.connect(self.up) self.button_down = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-down.png'))) + b.setIcon(QIcon.ic('arrow-down.png')) l.addWidget(b, 2, 1) b.clicked.connect(self.down) @@ -136,7 +136,7 @@ class SendToConfig(QWidget): # {{{ l.addWidget(t, 1, 0) self.b = b = QToolButton() l.addWidget(b, 1, 1) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) b.clicked.connect(self.browse) b.setToolTip(_('Browse for a folder on the device')) self._device = weakref.ref(device) @@ -225,10 +225,10 @@ class Rule(QWidget): l.addWidget(f) self.b = b = QToolButton() l.addWidget(b) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) b.clicked.connect(self.browse) b.setToolTip(_('Browse for a folder on the device')) - self.rb = rb = QPushButton(QIcon(I('list_remove.png')), + self.rb = rb = QPushButton(QIcon.ic('list_remove.png'), _('&Remove rule'), self) l.addWidget(rb) rb.clicked.connect(self.removed) @@ -302,7 +302,7 @@ class FormatRules(QGroupBox): if not self.widgets: self.add_rule() - self.b = b = QPushButton(QIcon(I('plus.png')), _('Add a &new rule')) + self.b = b = QPushButton(QIcon.ic('plus.png'), _('Add a &new rule')) l.addWidget(b) b.clicked.connect(self.add_rule) self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Ignored) @@ -375,17 +375,17 @@ class MTPConfig(QTabWidget): self.base.la = la = QLabel(_( 'Choose the formats to send to the %s')%self.device.current_friendly_name) la.setWordWrap(True) - self.base.b = b = QPushButton(QIcon(I('list_remove.png')), + self.base.b = b = QPushButton(QIcon.ic('list_remove.png'), _('&Ignore the %s in calibre')%device.current_friendly_name, self.base) b.clicked.connect(self.ignore_device) self.config_ign_folders_button = cif = QPushButton( - QIcon(I('tb_folder.png')), _('Change scanned &folders')) + QIcon.ic('tb_folder.png'), _('Change scanned &folders')) cif.setStyleSheet( 'QPushButton { font-weight: bold; }') if highlight_ignored_folders: cif.setIconSize(QSize(64, 64)) - self.show_debug_button = bd = QPushButton(QIcon(I('debug.png')), + self.show_debug_button = bd = QPushButton(QIcon.ic('debug.png'), _('Show device information')) bd.clicked.connect(self.show_debug_info) cif.clicked.connect(self.change_ignored_folders) @@ -514,7 +514,7 @@ class SendError(QDialog): bb.rejected.connect(self.reject) l.addWidget(bb) self.setWindowTitle(_('Cannot send to %s')%error.folder) - self.setWindowIcon(QIcon(I('dialog_error.png'))) + self.setWindowIcon(QIcon.ic('dialog_error.png')) self.resize(self.sizeHint()) diff --git a/src/calibre/gui2/device_drivers/mtp_folder_browser.py b/src/calibre/gui2/device_drivers/mtp_folder_browser.py index 226e40d727..3855b4f736 100644 --- a/src/calibre/gui2/device_drivers/mtp_folder_browser.py +++ b/src/calibre/gui2/device_drivers/mtp_folder_browser.py @@ -93,7 +93,7 @@ class Browser(QDialog): self.setMinimumSize(QSize(500, 500)) self.folders.selected.connect(self.accept) self.setWindowTitle(_('Choose folder on device')) - self.setWindowIcon(QIcon(I('devices/tablet.png'))) + self.setWindowIcon(QIcon.ic('devices/tablet.png')) @property def current_item(self): @@ -139,7 +139,7 @@ class IgnoredFolders(QDialog): self.snb.clicked.connect(self.select_none) l.addWidget(self.bb) self.setWindowTitle(_('Choose folders to scan')) - self.setWindowIcon(QIcon(I('devices/tablet.png'))) + self.setWindowIcon(QIcon.ic('devices/tablet.png')) self.resize(600, 500) diff --git a/src/calibre/gui2/dialogs/add_empty_book.py b/src/calibre/gui2/dialogs/add_empty_book.py index 25316071f0..17b395a136 100644 --- a/src/calibre/gui2/dialogs/add_empty_book.py +++ b/src/calibre/gui2/dialogs/add_empty_book.py @@ -45,7 +45,7 @@ class AddEmptyBookDialog(QDialog): self.initialize_authors(db, author) self.clear_button = QToolButton(self) - self.clear_button.setIcon(QIcon(I('trash.png'))) + self.clear_button.setIcon(QIcon.ic('trash.png')) self.clear_button.setToolTip(_('Reset author to Unknown')) self.clear_button.clicked.connect(self.reset_author) self._layout.addWidget(self.clear_button, 3, 1, 1, 1) @@ -61,7 +61,7 @@ class AddEmptyBookDialog(QDialog): self.initialize_series(db, series) self.sclear_button = QToolButton(self) - self.sclear_button.setIcon(QIcon(I('trash.png'))) + self.sclear_button.setIcon(QIcon.ic('trash.png')) self.sclear_button.setToolTip(_('Reset series')) self.sclear_button.clicked.connect(self.reset_series) self._layout.addWidget(self.sclear_button, 5, 1, 1, 1) @@ -74,7 +74,7 @@ class AddEmptyBookDialog(QDialog): self._layout.addWidget(self.title_edit, 7, 0, 1, 1) self.tclear_button = QToolButton(self) - self.tclear_button.setIcon(QIcon(I('trash.png'))) + self.tclear_button.setIcon(QIcon.ic('trash.png')) self.tclear_button.setToolTip(_('Reset title')) self.tclear_button.clicked.connect(self.title_edit.clear) self._layout.addWidget(self.tclear_button, 7, 1, 1, 1) @@ -111,7 +111,7 @@ class AddEmptyBookDialog(QDialog): if dup_title: self.dup_button = b = button_box.addButton(_('&Duplicate current book'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.do_duplicate_book) - b.setIcon(QIcon(I('edit-copy.png'))) + b.setIcon(QIcon.ic('edit-copy.png')) b.setToolTip(_( 'Make the new empty book records exact duplicates\n' 'of the current book "%s", with all metadata identical' diff --git a/src/calibre/gui2/dialogs/add_from_isbn.py b/src/calibre/gui2/dialogs/add_from_isbn.py index cd47f4368a..f72d37e4b3 100644 --- a/src/calibre/gui2/dialogs/add_from_isbn.py +++ b/src/calibre/gui2/dialogs/add_from_isbn.py @@ -33,7 +33,7 @@ class AddFromISBN(QDialog): def setup_ui(self): self.resize(678, 430) self.setWindowTitle(_("Add books by ISBN")) - self.setWindowIcon(QIcon(I('add_book.png'))) + self.setWindowIcon(QIcon.ic('add_book.png')) self.l = l = QVBoxLayout(self) self.h = h = QHBoxLayout() l.addLayout(h) diff --git a/src/calibre/gui2/dialogs/authors_edit.py b/src/calibre/gui2/dialogs/authors_edit.py index 34d260d030..5a0b47387d 100644 --- a/src/calibre/gui2/dialogs/authors_edit.py +++ b/src/calibre/gui2/dialogs/authors_edit.py @@ -139,13 +139,13 @@ class AuthorsEdit(QDialog): l.addWidget(a, 2, 0) self.ab = b = QPushButton(_('&Add')) - b.setIcon(QIcon(I('plus.png'))) + b.setIcon(QIcon.ic('plus.png')) l.addWidget(b, 2, 1) b.clicked.connect(self.add_author) self.db = b = QPushButton(_('&Remove selected')) l.addWidget(b, 2, 2) - b.setIcon(QIcon(I('minus.png'))) + b.setIcon(QIcon.ic('minus.png')) b.clicked.connect(self.al.delete_selected) self.bb = bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel) diff --git a/src/calibre/gui2/dialogs/book_info.py b/src/calibre/gui2/dialogs/book_info.py index 6dee121857..baf97cf673 100644 --- a/src/calibre/gui2/dialogs/book_info.py +++ b/src/calibre/gui2/dialogs/book_info.py @@ -75,11 +75,11 @@ class Configure(Dialog): v = QVBoxLayout() self.mub = b = QToolButton(self) connect_lambda(b.clicked, self, lambda self: move_field_up(fdo, self.model)) - b.setIcon(QIcon(I('arrow-up.png'))) + b.setIcon(QIcon.ic('arrow-up.png')) b.setToolTip(_('Move the selected field up')) v.addWidget(b), v.addStretch(10) self.mud = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-down.png'))) + b.setIcon(QIcon.ic('arrow-down.png')) b.setToolTip(_('Move the selected field down')) connect_lambda(b.clicked, self, lambda self: move_field_down(fdo, self.model)) v.addWidget(b) @@ -176,10 +176,10 @@ class BookInfo(QDialog): _('Configure this view'), _('Configure'))) self.clabel.linkActivated.connect(self.configure) hl.addWidget(self.clabel) - self.previous_button = QPushButton(QIcon(I('previous.png')), _('&Previous'), self) + self.previous_button = QPushButton(QIcon.ic('previous.png'), _('&Previous'), self) self.previous_button.clicked.connect(self.previous) l2.addWidget(self.previous_button, l2.rowCount(), 0) - self.next_button = QPushButton(QIcon(I('next.png')), _('&Next'), self) + self.next_button = QPushButton(QIcon.ic('next.png'), _('&Next'), self) self.next_button.clicked.connect(self.next) l2.addWidget(self.next_button, l2.rowCount() - 1, 1) diff --git a/src/calibre/gui2/dialogs/check_library.py b/src/calibre/gui2/dialogs/check_library.py index 1328d541fc..975c9cb481 100644 --- a/src/calibre/gui2/dialogs/check_library.py +++ b/src/calibre/gui2/dialogs/check_library.py @@ -87,7 +87,7 @@ class CheckLibraryDialog(QDialog): self.db = db self.setWindowTitle(_('Check library -- Problems found')) - self.setWindowIcon(QIcon(I('debug.png'))) + self.setWindowIcon(QIcon.ic('debug.png')) self._tl = QHBoxLayout() self.setLayout(self._tl) diff --git a/src/calibre/gui2/dialogs/choose_format.py b/src/calibre/gui2/dialogs/choose_format.py index f700b63a56..f82946f79d 100644 --- a/src/calibre/gui2/dialogs/choose_format.py +++ b/src/calibre/gui2/dialogs/choose_format.py @@ -15,7 +15,7 @@ class ChooseFormatDialog(QDialog): def __init__(self, window, msg, formats, show_open_with=False): QDialog.__init__(self, window) self.resize(507, 377) - self.setWindowIcon(QIcon(I("mimetypes/unknown.png"))) + self.setWindowIcon(QIcon.ic("mimetypes/unknown.png")) self.setWindowTitle(_('Choose format')) self.l = l = QVBoxLayout(self) self.msg = QLabel(msg) diff --git a/src/calibre/gui2/dialogs/choose_format_device.py b/src/calibre/gui2/dialogs/choose_format_device.py index 0ab1c53c5e..903b79813e 100644 --- a/src/calibre/gui2/dialogs/choose_format_device.py +++ b/src/calibre/gui2/dialogs/choose_format_device.py @@ -30,7 +30,7 @@ class ChooseFormatDeviceDialog(QDialog, Ui_ChooseFormatDeviceDialog): t_item.setText(0, format.upper()) t_item.setText(1, exists) if convertible: - t_item.setIcon(2, QIcon(I('ok.png'))) + t_item.setIcon(2, QIcon.ic('ok.png')) self.formats.addTopLevelItem(t_item) if i == 0: self.formats.setCurrentItem(t_item) diff --git a/src/calibre/gui2/dialogs/confirm_delete.py b/src/calibre/gui2/dialogs/confirm_delete.py index 06a7825d10..24d7cf1498 100644 --- a/src/calibre/gui2/dialogs/confirm_delete.py +++ b/src/calibre/gui2/dialogs/confirm_delete.py @@ -20,13 +20,13 @@ class Dialog(QDialog): title=None, confirm_msg=None, show_cancel_button=True, extra_button=None): QDialog.__init__(self, parent) self.setWindowTitle(title or _("Are you sure?")) - self.setWindowIcon(QIcon(I(icon))) + self.setWindowIcon(QIcon.ic(icon)) self.l = l = QVBoxLayout(self) self.h = h = QHBoxLayout() l.addLayout(h) self.icon_widget = Icon(self) - self.icon_widget.set_icon(QIcon(I(icon))) + self.icon_widget.set_icon(QIcon.ic(icon)) self.msg = m = QLabel(self) m.setOpenExternalLinks(True) diff --git a/src/calibre/gui2/dialogs/confirm_delete_location.py b/src/calibre/gui2/dialogs/confirm_delete_location.py index 48274feebc..58b9f49df6 100644 --- a/src/calibre/gui2/dialogs/confirm_delete_location.py +++ b/src/calibre/gui2/dialogs/confirm_delete_location.py @@ -43,7 +43,7 @@ class Dialog(QDialog, Ui_Dialog): def confirm_location(msg, name, parent=None, pixmap='dialog_warning.png'): d = Dialog(msg, name, parent) d.label.setPixmap(QPixmap(I(pixmap))) - d.setWindowIcon(QIcon(I(pixmap))) + d.setWindowIcon(QIcon.ic(pixmap)) d.resize(d.sizeHint()) ret = d.exec() d.break_cycles() diff --git a/src/calibre/gui2/dialogs/custom_recipes.py b/src/calibre/gui2/dialogs/custom_recipes.py index 82fd6d42ce..96909a9510 100644 --- a/src/calibre/gui2/dialogs/custom_recipes.py +++ b/src/calibre/gui2/dialogs/custom_recipes.py @@ -191,19 +191,19 @@ class RecipeList(QWidget): # {{{ l.addWidget(la) l.setSpacing(20) - self.edit_button = b = QPushButton(QIcon(I('modified.png')), _('&Edit this recipe'), w) + self.edit_button = b = QPushButton(QIcon.ic('modified.png'), _('&Edit this recipe'), w) b.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)) b.clicked.connect(self.edit_requested) l.addWidget(b) - self.remove_button = b = QPushButton(QIcon(I('list_remove.png')), _('&Remove this recipe'), w) + self.remove_button = b = QPushButton(QIcon.ic('list_remove.png'), _('&Remove this recipe'), w) b.clicked.connect(self.remove) b.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)) l.addWidget(b) - self.export_button = b = QPushButton(QIcon(I('save.png')), _('S&ave recipe as file'), w) + self.export_button = b = QPushButton(QIcon.ic('save.png'), _('S&ave recipe as file'), w) b.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)) b.clicked.connect(self.save_recipe) l.addWidget(b) - self.download_button = b = QPushButton(QIcon(I('download-metadata.png')), _('&Download this recipe'), w) + self.download_button = b = QPushButton(QIcon.ic('download-metadata.png'), _('&Download this recipe'), w) b.clicked.connect(self.download) b.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)) l.addWidget(b) @@ -334,17 +334,17 @@ class BasicRecipe(QWidget): # {{{ fg.h.addWidget(f) fg.l = QVBoxLayout() self.up_button = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-up.png'))) + b.setIcon(QIcon.ic('arrow-up.png')) b.setToolTip(_('Move selected feed up')) fg.l.addWidget(b) b.clicked.connect(self.move_up) self.remove_button = b = QToolButton(self) - b.setIcon(QIcon(I('list_remove.png'))) + b.setIcon(QIcon.ic('list_remove.png')) b.setToolTip(_('Remove selected feed')) fg.l.addWidget(b) b.clicked.connect(self.remove_feed) self.down_button = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-down.png'))) + b.setIcon(QIcon.ic('arrow-down.png')) b.setToolTip(_('Move selected feed down')) fg.l.addWidget(b) b.clicked.connect(self.move_down) @@ -359,7 +359,7 @@ class BasicRecipe(QWidget): # {{{ afg.l.addRow(_('&Feed title:'), ft) self.feed_url = fu = QLineEdit(self) afg.l.addRow(_('Feed &URL:'), fu) - self.afb = b = QPushButton(QIcon(I('plus.png')), _('&Add feed'), self) + self.afb = b = QPushButton(QIcon.ic('plus.png'), _('&Add feed'), self) b.setToolTip(_('Add this feed to the recipe')) b.clicked.connect(self.add_feed) afg.l.addRow(b) @@ -587,7 +587,7 @@ class CustomRecipes(Dialog): bb.setStandardButtons(QDialogButtonBox.StandardButton.Close) for icon, text, tooltip, receiver in self.list_actions: b = bb.addButton(text, QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I(icon))), b.setToolTip(tooltip) + b.setIcon(QIcon.ic(icon)), b.setToolTip(tooltip) b.clicked.connect(receiver) else: bb.setStandardButtons(QDialogButtonBox.StandardButton.Cancel | QDialogButtonBox.StandardButton.Save) diff --git a/src/calibre/gui2/dialogs/duplicates.py b/src/calibre/gui2/dialogs/duplicates.py index 5f217e7035..eca482d3c6 100644 --- a/src/calibre/gui2/dialogs/duplicates.py +++ b/src/calibre/gui2/dialogs/duplicates.py @@ -26,7 +26,7 @@ class DuplicatesQuestion(QDialog): if len(duplicates) > 1: t = '%d %s' % (len(duplicates), t) self.setWindowTitle(t) - self.i = i = QIcon(I('dialog_question.png')) + self.i = i = QIcon.ic('dialog_question.png') self.setWindowIcon(i) self.l1 = l1 = QLabel() @@ -51,11 +51,11 @@ class DuplicatesQuestion(QDialog): l.addWidget(bb, 2, 0, 1, 2) l.setColumnStretch(1, 10) self.ab = ab = bb.addButton(_('Select &all'), QDialogButtonBox.ButtonRole.ActionRole) - ab.clicked.connect(self.select_all), ab.setIcon(QIcon(I('plus.png'))) + ab.clicked.connect(self.select_all), ab.setIcon(QIcon.ic('plus.png')) self.nb = ab = bb.addButton(_('Select &none'), QDialogButtonBox.ButtonRole.ActionRole) - ab.clicked.connect(self.select_none), ab.setIcon(QIcon(I('minus.png'))) + ab.clicked.connect(self.select_none), ab.setIcon(QIcon.ic('minus.png')) self.cb = cb = bb.addButton(_('&Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole) - cb.setIcon(QIcon(I('edit-copy.png'))) + cb.setIcon(QIcon.ic('edit-copy.png')) cb.clicked.connect(self.copy_to_clipboard) self.resize(self.sizeHint()) diff --git a/src/calibre/gui2/dialogs/edit_authors_dialog.py b/src/calibre/gui2/dialogs/edit_authors_dialog.py index d37dca30ca..193877163a 100644 --- a/src/calibre/gui2/dialogs/edit_authors_dialog.py +++ b/src/calibre/gui2/dialogs/edit_authors_dialog.py @@ -157,7 +157,7 @@ class EditAuthorsDialog(QDialog, Ui_EditAuthorsDialog): self.original_authors[id_] = {'name': name, 'sort': v['sort'], 'link': v['link']} - self.edited_icon = QIcon(I('modified.png')) + self.edited_icon = QIcon.ic('modified.png') self.empty_icon = QIcon() if prefs['use_primary_find_in_search']: self.string_contains = primary_contains @@ -292,7 +292,7 @@ class EditAuthorsDialog(QDialog, Ui_EditAuthorsDialog): def show_context_menu(self, point): self.context_item = self.table.itemAt(point) case_menu = QMenu(_('Change case')) - case_menu.setIcon(QIcon(I('font_size_larger.png'))) + case_menu.setIcon(QIcon.ic('font_size_larger.png')) action_upper_case = case_menu.addAction(_('Upper case')) action_lower_case = case_menu.addAction(_('Lower case')) action_swap_case = case_menu.addAction(_('Swap case')) @@ -310,20 +310,20 @@ class EditAuthorsDialog(QDialog, Ui_EditAuthorsDialog): id_ = int(self.table.item(idx.row(), 0).data(Qt.ItemDataRole.UserRole)) sub = self.get_column_name(idx.column()) if self.context_item.text() != self.original_authors[id_][sub]: - ca = m.addAction(QIcon(I('undo.png')), _('Undo')) + ca = m.addAction(QIcon.ic('undo.png'), _('Undo')) ca.triggered.connect(partial(self.undo_cell, old_value=self.original_authors[id_][sub])) m.addSeparator() - ca = m.addAction(QIcon(I('edit-copy.png')), _('Copy')) + ca = m.addAction(QIcon.ic('edit-copy.png'), _('Copy')) ca.triggered.connect(self.copy_to_clipboard) - ca = m.addAction(QIcon(I('edit-paste.png')), _('Paste')) + ca = m.addAction(QIcon.ic('edit-paste.png'), _('Paste')) ca.triggered.connect(self.paste_from_clipboard) m.addSeparator() if self.context_item is not None and self.context_item.column() == 0: ca = m.addAction(_('Copy to author sort')) ca.triggered.connect(self.copy_au_to_aus) m.addSeparator() - ca = m.addAction(QIcon(I('lt.png')), _("Show books by author in book list")) + ca = m.addAction(QIcon.ic('lt.png'), _("Show books by author in book list")) ca.triggered.connect(self.search_in_book_list) else: ca = m.addAction(_('Copy to author')) diff --git a/src/calibre/gui2/dialogs/enum_values_edit.py b/src/calibre/gui2/dialogs/enum_values_edit.py index f78fec5b99..60bb6775f2 100644 --- a/src/calibre/gui2/dialogs/enum_values_edit.py +++ b/src/calibre/gui2/dialogs/enum_values_edit.py @@ -21,15 +21,15 @@ class EnumValuesEdit(QDialog): bbox = QVBoxLayout() bbox.addStretch(10) self.del_button = QToolButton() - self.del_button.setIcon(QIcon(I('trash.png'))) + self.del_button.setIcon(QIcon.ic('trash.png')) self.del_button.setToolTip(_('Remove the currently selected value')) self.ins_button = QToolButton() - self.ins_button.setIcon(QIcon(I('plus.png'))) + self.ins_button.setIcon(QIcon.ic('plus.png')) self.ins_button.setToolTip(_('Add a new permissible value')) self.move_up_button= QToolButton() - self.move_up_button.setIcon(QIcon(I('arrow-up.png'))) + self.move_up_button.setIcon(QIcon.ic('arrow-up.png')) self.move_down_button= QToolButton() - self.move_down_button.setIcon(QIcon(I('arrow-down.png'))) + self.move_down_button.setIcon(QIcon.ic('arrow-down.png')) bbox.addWidget(self.del_button) bbox.addStretch(1) bbox.addWidget(self.ins_button) diff --git a/src/calibre/gui2/dialogs/exim.py b/src/calibre/gui2/dialogs/exim.py index e503913293..2d33a181fd 100644 --- a/src/calibre/gui2/dialogs/exim.py +++ b/src/calibre/gui2/dialogs/exim.py @@ -52,7 +52,7 @@ class ImportLocation(QWidget): self.le = le = QLineEdit(self) le.setPlaceholderText(_('Location to import this library to')) l.addWidget(le, 1, 0) - self.b = b = QPushButton(QIcon(I('document_open.png')), _('Select &folder'), self) + self.b = b = QPushButton(QIcon.ic('document_open.png'), _('Select &folder'), self) b.clicked.connect(self.select_folder) l.addWidget(b, 1, 1) self.lpath = lpath @@ -206,7 +206,7 @@ class EximDialog(Dialog): i = QListWidgetItem(self.export_lib_text(lpath), ll) i.setData(Qt.ItemDataRole.UserRole, lpath) i.setData(Qt.ItemDataRole.UserRole+1, lpaths[lpath]) - i.setIcon(QIcon(I('lt.png'))) + i.setIcon(QIcon.ic('lt.png')) i.setSelected(True) self.update_disk_usage.connect(( lambda i, sz: self.lib_list.item(i).setText(self.export_lib_text( @@ -233,7 +233,7 @@ class EximDialog(Dialog): ' wish to import.')) la.setWordWrap(True) l.addWidget(la) - self.export_dir_button = b = QPushButton(QIcon(I('document_open.png')), _('Choose &folder'), self) + self.export_dir_button = b = QPushButton(QIcon.ic('document_open.png'), _('Choose &folder'), self) b.clicked.connect(self.select_import_folder) l.addWidget(b), l.addStretch() diff --git a/src/calibre/gui2/dialogs/message_box.py b/src/calibre/gui2/dialogs/message_box.py index dd2cec64a1..0ac0b86c35 100644 --- a/src/calibre/gui2/dialogs/message_box.py +++ b/src/calibre/gui2/dialogs/message_box.py @@ -94,9 +94,9 @@ class MessageBox(QDialog): # {{{ self.QUESTION: 'question', }[type_] icon = 'dialog_%s.png'%icon - self.icon = QIcon(I(icon)) + self.icon = QIcon.ic(icon) else: - self.icon = q_icon if isinstance(q_icon, QIcon) else QIcon(I(q_icon)) + self.icon = q_icon if isinstance(q_icon, QIcon) else QIcon.ic(q_icon) self.setup_ui() self.setWindowTitle(title) @@ -138,9 +138,9 @@ class MessageBox(QDialog): # {{{ if no_text is not None: self.bb.button(QDialogButtonBox.StandardButton.No).setText(no_text) if yes_icon is not None: - self.bb.button(QDialogButtonBox.StandardButton.Yes).setIcon(yes_icon if isinstance(yes_icon, QIcon) else QIcon(I(yes_icon))) + self.bb.button(QDialogButtonBox.StandardButton.Yes).setIcon(yes_icon if isinstance(yes_icon, QIcon) else QIcon.ic(yes_icon)) if no_icon is not None: - self.bb.button(QDialogButtonBox.StandardButton.No).setIcon(no_icon if isinstance(no_icon, QIcon) else QIcon(I(no_icon))) + self.bb.button(QDialogButtonBox.StandardButton.No).setIcon(no_icon if isinstance(no_icon, QIcon) else QIcon.ic(no_icon)) else: self.bb.button(QDialogButtonBox.StandardButton.Ok).setDefault(True) @@ -221,7 +221,7 @@ class ViewLog(QDialog): # {{{ self.bb.rejected.connect(self.reject) self.copy_button = self.bb.addButton(_('Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole) - self.copy_button.setIcon(QIcon(I('edit-copy.png'))) + self.copy_button.setIcon(QIcon.ic('edit-copy.png')) self.copy_button.clicked.connect(self.copy_to_clipboard) l.addWidget(self.bb) @@ -234,7 +234,7 @@ class ViewLog(QDialog): # {{{ self.setModal(False) self.setWindowTitle(title) - self.setWindowIcon(QIcon(I('debug.png'))) + self.setWindowIcon(QIcon.ic('debug.png')) self.show() def copy_to_clipboard(self): @@ -287,7 +287,7 @@ class ProceedNotification(MessageBox): # {{{ self.log_viewer_title = log_viewer_title self.vlb = self.bb.addButton(_('&View log'), QDialogButtonBox.ButtonRole.ActionRole) - self.vlb.setIcon(QIcon(I('debug.png'))) + self.vlb.setIcon(QIcon.ic('debug.png')) self.vlb.clicked.connect(self.show_log) self.det_msg_toggle.setVisible(bool(det_msg)) self.setModal(False) @@ -343,7 +343,7 @@ class ErrorNotification(MessageBox): # {{{ self.finished.connect(self.do_close, type=Qt.ConnectionType.QueuedConnection) self.vlb = self.bb.addButton(_('&View log'), QDialogButtonBox.ButtonRole.ActionRole) - self.vlb.setIcon(QIcon(I('debug.png'))) + self.vlb.setIcon(QIcon.ic('debug.png')) self.vlb.clicked.connect(self.show_log) self.det_msg_toggle.setVisible(bool(det_msg)) self.setModal(False) @@ -375,7 +375,7 @@ class JobError(QDialog): # {{{ self._layout = l = QGridLayout() self.setLayout(l) - self.icon = QIcon(I('dialog_error.png')) + self.icon = QIcon.ic('dialog_error.png') self.setWindowIcon(self.icon) self.icon_widget = Icon(self) self.icon_widget.set_icon(self.icon) diff --git a/src/calibre/gui2/dialogs/opml.py b/src/calibre/gui2/dialogs/opml.py index c85562bdec..ed56731d26 100644 --- a/src/calibre/gui2/dialogs/opml.py +++ b/src/calibre/gui2/dialogs/opml.py @@ -58,7 +58,7 @@ class ImportOPML(QDialog): self.l = l = QFormLayout(self) self.setLayout(l) self.setWindowTitle(_('Import OPML file')) - self.setWindowIcon(QIcon(I('opml.png'))) + self.setWindowIcon(QIcon.ic('opml.png')) self.h = h = QHBoxLayout() self.path = p = QLineEdit(self) @@ -66,7 +66,7 @@ class ImportOPML(QDialog): p.setPlaceholderText(_('Path to OPML file')) h.addWidget(p) self.cfb = b = QToolButton(self) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) b.setToolTip(_('Browse for OPML file')) b.clicked.connect(self.choose_file) h.addWidget(b) diff --git a/src/calibre/gui2/dialogs/plugin_updater.py b/src/calibre/gui2/dialogs/plugin_updater.py index b768380ffe..780cce6b79 100644 --- a/src/calibre/gui2/dialogs/plugin_updater.py +++ b/src/calibre/gui2/dialogs/plugin_updater.py @@ -313,7 +313,7 @@ class DisplayPluginModel(QAbstractTableModel): return self._get_status_icon(display_plugin) if col == 1: if display_plugin.donation_link: - return QIcon(I('donate.png')) + return QIcon.ic('donate.png') elif role == Qt.ItemDataRole.ToolTipRole: if col == 1 and display_plugin.donation_link: return _('This plugin is FREE but you can reward the developer for their effort\n' @@ -456,7 +456,7 @@ class PluginUpdaterDialog(SizePersistedDialog): def _initialize_controls(self): self.setWindowTitle(_('User plugins')) - self.setWindowIcon(QIcon(I('plugins/plugin_updater.png'))) + self.setWindowIcon(QIcon.ic('plugins/plugin_updater.png')) layout = QVBoxLayout(self) self.setLayout(layout) title_layout = ImageTitleLayout(self, 'plugins/plugin_updater.png', @@ -529,12 +529,12 @@ class PluginUpdaterDialog(SizePersistedDialog): def _create_context_menu(self): self.plugin_view.setContextMenuPolicy(Qt.ContextMenuPolicy.ActionsContextMenu) - self.install_action = QAction(QIcon(I('plugins/plugin_upgrade_ok.png')), _('&Install'), self) + self.install_action = QAction(QIcon.ic('plugins/plugin_upgrade_ok.png'), _('&Install'), self) self.install_action.setToolTip(_('Install the selected plugin')) self.install_action.triggered.connect(self._install_clicked) self.install_action.setEnabled(False) self.plugin_view.addAction(self.install_action) - self.forum_action = QAction(QIcon(I('plugins/mobileread.png')), _('Plugin &forum thread'), self) + self.forum_action = QAction(QIcon.ic('plugins/mobileread.png'), _('Plugin &forum thread'), self) self.forum_action.triggered.connect(self._forum_label_activated) self.forum_action.setEnabled(False) self.plugin_view.addAction(self.forum_action) @@ -558,7 +558,7 @@ class PluginUpdaterDialog(SizePersistedDialog): sep2.setSeparator(True) self.plugin_view.addAction(sep2) - self.donate_enabled_action = QAction(QIcon(I('donate.png')), _('Donate to developer'), self) + self.donate_enabled_action = QAction(QIcon.ic('donate.png'), _('Donate to developer'), self) self.donate_enabled_action.setToolTip(_('Donate to the developer of this plugin')) self.donate_enabled_action.triggered.connect(self._donate_clicked) self.donate_enabled_action.setEnabled(False) @@ -568,7 +568,7 @@ class PluginUpdaterDialog(SizePersistedDialog): sep3.setSeparator(True) self.plugin_view.addAction(sep3) - self.configure_action = QAction(QIcon(I('config.png')), _('&Customize plugin'), self) + self.configure_action = QAction(QIcon.ic('config.png'), _('&Customize plugin'), self) self.configure_action.setToolTip(_('Customize the options for this plugin')) self.configure_action.triggered.connect(self._configure_clicked) self.configure_action.setEnabled(False) @@ -724,7 +724,7 @@ class PluginUpdaterDialog(SizePersistedDialog): 'for the plugin to take effect.').format(plugin.name, plugin.type), show_copy_button=False) b = d.bb.addButton(_('&Restart calibre now'), QDialogButtonBox.ButtonRole.AcceptRole) - b.setIcon(QIcon(I('lt.png'))) + b.setIcon(QIcon.ic('lt.png')) d.do_restart = False def rf(): diff --git a/src/calibre/gui2/dialogs/progress.py b/src/calibre/gui2/dialogs/progress.py index 95c12ba4c9..199e95675e 100644 --- a/src/calibre/gui2/dialogs/progress.py +++ b/src/calibre/gui2/dialogs/progress.py @@ -25,7 +25,7 @@ class ProgressDialog(QDialog): self.h = h = QHBoxLayout(self) self.icon = i = QLabel(self) if not isinstance(icon, QIcon): - icon = QIcon(I(icon)) + icon = QIcon.ic(icon) i.setPixmap(icon.pixmap(64)) h.addWidget(i, alignment=Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignHCenter) self.l = l = QVBoxLayout() diff --git a/src/calibre/gui2/dialogs/quickview.py b/src/calibre/gui2/dialogs/quickview.py index 0e8a0d322a..3da03c079a 100644 --- a/src/calibre/gui2/dialogs/quickview.py +++ b/src/calibre/gui2/dialogs/quickview.py @@ -268,7 +268,7 @@ class Quickview(QDialog, Ui_Quickview): if self.is_pane: self.dock_button.setText(_('Undock')) self.dock_button.setToolTip(_('Show the Quickview panel in its own floating window')) - self.dock_button.setIcon(QIcon(I('arrow-up.png'))) + self.dock_button.setIcon(QIcon.ic('arrow-up.png')) # Remove the ampersands from the buttons because shortcuts exist. self.lock_qv.setText(_('Lock Quickview contents')) self.refresh_button.setText(_('Refresh')) @@ -276,7 +276,7 @@ class Quickview(QDialog, Ui_Quickview): self.close_button.setVisible(False) else: self.dock_button.setToolTip(_('Embed the Quickview panel into the main calibre window')) - self.dock_button.setIcon(QIcon(I('arrow-down.png'))) + self.dock_button.setIcon(QIcon.ic('arrow-down.png')) self.set_focus() self.books_table.horizontalHeader().sectionResized.connect(self.section_resized) @@ -287,12 +287,12 @@ class Quickview(QDialog, Ui_Quickview): self.refresh_button.setEnabled(False) self.lock_qv.stateChanged.connect(self.lock_qv_changed) - self.view_icon = QIcon(I('view.png')) + self.view_icon = QIcon.ic('view.png') self.view_plugin = self.gui.iactions['View'] - self.edit_metadata_icon = QIcon(I('edit_input.png')) - self.quickview_icon = QIcon(I('quickview.png')) - self.select_book_icon = QIcon(I('library.png')) - self.search_icon = QIcon(I('search.png')) + self.edit_metadata_icon = QIcon.ic('edit_input.png') + self.quickview_icon = QIcon.ic('quickview.png') + self.select_book_icon = QIcon.ic('library.png') + self.search_icon = QIcon.ic('search.png') self.books_table.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.books_table.customContextMenuRequested.connect(self.show_context_menu) diff --git a/src/calibre/gui2/dialogs/saved_search_editor.py b/src/calibre/gui2/dialogs/saved_search_editor.py index 6af50094c4..de353b5ca9 100644 --- a/src/calibre/gui2/dialogs/saved_search_editor.py +++ b/src/calibre/gui2/dialogs/saved_search_editor.py @@ -100,15 +100,15 @@ class SavedSearchEditor(Dialog): db = get_gui().current_db self.l = l = QVBoxLayout(self) b = self.bb.addButton(_('&Add search'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('plus.png'))) + b.setIcon(QIcon.ic('plus.png')) b.clicked.connect(self.add_search) b = self.bb.addButton(_('&Remove search'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('minus.png'))) + b.setIcon(QIcon.ic('minus.png')) b.clicked.connect(self.del_search) b = self.bb.addButton(_('&Edit search'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('modified.png'))) + b.setIcon(QIcon.ic('modified.png')) b.clicked.connect(self.edit_search) self.slist = QListWidget(self) diff --git a/src/calibre/gui2/dialogs/scheduler.py b/src/calibre/gui2/dialogs/scheduler.py index b48f55d6ac..04480e244c 100644 --- a/src/calibre/gui2/dialogs/scheduler.py +++ b/src/calibre/gui2/dialogs/scheduler.py @@ -227,7 +227,7 @@ class SchedulerDialog(QDialog): self.commit_on_change = True self.previous_urn = None - self.setWindowIcon(QIcon(I('scheduler.png'))) + self.setWindowIcon(QIcon.ic('scheduler.png')) self.l = l = QGridLayout(self) # Left panel @@ -357,14 +357,14 @@ class SchedulerDialog(QDialog): on.setMaximum(1000), la.setBuddy(on) on.setValue(gconf['oldest_news']) h.addWidget(la), h.addWidget(on) - self.download_all_button = b = QPushButton(QIcon(I('news.png')), _("Download &all scheduled"), self) + self.download_all_button = b = QPushButton(QIcon.ic('news.png'), _("Download &all scheduled"), self) b.setToolTip(_("Download all scheduled news sources at once")) b.clicked.connect(self.download_all_clicked) self.l.addWidget(b, 3, 0, 1, 1) self.bb = bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel, self) bb.accepted.connect(self.accept), bb.rejected.connect(self.reject) self.download_button = b = bb.addButton(_('&Download now'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('arrow-down.png'))), b.setVisible(False) + b.setIcon(QIcon.ic('arrow-down.png')), b.setVisible(False) b.clicked.connect(self.download_clicked) self.l.addWidget(bb, 3, 1, 1, 1) @@ -588,11 +588,11 @@ class Scheduler(QObject): self.download_queue = set() self.news_menu = QMenu() - self.news_icon = QIcon(I('news.png')) - self.scheduler_action = QAction(QIcon(I('scheduler.png')), _('Schedule news download'), self) + self.news_icon = QIcon.ic('news.png') + self.scheduler_action = QAction(QIcon.ic('scheduler.png'), _('Schedule news download'), self) self.news_menu.addAction(self.scheduler_action) self.scheduler_action.triggered[bool].connect(self.show_dialog) - self.cac = QAction(QIcon(I('user_profile.png')), _('Add or edit a custom news source'), self) + self.cac = QAction(QIcon.ic('user_profile.png'), _('Add or edit a custom news source'), self) self.cac.triggered[bool].connect(self.customize_feeds) self.news_menu.addAction(self.cac) self.news_menu.addSeparator() diff --git a/src/calibre/gui2/dialogs/search.py b/src/calibre/gui2/dialogs/search.py index 09f6ce573e..f2b11b4bf5 100644 --- a/src/calibre/gui2/dialogs/search.py +++ b/src/calibre/gui2/dialogs/search.py @@ -298,7 +298,7 @@ def create_template_tab(self): def setup_ui(self, db): self.setWindowTitle(_("Advanced search")) - self.setWindowIcon(QIcon(I('search.png'))) + self.setWindowIcon(QIcon.ic('search.png')) self.l = l = QVBoxLayout(self) self.h = h = QHBoxLayout() self.v = v = QVBoxLayout() diff --git a/src/calibre/gui2/dialogs/tag_categories.py b/src/calibre/gui2/dialogs/tag_categories.py index 753e344571..243900bd58 100644 --- a/src/calibre/gui2/dialogs/tag_categories.py +++ b/src/calibre/gui2/dialogs/tag_categories.py @@ -62,12 +62,12 @@ class TagCategories(QDialog, Ui_TagCategories): if self.book_ids is None: self.apply_vl_checkbox.setEnabled(False) - cc_icon = QIcon(I('column.png')) + cc_icon = QIcon.ic('column.png') self.category_labels = self.category_labels_orig[:] - self.category_icons = [None, QIcon(I('user_profile.png')), QIcon(I('series.png')), - QIcon(I('publisher.png')), QIcon(I('tags.png')), - QIcon(I('languages.png'))] + self.category_icons = [None, QIcon.ic('user_profile.png'), QIcon.ic('series.png'), + QIcon.ic('publisher.png'), QIcon.ic('tags.png'), + QIcon.ic('languages.png')] self.category_values = [None, lambda: [t.original_name.replace('|', ',') for t in self.db_categories['authors']], lambda: [t.original_name for t in self.db_categories['series']], diff --git a/src/calibre/gui2/dialogs/tag_list_editor.py b/src/calibre/gui2/dialogs/tag_list_editor.py index 61bc79e703..41c2201087 100644 --- a/src/calibre/gui2/dialogs/tag_list_editor.py +++ b/src/calibre/gui2/dialogs/tag_list_editor.py @@ -43,7 +43,7 @@ class NameTableWidgetItem(QTableWidgetItem): def set_is_deleted(self, to_what): if to_what: - self.setIcon(QIcon(I('trash.png'))) + self.setIcon(QIcon.ic('trash.png')) else: self.setIcon(QIcon(None)) self.current_value = self.initial_value @@ -271,16 +271,16 @@ class TagListEditor(QDialog, Ui_TagListEditor): disable_copy_paste_search = len(self.table.selectedItems()) != 1 or item.is_deleted ca = m.addAction(_('Copy')) ca.triggered.connect(partial(self.copy_to_clipboard, item)) - ca.setIcon(QIcon(I('edit-copy.png'))) + ca.setIcon(QIcon.ic('edit-copy.png')) if disable_copy_paste_search: ca.setEnabled(False) ca = m.addAction(_('Paste')) - ca.setIcon(QIcon(I('edit-paste.png'))) + ca.setIcon(QIcon.ic('edit-paste.png')) ca.triggered.connect(partial(self.paste_from_clipboard, item)) if disable_copy_paste_search: ca.setEnabled(False) ca = m.addAction(_('Undo')) - ca.setIcon(QIcon(I('edit-undo.png'))) + ca.setIcon(QIcon.ic('edit-undo.png')) ca.triggered.connect(self.undo_edit) ca.setEnabled(False) for item in self.table.selectedItems(): @@ -288,29 +288,29 @@ class TagListEditor(QDialog, Ui_TagListEditor): ca.setEnabled(True) break ca = m.addAction(_('Edit')) - ca.setIcon(QIcon(I('edit_input.png'))) + ca.setIcon(QIcon.ic('edit_input.png')) ca.triggered.connect(self.rename_tag) ca = m.addAction(_('Delete')) - ca.setIcon(QIcon(I('trash.png'))) + ca.setIcon(QIcon.ic('trash.png')) ca.triggered.connect(self.delete_tags) item_name = str(item.text()) ca = m.addAction(_('Search for {}').format(item_name)) - ca.setIcon(QIcon(I('search.png'))) + ca.setIcon(QIcon.ic('search.png')) ca.triggered.connect(partial(self.set_search_text, item_name)) item_name = str(item.text()) ca = m.addAction(_('Filter by {}').format(item_name)) - ca.setIcon(QIcon(I('filter.png'))) + ca.setIcon(QIcon.ic('filter.png')) ca.triggered.connect(partial(self.set_filter_text, item_name)) if self.category is not None: ca = m.addAction(_("Search the library for {0}").format(item_name)) - ca.setIcon(QIcon(I('lt.png'))) + ca.setIcon(QIcon.ic('lt.png')) ca.triggered.connect(partial(self.search_for_books, item)) if disable_copy_paste_search: ca.setEnabled(False) if self.table.state() == QAbstractItemView.State.EditingState: m.addSeparator() case_menu = QMenu(_('Change case')) - case_menu.setIcon(QIcon(I('font_size_larger.png'))) + case_menu.setIcon(QIcon.ic('font_size_larger.png')) action_upper_case = case_menu.addAction(_('Upper case')) action_lower_case = case_menu.addAction(_('Lower case')) action_swap_case = case_menu.addAction(_('Swap case')) diff --git a/src/calibre/gui2/dialogs/template_dialog.py b/src/calibre/gui2/dialogs/template_dialog.py index ba941f7d84..67df51157b 100644 --- a/src/calibre/gui2/dialogs/template_dialog.py +++ b/src/calibre/gui2/dialogs/template_dialog.py @@ -487,20 +487,20 @@ class TemplateDialog(QDialog, Ui_TemplateDialog): word_wrapping = gprefs['gpm_template_editor_word_wrap_mode'] if word_wrapping: ca = m.addAction(_('Disable word wrap')) - ca.setIcon(QIcon(I('list_remove.png'))) + ca.setIcon(QIcon.ic('list_remove.png')) else: ca = m.addAction(_('Enable word wrap')) - ca.setIcon(QIcon(I('ok.png'))) + ca.setIcon(QIcon.ic('ok.png')) ca.triggered.connect(partial(self.set_word_wrap, not word_wrapping)) m.addSeparator() ca = m.addAction(_('Load template from the Template tester')) ca.triggered.connect(self.load_last_template_text) m.addSeparator() ca = m.addAction(_('Load template from file')) - ca.setIcon(QIcon(I('document_open.png'))) + ca.setIcon(QIcon.ic('document_open.png')) ca.triggered.connect(self.load_template_from_file) ca = m.addAction(_('Save template to file')) - ca.setIcon(QIcon(I('save.png'))) + ca.setIcon(QIcon.ic('save.png')) ca.triggered.connect(self.save_template) m.exec(self.textbox.mapToGlobal(point)) @@ -812,12 +812,12 @@ class BreakReporter(QDialog): bb = QDialogButtonBox() b = bb.addButton(_('&Continue'), QDialogButtonBox.ButtonRole.AcceptRole) - b.setIcon(QIcon(I('sync-right.png'))) + b.setIcon(QIcon.ic('sync-right.png')) b.setToolTip(_('Continue running the template')) b.setDefault(True) l.addWidget(bb) b = bb.addButton(_('&Stop'), QDialogButtonBox.ButtonRole.RejectRole) - b.setIcon(QIcon(I('list_remove.png'))) + b.setIcon(QIcon.ic('list_remove.png')) b.setToolTip(_('Stop running the template')) l.addWidget(bb) bb.accepted.connect(self.accept) diff --git a/src/calibre/gui2/dialogs/trim_image.py b/src/calibre/gui2/dialogs/trim_image.py index 764beb3a5e..7e9643ce1b 100644 --- a/src/calibre/gui2/dialogs/trim_image.py +++ b/src/calibre/gui2/dialogs/trim_image.py @@ -39,7 +39,7 @@ class TrimImage(QDialog): u.setShortcut(QKeySequence(QKeySequence.StandardKey.Undo)) self.redo_action = r = c.redo_action r.setShortcut(QKeySequence(QKeySequence.StandardKey.Redo)) - self.trim_action = ac = self.bar.addAction(QIcon(I('trim.png')), _('&Trim'), self.do_trim) + self.trim_action = ac = self.bar.addAction(QIcon.ic('trim.png'), _('&Trim'), self.do_trim) ac.setShortcut(QKeySequence('Ctrl+T')) ac.setToolTip('{} [{}]'.format(_('Trim image by removing borders outside the selected region'), ac.shortcut().toString(QKeySequence.SequenceFormat.NativeText))) diff --git a/src/calibre/gui2/font_family_chooser.py b/src/calibre/gui2/font_family_chooser.py index 26b88508ea..76e51e0b7a 100644 --- a/src/calibre/gui2/font_family_chooser.py +++ b/src/calibre/gui2/font_family_chooser.py @@ -203,7 +203,7 @@ class FontFamilyDialog(QDialog): def __init__(self, current_family, parent=None): QDialog.__init__(self, parent) self.setWindowTitle(_('Choose font family')) - self.setWindowIcon(QIcon(I('font.png'))) + self.setWindowIcon(QIcon.ic('font.png')) from calibre.utils.fonts.scanner import font_scanner self.font_scanner = font_scanner @@ -228,17 +228,17 @@ class FontFamilyDialog(QDialog): self.bb.rejected.connect(self.reject) self.add_fonts_button = afb = self.bb.addButton(_('Add &fonts'), QDialogButtonBox.ButtonRole.ActionRole) - afb.setIcon(QIcon(I('plus.png'))) + afb.setIcon(QIcon.ic('plus.png')) afb.clicked.connect(self.add_fonts) self.ml = QLabel(_('Choose a font family from the list below:')) self.search = QLineEdit(self) self.search.setPlaceholderText(_('Search')) self.search.returnPressed.connect(self.find) self.nb = QToolButton(self) - self.nb.setIcon(QIcon(I('arrow-down.png'))) + self.nb.setIcon(QIcon.ic('arrow-down.png')) self.nb.setToolTip(_('Find next')) self.pb = QToolButton(self) - self.pb.setIcon(QIcon(I('arrow-up.png'))) + self.pb.setIcon(QIcon.ic('arrow-up.png')) self.pb.setToolTip(_('Find previous')) self.nb.clicked.connect(self.find_next) self.pb.clicked.connect(self.find_previous) @@ -336,14 +336,14 @@ class FontFamilyChooser(QWidget): l.setContentsMargins(0, 0, 0, 0) self.setLayout(l) self.button = QPushButton(self) - self.button.setIcon(QIcon(I('font.png'))) + self.button.setIcon(QIcon.ic('font.png')) self.button.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) l.addWidget(self.button) self.default_text = _('Choose &font family') self.font_family = None self.button.clicked.connect(self.show_chooser) self.clear_button = QToolButton(self) - self.clear_button.setIcon(QIcon(I('clear_left.png'))) + self.clear_button.setIcon(QIcon.ic('clear_left.png')) self.clear_button.clicked.connect(self.clear_family) l.addWidget(self.clear_button) self.setToolTip = self.button.setToolTip diff --git a/src/calibre/gui2/html_transform_rules.py b/src/calibre/gui2/html_transform_rules.py index ce14900b39..035b1a6293 100644 --- a/src/calibre/gui2/html_transform_rules.py +++ b/src/calibre/gui2/html_transform_rules.py @@ -56,7 +56,7 @@ class TagAction(QWidget): l.addLayout(h) self.remove_button = b = QToolButton(self) - b.setToolTip(_('Remove this action')), b.setIcon(QIcon(I('minus.png'))) + b.setToolTip(_('Remove this action')), b.setIcon(QIcon.ic('minus.png')) b.clicked.connect(self.request_remove) h.addWidget(b) self.action_desc = la = QLabel('') @@ -217,7 +217,7 @@ class RuleEdit(QWidget): # {{{ l.addWidget(self.thenl) self.actions = a = ActionsContainer(self) l.addWidget(a) - self.add_button = b = QPushButton(QIcon(I('plus.png')), _('Add another action')) + self.add_button = b = QPushButton(QIcon.ic('plus.png'), _('Add another action')) b.clicked.connect(self.actions.new_action) l.addWidget(b) self.update_state() diff --git a/src/calibre/gui2/icon_theme.py b/src/calibre/gui2/icon_theme.py index daee59499b..0c225ab72f 100644 --- a/src/calibre/gui2/icon_theme.py +++ b/src/calibre/gui2/icon_theme.py @@ -241,7 +241,7 @@ class ThemeCreateDialog(Dialog): self.description = QTextEdit(self) l.addRow(self.description) self.refresh_button = rb = self.bb.addButton(_('&Refresh'), QDialogButtonBox.ButtonRole.ActionRole) - rb.setIcon(QIcon(I('view-refresh.png'))) + rb.setIcon(QIcon.ic('view-refresh.png')) rb.clicked.connect(self.refresh) self.apply_report() @@ -313,7 +313,7 @@ class Compress(QProgressDialog): total = 2 + len(report.name_map) QProgressDialog.__init__(self, _('Losslessly optimizing images, please wait...'), _('&Abort'), 0, total, parent) self.setWindowTitle(self.labelText()) - self.setWindowIcon(QIcon(I('lt.png'))) + self.setWindowIcon(QIcon.ic('lt.png')) self.setMinimumDuration(0) self.update_signal.connect(self.do_update, type=Qt.ConnectionType.QueuedConnection) self.raw = self.prefix = None @@ -611,7 +611,7 @@ class ChooseTheme(Dialog): vl.addLayout(l), vl.addWidget(self.bb) self.restore_defs_button = b = self.bb.addButton(_('Restore &default icons'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.restore_defaults) - b.setIcon(QIcon(I('view-refresh.png'))) + b.setIcon(QIcon.ic('view-refresh.png')) self.c = c = QWidget(self) self.c.v = v = QVBoxLayout(self.c) v.addStretch(), v.addWidget(pi, 0, Qt.AlignmentFlag.AlignCenter) diff --git a/src/calibre/gui2/image_popup.py b/src/calibre/gui2/image_popup.py index b4a84486b0..b348c696ae 100644 --- a/src/calibre/gui2/image_popup.py +++ b/src/calibre/gui2/image_popup.py @@ -141,12 +141,12 @@ class ImageView(QDialog): self.copy_button = co = bb.addButton(_('&Copy'), QDialogButtonBox.ButtonRole.ActionRole) self.rotate_button = ro = bb.addButton(_('&Rotate'), QDialogButtonBox.ButtonRole.ActionRole) self.fullscreen_button = fo = bb.addButton(_('&Full screen'), QDialogButtonBox.ButtonRole.ActionRole) - zi.setIcon(QIcon(I('plus.png'))) - zo.setIcon(QIcon(I('minus.png'))) - so.setIcon(QIcon(I('save.png'))) + zi.setIcon(QIcon.ic('plus.png')) + zo.setIcon(QIcon.ic('minus.png')) + so.setIcon(QIcon.ic('save.png')) co.setIcon(QIcon.ic('edit-copy.png')) - ro.setIcon(QIcon(I('rotate-right.png'))) - fo.setIcon(QIcon(I('page.png'))) + ro.setIcon(QIcon.ic('rotate-right.png')) + fo.setIcon(QIcon.ic('page.png')) zi.clicked.connect(self.zoom_in) zo.clicked.connect(self.zoom_out) so.clicked.connect(self.save_image) diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index d3d58a5747..025095e11b 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -635,7 +635,7 @@ class LayoutMixin: # {{{ b.setAutoRaise(True), b.setCursor(Qt.CursorShape.PointingHandCursor) b.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) - b.setText(_('Layout')), b.setIcon(QIcon(I('config.png'))) + b.setText(_('Layout')), b.setIcon(QIcon.ic('config.png')) b.setMenu(LayoutMenu(self)) b.setToolTip(_( 'Show and hide various parts of the calibre main window')) diff --git a/src/calibre/gui2/jobs.py b/src/calibre/gui2/jobs.py index 9c1a0811ca..314616e2c8 100644 --- a/src/calibre/gui2/jobs.py +++ b/src/calibre/gui2/jobs.py @@ -67,10 +67,10 @@ class JobManager(QAbstractTableModel, AdaptSQP): # {{{ QAbstractTableModel.__init__(self) SearchQueryParser.__init__(self, ['all']) - self.wait_icon = (QIcon(I('jobs.png'))) - self.running_icon = (QIcon(I('exec.png'))) - self.error_icon = (QIcon(I('dialog_error.png'))) - self.done_icon = (QIcon(I('ok.png'))) + self.wait_icon = (QIcon.ic('jobs.png')) + self.running_icon = (QIcon.ic('exec.png')) + self.error_icon = (QIcon.ic('dialog_error.png')) + self.done_icon = (QIcon.ic('ok.png')) self.jobs = [] self.add_job = Dispatcher(self._add_job) @@ -465,7 +465,7 @@ class DetailView(Dialog): # {{{ l.addWidget(self.bb) self.bb.clear(), self.bb.setStandardButtons(QDialogButtonBox.StandardButton.Close) self.copy_button = b = self.bb.addButton(_('&Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('edit-copy.png'))) + b.setIcon(QIcon.ic('edit-copy.png')) b.clicked.connect(self.copy_to_clipboard) self.next_pos = 0 self.update() diff --git a/src/calibre/gui2/keyboard.py b/src/calibre/gui2/keyboard.py index c58564276a..486786f4ad 100644 --- a/src/calibre/gui2/keyboard.py +++ b/src/calibre/gui2/keyboard.py @@ -423,7 +423,7 @@ class Editor(QFrame): # {{{ button.installEventFilter(self) setattr(self, 'button%d'%which, button) clear = QToolButton(self) - clear.setIcon(QIcon(I('clear_left.png'))) + clear.setIcon(QIcon.ic('clear_left.png')) clear.clicked.connect(partial(self.clear_clicked, which=which)) setattr(self, 'clear%d'%which, clear) l.addWidget(button, off+which, 1, 1, 1) @@ -671,8 +671,8 @@ class ShortcutConfig(QWidget): # {{{ self._h = h = QHBoxLayout() l.addLayout(h) h.addWidget(self.search) - self.nb = QPushButton(QIcon(I('arrow-down.png')), _('&Next'), self) - self.pb = QPushButton(QIcon(I('arrow-up.png')), _('&Previous'), self) + self.nb = QPushButton(QIcon.ic('arrow-down.png'), _('&Next'), self) + self.pb = QPushButton(QIcon.ic('arrow-up.png'), _('&Previous'), self) self.nb.clicked.connect(self.find_next) self.pb.clicked.connect(self.find_previous) h.addWidget(self.nb), h.addWidget(self.pb) diff --git a/src/calibre/gui2/layout.py b/src/calibre/gui2/layout.py index 7cfa400775..cb310cc4e5 100644 --- a/src/calibre/gui2/layout.py +++ b/src/calibre/gui2/layout.py @@ -40,7 +40,7 @@ class LocationManager(QObject): # {{{ self.all_actions = [] def ac(name, text, icon, tooltip): - icon = QIcon(I(icon)) + icon = QIcon.ic(icon) ac = self.location_actions.addAction(icon, text) setattr(self, 'location_'+name, ac) ac.setAutoRepeat(False) @@ -55,13 +55,13 @@ class LocationManager(QObject): # {{{ a.triggered.connect(receiver) if name != 'library': self._mem.append(a) - a = m.addAction(QIcon(I('eject.png')), _('Eject this device')) + a = m.addAction(QIcon.ic('eject.png'), _('Eject this device')) a.triggered.connect(self._eject_requested) self._mem.append(a) - a = m.addAction(QIcon(I('config.png')), _('Configure this device')) + a = m.addAction(QIcon.ic('config.png'), _('Configure this device')) a.triggered.connect(self._configure_requested) self._mem.append(a) - a = m.addAction(QIcon(I('sync.png')), _('Update cached metadata on device')) + a = m.addAction(QIcon.ic('sync.png'), _('Update cached metadata on device')) a.triggered.connect(lambda x : self.update_device_metadata.emit()) self._mem.append(a) @@ -198,7 +198,7 @@ class SearchBar(QFrame): # {{{ x.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) x.setText(_('Virtual library')) x.setAutoRaise(True) - x.setIcon(QIcon(I('vl.png'))) + x.setIcon(QIcon.ic('vl.png')) x.setObjectName("virtual_library") x.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) l.addWidget(x) @@ -206,7 +206,7 @@ class SearchBar(QFrame): # {{{ x = QToolButton(self) x.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) x.setAutoRaise(True) - x.setIcon(QIcon(I('minus.png'))) + x.setIcon(QIcon.ic('minus.png')) x.setObjectName('clear_vl') l.addWidget(x) x.setVisible(False) @@ -220,7 +220,7 @@ class SearchBar(QFrame): # {{{ sb.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) sb.setAutoRaise(True) sb.setText(_('Sort')) - sb.setIcon(QIcon(I('sort.png'))) + sb.setIcon(QIcon.ic('sort.png')) sb.setMenu(QMenu(sb)) sb.menu().aboutToShow.connect(self.populate_sort_menu) sb.setVisible(False) @@ -243,7 +243,7 @@ class SearchBar(QFrame): # {{{ self.search_button = QToolButton() self.search_button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextOnly) - self.search_button.setIcon(QIcon(I('search.png'))) + self.search_button.setIcon(QIcon.ic('search.png')) self.search_button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) self.search_button.setText(_('Search')) self.search_button.setAutoRaise(True) @@ -260,7 +260,7 @@ class SearchBar(QFrame): # {{{ x.setText(_('Highlight')) x.setCursor(Qt.CursorShape.PointingHandCursor) x.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) - x.setIcon(QIcon(I('arrow-down.png'))) + x.setIcon(QIcon.ic('arrow-down.png')) l.addWidget(x) x = parent.saved_search = SavedSearchBox(self) @@ -271,7 +271,7 @@ class SearchBar(QFrame): # {{{ x = parent.copy_search_button = QToolButton(self) x.setAutoRaise(True) x.setCursor(Qt.CursorShape.PointingHandCursor) - x.setIcon(QIcon(I("search_copy_saved.png"))) + x.setIcon(QIcon.ic("search_copy_saved.png")) x.setObjectName("copy_search_button") l.addWidget(x) x.setToolTip(_("Copy current search text (instead of search name)")) @@ -280,7 +280,7 @@ class SearchBar(QFrame): # {{{ x = parent.save_search_button = RightClickButton(self) x.setAutoRaise(True) x.setCursor(Qt.CursorShape.PointingHandCursor) - x.setIcon(QIcon(I("search_add_saved.png"))) + x.setIcon(QIcon.ic("search_add_saved.png")) x.setObjectName("save_search_button") l.addWidget(x) x.setVisible(tweaks['show_saved_search_box']) @@ -294,7 +294,7 @@ class SearchBar(QFrame): # {{{ x.setCursor(Qt.CursorShape.PointingHandCursor) x.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) x.setAutoRaise(True) - x.setIcon(QIcon(I("bookmarks.png"))) + x.setIcon(QIcon.ic("bookmarks.png")) l.addWidget(x) x.setVisible(not tweaks['show_saved_search_box']) @@ -322,7 +322,7 @@ class MainWindowMixin: # {{{ def init_main_window_mixin(self, db): self.setObjectName('MainWindow') - self.setWindowIcon(QIcon(I('lt.png'))) + self.setWindowIcon(QIcon.ic('lt.png')) self.setWindowTitle(__appname__) self.setContextMenuPolicy(Qt.ContextMenuPolicy.NoContextMenu) diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py index f1b17cd6b0..845bebcd28 100644 --- a/src/calibre/gui2/library/alternate_views.py +++ b/src/calibre/gui2/library/alternate_views.py @@ -498,7 +498,7 @@ class CoverDelegate(QStyledItemDelegate): if raw_icon is not None: ans = raw_icon.pixmap(sz, sz) elif name == ':ondevice': - ans = QIcon(I('ok.png')).pixmap(sz, sz) + ans = QIcon.ic('ok.png').pixmap(sz, sz) elif name: pmap = QIcon(os.path.join(config_dir, 'cc_icons', name)).pixmap(sz, sz) if not pmap.isNull(): @@ -590,7 +590,7 @@ class CoverDelegate(QStyledItemDelegate): try: p = self.on_device_emblem except AttributeError: - p = self.on_device_emblem = QIcon(I('ok.png')).pixmap(48, 48) + p = self.on_device_emblem = QIcon.ic('ok.png').pixmap(48, 48) self.paint_embossed_emblem(p, painter, orect, right_adjust, left=False) finally: painter.restore() diff --git a/src/calibre/gui2/library/annotations.py b/src/calibre/gui2/library/annotations.py index 6d76e906cc..52898cfefb 100644 --- a/src/calibre/gui2/library/annotations.py +++ b/src/calibre/gui2/library/annotations.py @@ -253,10 +253,10 @@ class Export(Dialog): # {{{ self.bb.addButton(QDialogButtonBox.StandardButton.Cancel) b = self.bb.addButton(_('Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.copy_to_clipboard) - b.setIcon(QIcon(I('edit-copy.png'))) + b.setIcon(QIcon.ic('edit-copy.png')) b = self.bb.addButton(_('Save to file'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.save_to_file) - b.setIcon(QIcon(I('save.png'))) + b.setIcon(QIcon.ic('save.png')) def save_format_pref(self): self.prefs[self.pref_name] = self.export_format.currentData() @@ -632,14 +632,14 @@ class BrowsePanel(QWidget): self.next_button = nb = QToolButton(self) h.addWidget(nb) nb.setFocusPolicy(Qt.FocusPolicy.NoFocus) - nb.setIcon(QIcon(I('arrow-down.png'))) + nb.setIcon(QIcon.ic('arrow-down.png')) nb.clicked.connect(self.show_next) nb.setToolTip(_('Find next match')) self.prev_button = nb = QToolButton(self) h.addWidget(nb) nb.setFocusPolicy(Qt.FocusPolicy.NoFocus) - nb.setIcon(QIcon(I('arrow-up.png'))) + nb.setIcon(QIcon.ic('arrow-up.png')) nb.clicked.connect(self.show_previous) nb.setToolTip(_('Find previous match')) @@ -925,7 +925,7 @@ class AnnotationsBrowser(Dialog): self.current_restriction = None Dialog.__init__(self, _('Annotations browser'), 'library-annotations-browser', parent=parent, default_buttons=QDialogButtonBox.StandardButton.Close) self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose, False) - self.setWindowIcon(QIcon(I('highlight.png'))) + self.setWindowIcon(QIcon.ic('highlight.png')) def do_open_annotation(self, book_id, fmt, annot): atype = annot['type'] @@ -975,11 +975,11 @@ class AnnotationsBrowser(Dialog): h.addWidget(us), h.addStretch(10), h.addWidget(self.bb) self.delete_button = b = self.bb.addButton(_('&Delete all selected'), QDialogButtonBox.ButtonRole.ActionRole) b.setToolTip(_('Delete the selected annotations')) - b.setIcon(QIcon(I('trash.png'))) + b.setIcon(QIcon.ic('trash.png')) b.clicked.connect(self.delete_selected) self.export_button = b = self.bb.addButton(_('&Export all selected'), QDialogButtonBox.ButtonRole.ActionRole) b.setToolTip(_('Export the selected annotations')) - b.setIcon(QIcon(I('save.png'))) + b.setIcon(QIcon.ic('save.png')) b.clicked.connect(self.export_selected) self.refresh_button = b = RightClickButton(self.bb) self.bb.addButton(b, QDialogButtonBox.ButtonRole.ActionRole) @@ -989,7 +989,7 @@ class AnnotationsBrowser(Dialog): m.addAction(_('Rebuild search index')).triggered.connect(self.rebuild) b.setMenu(m) b.setToolTip(_('Refresh annotations in case they have been changed since this window was opened')) - b.setIcon(QIcon(I('restart.png'))) + b.setIcon(QIcon.ic('restart.png')) b.setPopupMode(QToolButton.ToolButtonPopupMode.DelayedPopup) b.clicked.connect(self.refresh) diff --git a/src/calibre/gui2/library/models.py b/src/calibre/gui2/library/models.py index 0a377f7803..1577539f71 100644 --- a/src/calibre/gui2/library/models.py +++ b/src/calibre/gui2/library/models.py @@ -234,13 +234,13 @@ class BooksModel(QAbstractTableModel): # {{{ self.buffer_size = buffer self.metadata_backup = None icon_height = (parent.fontMetrics() if hasattr(parent, 'fontMetrics') else QFontMetrics(QApplication.font())).lineSpacing() - self.bool_yes_icon = QIcon(I('ok.png')).pixmap(icon_height) - self.bool_no_icon = QIcon(I('list_remove.png')).pixmap(icon_height) - self.bool_blank_icon = QIcon(I('blank.png')).pixmap(icon_height) + self.bool_yes_icon = QIcon.ic('ok.png').pixmap(icon_height) + self.bool_no_icon = QIcon.ic('list_remove.png').pixmap(icon_height) + self.bool_blank_icon = QIcon.ic('blank.png').pixmap(icon_height) # Qt auto-scales marked icon correctly, so we dont need to do it (and # remember that the cover grid view needs a larger version of the icon, # anyway) - self.marked_icon = QIcon(I('marked.png')) + self.marked_icon = QIcon.ic('marked.png') self.bool_blank_icon_as_icon = QIcon(self.bool_blank_icon) self.row_decoration = None self.device_connected = False @@ -1437,7 +1437,7 @@ class DeviceBooksModel(BooksModel): # {{{ self.search_engine = OnDeviceSearch(self) self.editable = ['title', 'authors', 'collections'] self.book_in_library = None - self.sync_icon = QIcon(I('sync.png')) + self.sync_icon = QIcon.ic('sync.png') def counts(self): return Counts(len(self.db), len(self.db), len(self.map)) diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 335c7e0771..fce14f4dee 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -513,7 +513,7 @@ class BooksView(QTableView): # {{{ ans.addAction(_('Restore default layout'), partial(handler, action='defaults')) if self.can_add_columns: ans.addAction( - QIcon(I('column.png')), _('Add your own columns'), partial(handler, action='addcustcol')) + QIcon.ic('column.png'), _('Add your own columns'), partial(handler, action='addcustcol')) return ans def show_row_header_context_menu(self, pos): diff --git a/src/calibre/gui2/lrf_renderer/main.py b/src/calibre/gui2/lrf_renderer/main.py index 45decc2bc9..07dcb2e68f 100644 --- a/src/calibre/gui2/lrf_renderer/main.py +++ b/src/calibre/gui2/lrf_renderer/main.py @@ -307,7 +307,7 @@ def main(args=sys.argv, logger=None): if pid <= 0: override = 'calibre-lrfviewer' if islinux else None app = Application(args, override_program_name=override) - app.setWindowIcon(QIcon(I('viewer.png'))) + app.setWindowIcon(QIcon.ic('viewer.png')) opts = normalize_settings(parser, opts) stream = open(args[1], 'rb') if len(args) > 1 else None main = file_renderer(stream, opts, logger=logger) diff --git a/src/calibre/gui2/main_window.py b/src/calibre/gui2/main_window.py index 81810d9e55..f715ebf72e 100644 --- a/src/calibre/gui2/main_window.py +++ b/src/calibre/gui2/main_window.py @@ -103,8 +103,8 @@ class MainWindow(QMainWindow): @classmethod def get_menubar_actions(cls): - preferences_action = QAction(QIcon(I('config.png')), _('&Preferences'), None) - quit_action = QAction(QIcon(I('window-close.png')), _('&Quit'), None) + preferences_action = QAction(QIcon.ic('config.png'), _('&Preferences'), None) + quit_action = QAction(QIcon.ic('window-close.png'), _('&Quit'), None) preferences_action.setMenuRole(QAction.MenuRole.PreferencesRole) quit_action.setMenuRole(QAction.MenuRole.QuitRole) return preferences_action, quit_action diff --git a/src/calibre/gui2/metadata/basic_widgets.py b/src/calibre/gui2/metadata/basic_widgets.py index dc4f94b3e9..82d645ac8e 100644 --- a/src/calibre/gui2/metadata/basic_widgets.py +++ b/src/calibre/gui2/metadata/basic_widgets.py @@ -877,24 +877,24 @@ class FormatsManager(QWidget): self.cover_from_format_button = QToolButton(self) self.cover_from_format_button.setToolTip( _('Set the cover for the book from the selected format')) - self.cover_from_format_button.setIcon(QIcon(I('default_cover.png'))) + self.cover_from_format_button.setIcon(QIcon.ic('default_cover.png')) self.cover_from_format_button.setIconSize(QSize(self.ICON_SIZE, self.ICON_SIZE)) self.metadata_from_format_button = QToolButton(self) - self.metadata_from_format_button.setIcon(QIcon(I('edit_input.png'))) + self.metadata_from_format_button.setIcon(QIcon.ic('edit_input.png')) self.metadata_from_format_button.setIconSize(QSize(self.ICON_SIZE, self.ICON_SIZE)) self.metadata_from_format_button.setToolTip( _('Set metadata for the book from the selected format')) self.add_format_button = QToolButton(self) - self.add_format_button.setIcon(QIcon(I('add_book.png'))) + self.add_format_button.setIcon(QIcon.ic('add_book.png')) self.add_format_button.setIconSize(QSize(self.ICON_SIZE, self.ICON_SIZE)) self.add_format_button.clicked.connect(self.add_format) self.add_format_button.setToolTip( _('Add a format to this book')) self.remove_format_button = QToolButton(self) - self.remove_format_button.setIcon(QIcon(I('trash.png'))) + self.remove_format_button.setIcon(QIcon.ic('trash.png')) self.remove_format_button.setIconSize(QSize(self.ICON_SIZE, self.ICON_SIZE)) self.remove_format_button.clicked.connect(self.remove_format) self.remove_format_button.setToolTip( @@ -1129,7 +1129,7 @@ class Cover(ImageView): # {{{ RightClickButton.__init__(self, parent) self.setText(text) if icon is not None: - self.setIcon(QIcon(I(icon))) + self.setIcon(QIcon.ic(icon)) self.setSizePolicy(QSizePolicy.Policy.MinimumExpanding, QSizePolicy.Policy.Maximum) self.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) if action is not None: @@ -1142,10 +1142,10 @@ class Cover(ImageView): # {{{ 'Pressing it repeatedly can sometimes remove stubborn borders.')) b.m = m = QMenu(b) b.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) - m.addAction(QIcon(I('trim.png')), _('Automatically trim borders'), self.trim_cover) + m.addAction(QIcon.ic('trim.png'), _('Automatically trim borders'), self.trim_cover) m.addSeparator() m.addAction(_('Trim borders manually'), self.manual_trim_cover) - m.addAction(QIcon(I('edit-undo.png')), _('Undo last trim'), self.undo_trim) + m.addAction(QIcon.ic('edit-undo.png'), _('Undo last trim'), self.undo_trim) b.setMenu(m) self.remove_cover_button = CB(_('&Remove'), 'trash.png', self.remove_cover) @@ -1153,8 +1153,8 @@ class Cover(ImageView): # {{{ self.generate_cover_button = b = CB(_('&Generate cover'), 'default_cover.png', self.generate_cover) b.m = m = QMenu(b) b.setMenu(m) - m.addAction(QIcon(I('config.png')), _('Customize the styles and colors of the generated cover'), self.custom_cover) - m.addAction(QIcon(I('edit-undo.png')), _('Undo last Generate cover'), self.undo_generate) + m.addAction(QIcon.ic('config.png'), _('Customize the styles and colors of the generated cover'), self.custom_cover) + m.addAction(QIcon.ic('edit-undo.png'), _('Undo last Generate cover'), self.undo_generate) b.setPopupMode(QToolButton.ToolButtonPopupMode.DelayedPopup) self.buttons = [self.select_cover_button, self.remove_cover_button, self.trim_cover_button, self.download_cover_button, @@ -1815,7 +1815,7 @@ class PublisherEdit(EditWithComplete, ToMetadataMixin): # {{{ QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon) self.books_to_refresh = set() self.clear_button = QToolButton(parent) - self.clear_button.setIcon(QIcon(I('trash.png'))) + self.clear_button.setIcon(QIcon.ic('trash.png')) self.clear_button.setToolTip(_('Clear publisher')) self.clear_button.clicked.connect(self.clearEditText) @@ -1868,7 +1868,7 @@ class DateEdit(make_undoable(DateTimeEdit), ToMetadataMixin): self.setDisplayFormat(fmt) if create_clear_button: self.clear_button = QToolButton(parent) - self.clear_button.setIcon(QIcon(I('trash.png'))) + self.clear_button.setIcon(QIcon.ic('trash.png')) self.clear_button.setToolTip(_('Clear date')) self.clear_button.clicked.connect(self.reset_date) diff --git a/src/calibre/gui2/metadata/bulk_download.py b/src/calibre/gui2/metadata/bulk_download.py index d1013083fc..95296cb58a 100644 --- a/src/calibre/gui2/metadata/bulk_download.py +++ b/src/calibre/gui2/metadata/bulk_download.py @@ -55,13 +55,13 @@ class ConfirmDialog(QDialog): def __init__(self, ids, parent): QDialog.__init__(self, parent) self.setWindowTitle(_('Schedule download?')) - self.setWindowIcon(QIcon(I('download-metadata.png'))) + self.setWindowIcon(QIcon.ic('download-metadata.png')) l = self.l = QGridLayout() self.setLayout(l) i = QLabel(self) - i.setPixmap(QIcon(I('download-metadata.png')).pixmap(128, 128)) + i.setPixmap(QIcon.ic('download-metadata.png').pixmap(128, 128)) l.addWidget(i, 0, 0) t = ngettext( 'The download of metadata for the selected book will run in the background. Proceed?', @@ -87,13 +87,13 @@ class ConfirmDialog(QDialog): b = self.bb.addButton(_('Download only &metadata'), QDialogButtonBox.ButtonRole.AcceptRole) b.clicked.connect(self.only_metadata) - b.setIcon(QIcon(I('edit_input.png'))) + b.setIcon(QIcon.ic('edit_input.png')) b = self.bb.addButton(_('Download only &covers'), QDialogButtonBox.ButtonRole.AcceptRole) b.clicked.connect(self.only_covers) - b.setIcon(QIcon(I('default_cover.png'))) + b.setIcon(QIcon.ic('default_cover.png')) b = self.b = self.bb.addButton(_('&Configure download'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('config.png'))) + b.setIcon(QIcon.ic('config.png')) connect_lambda(b.clicked, self, lambda self: show_config(self)) l.addWidget(self.bb, 1, 0, 1, 2) b = self.bb.addButton(_('Download &both'), @@ -101,7 +101,7 @@ class ConfirmDialog(QDialog): b.clicked.connect(self.accept) b.setDefault(True) b.setAutoDefault(True) - b.setIcon(QIcon(I('ok.png'))) + b.setIcon(QIcon.ic('ok.png')) self.resize(self.sizeHint()) b.setFocus(Qt.FocusReason.OtherFocusReason) diff --git a/src/calibre/gui2/metadata/diff.py b/src/calibre/gui2/metadata/diff.py index ada3bbf0a6..4ffaf4779a 100644 --- a/src/calibre/gui2/metadata/diff.py +++ b/src/calibre/gui2/metadata/diff.py @@ -460,7 +460,7 @@ class CompareSingle(QWidget): newl = QLabel('&%s:' % m['name']) newl.setBuddy(neww) button = RightClickButton(self) - button.setIcon(QIcon(I('back.png'))) + button.setIcon(QIcon.ic('back.png')) button.setObjectName(field) connect_lambda(button.clicked, self, lambda self: self.revert(self.sender().objectName())) button.setToolTip(revert_tooltip % m['name']) @@ -471,7 +471,7 @@ class CompareSingle(QWidget): m.addAction(button.toolTip()).triggered.connect(button.click) m.actions()[0].setIcon(button.icon()) m.addAction(_('Merge identifiers')).triggered.connect(self.merge_identifiers) - m.actions()[1].setIcon(QIcon(I('merge.png'))) + m.actions()[1].setIcon(QIcon.ic('merge.png')) elif field == 'tags': button.m = m = QMenu(button) button.setMenu(m) @@ -479,7 +479,7 @@ class CompareSingle(QWidget): m.addAction(button.toolTip()).triggered.connect(button.click) m.actions()[0].setIcon(button.icon()) m.addAction(_('Merge tags')).triggered.connect(self.merge_tags) - m.actions()[1].setIcon(QIcon(I('merge.png'))) + m.actions()[1].setIcon(QIcon.ic('merge.png')) if cls is CoverView: neww.zoom_requested.connect(self.zoom_requested) @@ -613,7 +613,7 @@ class CompareMany(QDialog): self.l = l = QVBoxLayout(w) s.addWidget(w) self.next_called = False - self.setWindowIcon(QIcon(I('auto_author_sort.png'))) + self.setWindowIcon(QIcon.ic('auto_author_sort.png')) self.get_metadata = get_metadata self.ids = list(ids) self.total = len(self.ids) @@ -641,12 +641,12 @@ class CompareMany(QDialog): bb.rejected.connect(self.reject) if self.total > 1: self.aarb = b = bb.addButton(_('&Accept all remaining'), QDialogButtonBox.ButtonRole.YesRole) - b.setIcon(QIcon(I('ok.png'))), b.setAutoDefault(False) + b.setIcon(QIcon.ic('ok.png')), b.setAutoDefault(False) if accept_all_tooltip: b.setToolTip(accept_all_tooltip) b.clicked.connect(self.accept_all_remaining) self.rarb = b = bb.addButton(_('Re&ject all remaining'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('minus.png'))), b.setAutoDefault(False) + b.setIcon(QIcon.ic('minus.png')), b.setAutoDefault(False) if reject_all_tooltip: b.setToolTip(reject_all_tooltip) b.clicked.connect(self.reject_all_remaining) @@ -657,7 +657,7 @@ class CompareMany(QDialog): self.addAction(ac) b.setToolTip(_('Reject changes and move to next [{}]').format(ac.shortcut().toString(QKeySequence.SequenceFormat.NativeText))) connect_lambda(b.clicked, self, lambda self: self.next_item(False)) - b.setIcon(QIcon(I('minus.png'))), b.setAutoDefault(False) + b.setIcon(QIcon.ic('minus.png')), b.setAutoDefault(False) if reject_button_tooltip: b.setToolTip(reject_button_tooltip) self.next_action = ac = QAction(self) diff --git a/src/calibre/gui2/metadata/single.py b/src/calibre/gui2/metadata/single.py index 96ab566f13..1a67a39be4 100644 --- a/src/calibre/gui2/metadata/single.py +++ b/src/calibre/gui2/metadata/single.py @@ -86,11 +86,11 @@ class MetadataSingleDialogBase(QDialog): self.button_box = bb = QDialogButtonBox(self) self.button_box.accepted.connect(self.accept) self.button_box.rejected.connect(self.reject) - self.next_button = QPushButton(QIcon(I('forward.png')), _('Next'), + self.next_button = QPushButton(QIcon.ic('forward.png'), _('Next'), self) self.next_button.setShortcut(QKeySequence('Alt+Right')) self.next_button.clicked.connect(self.next_clicked) - self.prev_button = QPushButton(QIcon(I('back.png')), _('Previous'), + self.prev_button = QPushButton(QIcon.ic('back.png'), _('Previous'), self) self.prev_button.setShortcut(QKeySequence('Alt+Left')) @@ -110,7 +110,7 @@ class MetadataSingleDialogBase(QDialog): ll.addSpacing(10) ll.addWidget(self.button_box) - self.setWindowIcon(QIcon(I('edit_input.png'))) + self.setWindowIcon(QIcon.ic('edit_input.png')) self.setWindowTitle(BASE_TITLE) self.create_basic_metadata_widgets() @@ -171,12 +171,12 @@ class MetadataSingleDialogBase(QDialog): b.m = m = Menu(b) else: b.m = m = QMenu(b) - ac = m.addAction(QIcon(I('forward.png')), _('Set author sort from author')) - ac2 = m.addAction(QIcon(I('back.png')), _('Set author from author sort')) - ac3 = m.addAction(QIcon(I('user_profile.png')), _('Manage authors')) - ac4 = m.addAction(QIcon(I('next.png')), + ac = m.addAction(QIcon.ic('forward.png'), _('Set author sort from author')) + ac2 = m.addAction(QIcon.ic('back.png'), _('Set author from author sort')) + ac3 = m.addAction(QIcon.ic('user_profile.png'), _('Manage authors')) + ac4 = m.addAction(QIcon.ic('next.png'), _('Copy author to author sort')) - ac5 = m.addAction(QIcon(I('previous.png')), + ac5 = m.addAction(QIcon.ic('previous.png'), _('Copy author sort to author')) b.setMenu(m) @@ -186,14 +186,14 @@ class MetadataSingleDialogBase(QDialog): self.basic_metadata_widgets.extend([self.authors, self.author_sort]) self.swap_title_author_button = QToolButton(self) - self.swap_title_author_button.setIcon(QIcon(I('swap.png'))) + self.swap_title_author_button.setIcon(QIcon.ic('swap.png')) self.swap_title_author_button.setToolTip(_( 'Swap the author and title') + ' [%s]' % self.swap_title_author_shortcut.key().toString(QKeySequence.SequenceFormat.NativeText)) self.swap_title_author_button.clicked.connect(self.swap_title_author) self.swap_title_author_shortcut.activated.connect(self.swap_title_author_button.click) self.manage_authors_button = QToolButton(self) - self.manage_authors_button.setIcon(QIcon(I('user_profile.png'))) + self.manage_authors_button.setIcon(QIcon.ic('user_profile.png')) self.manage_authors_button.setToolTip('
' + _( 'Manage authors. Use to rename authors and correct ' 'individual author\'s sort values') + '
') @@ -226,7 +226,7 @@ class MetadataSingleDialogBase(QDialog): self.rating = RatingEdit(self) self.clear_ratings_button = QToolButton(self) self.clear_ratings_button.setToolTip(_('Clear rating')) - self.clear_ratings_button.setIcon(QIcon(I('trash.png'))) + self.clear_ratings_button.setIcon(QIcon.ic('trash.png')) self.clear_ratings_button.clicked.connect(self.rating.zero) self.basic_metadata_widgets.append(self.rating) @@ -234,19 +234,19 @@ class MetadataSingleDialogBase(QDialog): self.tags = TagsEdit(self) self.tags_editor_button = QToolButton(self) self.tags_editor_button.setToolTip(_('Open Tag editor')) - self.tags_editor_button.setIcon(QIcon(I('chapters.png'))) + self.tags_editor_button.setIcon(QIcon.ic('chapters.png')) self.tags_editor_button.clicked.connect(self.tags_editor) self.tags.tag_editor_requested.connect(self.tags_editor) self.clear_tags_button = QToolButton(self) self.clear_tags_button.setToolTip(_('Clear all tags')) - self.clear_tags_button.setIcon(QIcon(I('trash.png'))) + self.clear_tags_button.setIcon(QIcon.ic('trash.png')) self.clear_tags_button.clicked.connect(self.tags.clear) self.basic_metadata_widgets.append(self.tags) self.identifiers = IdentifiersEdit(self) self.basic_metadata_widgets.append(self.identifiers) self.clear_identifiers_button = QToolButton(self) - self.clear_identifiers_button.setIcon(QIcon(I('trash.png'))) + self.clear_identifiers_button.setIcon(QIcon.ic('trash.png')) self.clear_identifiers_button.setToolTip(_('Clear Ids')) self.clear_identifiers_button.clicked.connect(self.identifiers.clear) self.paste_isbn_button = b = RightClickButton(self) @@ -254,7 +254,7 @@ class MetadataSingleDialogBase(QDialog): _('Paste the contents of the clipboard into the ' 'identifiers prefixed with isbn: or url:. Or right click, ' 'to choose a different prefix.') + '') - b.setIcon(QIcon(I('edit-paste.png'))) + b.setIcon(QIcon.ic('edit-paste.png')) b.clicked.connect(self.identifiers.paste_identifier) b.setPopupMode(QToolButton.ToolButtonPopupMode.DelayedPopup) b.setMenu(QMenu(b)) @@ -267,22 +267,22 @@ class MetadataSingleDialogBase(QDialog): self.pubdate = PubdateEdit(self) self.basic_metadata_widgets.extend([self.timestamp, self.pubdate]) - self.fetch_metadata_button = b = CenteredToolButton(QIcon(I('download-metadata.png')), _('&Download metadata'), self) + self.fetch_metadata_button = b = CenteredToolButton(QIcon.ic('download-metadata.png'), _('&Download metadata'), self) b.setPopupMode(QToolButton.ToolButtonPopupMode.DelayedPopup) b.setToolTip(_('Download metadata for this book [%s]') % self.download_shortcut.key().toString(QKeySequence.SequenceFormat.NativeText)) self.fetch_metadata_button.clicked.connect(self.fetch_metadata) self.fetch_metadata_menu = m = QMenu(self.fetch_metadata_button) - m.addAction(QIcon(I('edit-undo.png')), _('Undo last metadata download'), self.undo_fetch_metadata) + m.addAction(QIcon.ic('edit-undo.png'), _('Undo last metadata download'), self.undo_fetch_metadata) self.fetch_metadata_button.setMenu(m) self.download_shortcut.activated.connect(self.fetch_metadata_button.click) if self.use_toolbutton_for_config_metadata: self.config_metadata_button = QToolButton(self) - self.config_metadata_button.setIcon(QIcon(I('config.png'))) + self.config_metadata_button.setIcon(QIcon.ic('config.png')) else: self.config_metadata_button = QPushButton(self) self.config_metadata_button.setText(_('Configure download metadata')) - self.config_metadata_button.setIcon(QIcon(I('config.png'))) + self.config_metadata_button.setIcon(QIcon.ic('config.png')) self.config_metadata_button.clicked.connect(self.configure_metadata) self.config_metadata_button.setToolTip( _('Change how calibre downloads metadata')) @@ -780,7 +780,7 @@ class MetadataSingleDialog(MetadataSingleDialogBase): # {{{ tl.addWidget(one, row, col+1, 1, 1) if two is not None: tl.addWidget(two, row, col+2, 1, 1) - two.setIcon(QIcon(I(icon))) + two.setIcon(QIcon.ic(icon)) ql = BuddyLabel(three) tl.addWidget(ql, row, col+3, 1, 1) self.labels.append(ql) @@ -952,7 +952,7 @@ class MetadataSingleDialogAlt1(MetadataSingleDialogBase): # {{{ if button is not None: tl.addWidget(button, row, 3, span, 1) if icon is not None: - button.setIcon(QIcon(I(icon))) + button.setIcon(QIcon.ic(icon)) if tab_to is not None: if button is not None: sto(widget, button) @@ -1106,7 +1106,7 @@ class MetadataSingleDialogAlt2(MetadataSingleDialogBase): # {{{ if button is not None: tl.addWidget(button, row, 3, span, 1) if icon is not None: - button.setIcon(QIcon(I(icon))) + button.setIcon(QIcon.ic(icon)) if tab_to is not None: if button is not None: sto(widget, button) diff --git a/src/calibre/gui2/metadata/single_download.py b/src/calibre/gui2/metadata/single_download.py index b578fa3954..32f4d1bc20 100644 --- a/src/calibre/gui2/metadata/single_download.py +++ b/src/calibre/gui2/metadata/single_download.py @@ -125,7 +125,7 @@ class ResultsModel(QAbstractTableModel): # {{{ def __init__(self, results, parent=None): QAbstractTableModel.__init__(self, parent) self.results = results - self.yes_icon = (QIcon(I('ok.png'))) + self.yes_icon = (QIcon.ic('ok.png')) def rowCount(self, parent=None): return len(self.results) @@ -625,7 +625,7 @@ class CoversModel(QAbstractListModel): # {{{ current_cover = QPixmap(I('default_cover.png')) current_cover.setDevicePixelRatio(QApplication.instance().devicePixelRatio()) - self.blank = QIcon(I('blank.png')).pixmap(*CoverDelegate.ICON_SIZE) + self.blank = QIcon.ic('blank.png').pixmap(*CoverDelegate.ICON_SIZE) self.cc = current_cover self.reset_covers(do_reset=False) @@ -820,8 +820,8 @@ class CoversView(QListView): # {{{ idx = self.currentIndex() if idx and idx.isValid() and not idx.data(Qt.ItemDataRole.UserRole): m = QMenu(self) - m.addAction(QIcon(I('view.png')), _('View this cover at full size'), self.show_cover) - m.addAction(QIcon(I('edit-copy.png')), _('Copy this cover to clipboard'), self.copy_cover) + m.addAction(QIcon.ic('view.png'), _('View this cover at full size'), self.show_cover) + m.addAction(QIcon.ic('edit-copy.png'), _('Copy this cover to clipboard'), self.copy_cover) m.exec(QCursor.pos()) def show_cover(self): @@ -980,12 +980,12 @@ class LogViewer(QDialog): # {{{ self.copy_button = self.bb.addButton(_('Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole) self.copy_button.clicked.connect(self.copy_to_clipboard) - self.copy_button.setIcon(QIcon(I('edit-copy.png'))) + self.copy_button.setIcon(QIcon.ic('edit-copy.png')) self.bb.rejected.connect(self.reject) self.bb.accepted.connect(self.accept) self.setWindowTitle(_('Download log')) - self.setWindowIcon(QIcon(I('debug.png'))) + self.setWindowIcon(QIcon.ic('debug.png')) self.resize(QSize(800, 400)) self.keep_updating = True @@ -1022,7 +1022,7 @@ class FullFetch(QDialog): # {{{ self.book = self.cover_pixmap = None self.setWindowTitle(_('Downloading metadata...')) - self.setWindowIcon(QIcon(I('download-metadata.png'))) + self.setWindowIcon(QIcon.ic('download-metadata.png')) self.stack = QStackedWidget() self.l = l = QVBoxLayout() @@ -1037,12 +1037,12 @@ class FullFetch(QDialog): # {{{ self.ok_button = self.bb.button(QDialogButtonBox.StandardButton.Ok) self.ok_button.setEnabled(False) self.ok_button.clicked.connect(self.ok_clicked) - self.prev_button = pb = QPushButton(QIcon(I('back.png')), _('&Back'), self) + self.prev_button = pb = QPushButton(QIcon.ic('back.png'), _('&Back'), self) pb.clicked.connect(self.back_clicked) pb.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) self.log_button = self.bb.addButton(_('&View log'), QDialogButtonBox.ButtonRole.ActionRole) self.log_button.clicked.connect(self.view_log) - self.log_button.setIcon(QIcon(I('debug.png'))) + self.log_button.setIcon(QIcon.ic('debug.png')) self.prev_button.setVisible(False) h.addWidget(self.prev_button), h.addWidget(self.bb) @@ -1139,7 +1139,7 @@ class CoverFetch(QDialog): # {{{ self.cover_pixmap = None self.setWindowTitle(_('Downloading cover...')) - self.setWindowIcon(QIcon(I('default_cover.png'))) + self.setWindowIcon(QIcon.ic('default_cover.png')) self.l = l = QVBoxLayout() self.setLayout(l) @@ -1156,7 +1156,7 @@ class CoverFetch(QDialog): # {{{ l.addWidget(self.bb) self.log_button = self.bb.addButton(_('&View log'), QDialogButtonBox.ButtonRole.ActionRole) self.log_button.clicked.connect(self.view_log) - self.log_button.setIcon(QIcon(I('debug.png'))) + self.log_button.setIcon(QIcon.ic('debug.png')) self.bb.rejected.connect(self.reject) self.bb.accepted.connect(self.accept) diff --git a/src/calibre/gui2/open_with.py b/src/calibre/gui2/open_with.py index a529049098..bcd96ad1f5 100644 --- a/src/calibre/gui2/open_with.py +++ b/src/calibre/gui2/open_with.py @@ -64,12 +64,12 @@ def entry_to_icon_text(entry, only_text=False): from base64 import standard_b64decode data = bytearray(standard_b64decode(data)) if not isinstance(data, (bytearray, bytes)): - icon = QIcon(I('blank.png')) + icon = QIcon.ic('blank.png') else: pmap = QPixmap() pmap.loadFromData(bytes(data)) if pmap.isNull(): - icon = QIcon(I('blank.png')) + icon = QIcon.ic('blank.png') else: icon = QIcon(pmap) return icon, entry.get('name', entry.get('Name')) or _('Unknown') @@ -401,11 +401,11 @@ class EditPrograms(Dialog): # {{{ self.bb.clear(), self.bb.setStandardButtons(QDialogButtonBox.StandardButton.Close) self.rb = b = self.bb.addButton(_('&Remove'), QDialogButtonBox.ButtonRole.ActionRole) - b.clicked.connect(self.remove), b.setIcon(QIcon(I('list_remove.png'))) + b.clicked.connect(self.remove), b.setIcon(QIcon.ic('list_remove.png')) self.cb = b = self.bb.addButton(_('Change &icon'), QDialogButtonBox.ButtonRole.ActionRole) - b.clicked.connect(self.change_icon), b.setIcon(QIcon(I('icon_choose.png'))) + b.clicked.connect(self.change_icon), b.setIcon(QIcon.ic('icon_choose.png')) self.cb = b = self.bb.addButton(_('Change &name'), QDialogButtonBox.ButtonRole.ActionRole) - b.clicked.connect(self.change_name), b.setIcon(QIcon(I('modified.png'))) + b.clicked.connect(self.change_name), b.setIcon(QIcon.ic('modified.png')) l.addWidget(self.bb) self.populate() diff --git a/src/calibre/gui2/preferences/__init__.py b/src/calibre/gui2/preferences/__init__.py index 3c40a55603..8a621804ca 100644 --- a/src/calibre/gui2/preferences/__init__.py +++ b/src/calibre/gui2/preferences/__init__.py @@ -359,7 +359,7 @@ def show_config_widget(category, name, gui=None, show_restart_msg=False, conf_name = 'config_widget_dialog_geometry_%s_%s'%(category, name) geom = gprefs.get(conf_name, None) d.setWindowTitle(_('Configure ') + pl.gui_name) - d.setWindowIcon(QIcon(I('config.png'))) + d.setWindowIcon(QIcon.ic('config.png')) bb = QDialogButtonBox(d) bb.setStandardButtons(QDialogButtonBox.StandardButton.Apply|QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.RestoreDefaults) bb.accepted.connect(d.accept) diff --git a/src/calibre/gui2/preferences/coloring.py b/src/calibre/gui2/preferences/coloring.py index 671a2792a4..3234deb53f 100644 --- a/src/calibre/gui2/preferences/coloring.py +++ b/src/calibre/gui2/preferences/coloring.py @@ -384,7 +384,7 @@ class RuleEditor(QDialog): # {{{ self.rule_kind = 'emblem' rule_text = _('Cover grid emblem') - self.setWindowIcon(QIcon(I('format-fill-color.png'))) + self.setWindowIcon(QIcon.ic('format-fill-color.png')) self.setWindowTitle(_('Create/edit a {0} rule').format(rule_text)) self.l = l = QGridLayout(self) @@ -451,7 +451,7 @@ class RuleEditor(QDialog): # {{{ elif self.rule_kind == 'emblem': create_filename_box() self.update_filename_box() - self.filename_button = QPushButton(QIcon(I('document_open.png')), + self.filename_button = QPushButton(QIcon.ic('document_open.png'), _('&Add new image')) l.addWidget(self.filename_box, 3, 0) l.addWidget(self.filename_button, 3, 2) @@ -465,7 +465,7 @@ class RuleEditor(QDialog): # {{{ self.multiple_icon_cb.clicked.connect(self.multiple_box_clicked) l.addWidget(self.filename_box, 3, 5) - self.filename_button = QPushButton(QIcon(I('document_open.png')), + self.filename_button = QPushButton(QIcon.ic('document_open.png'), _('&Add icon')) l.addWidget(self.filename_button, 3, 6) l.addWidget(QLabel(_('(Icons should be square or landscape)')), 4, 6) @@ -481,7 +481,7 @@ class RuleEditor(QDialog): # {{{ sa.setWidgetResizable(True) l.addWidget(sa, 6, 0, 1, 8) - self.add_button = b = QPushButton(QIcon(I('plus.png')), + self.add_button = b = QPushButton(QIcon.ic('plus.png'), _('Add &another condition')) l.addWidget(b, 7, 0, 1, 8) b.clicked.connect(self.add_blank_condition) @@ -497,7 +497,7 @@ class RuleEditor(QDialog): # {{{ l.addWidget(bb, 9, 0, 1, 8) if self.rule_kind != 'color': self.remove_button = b = bb.addButton(_('&Remove icons'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('minus.png'))) + b.setIcon(QIcon.ic('minus.png')) b.clicked.connect(self.remove_icon_file_dialog) b.setToolTip('' + _('Remove previously added icons. Note that removing an ' 'icon will cause rules that use it to stop working.') + '
') @@ -559,7 +559,7 @@ class RuleEditor(QDialog): # {{{ self.icon_file_names.sort(key=sort_key) if doing_multiple: item = QStandardItem(_('Open to see checkboxes')) - item.setIcon(QIcon(I('blank.png'))) + item.setIcon(QIcon.ic('blank.png')) else: item = QStandardItem('') item.setFlags(Qt.ItemFlag(0)) @@ -989,9 +989,9 @@ class EditRules(QWidget): # {{{ l1.setWordWrap(True) l.addWidget(l1, l.rowCount(), 0, 1, 2) - self.add_button = QPushButton(QIcon(I('plus.png')), _('&Add rule'), + self.add_button = QPushButton(QIcon.ic('plus.png'), _('&Add rule'), self) - self.remove_button = QPushButton(QIcon(I('minus.png')), + self.remove_button = QPushButton(QIcon.ic('minus.png'), _('&Remove rule(s)'), self) self.add_button.clicked.connect(self.add_rule) self.remove_button.clicked.connect(self.remove_rule) @@ -1008,12 +1008,12 @@ class EditRules(QWidget): # {{{ g.addWidget(self.rules_view, 0, 0, 2, 1) self.up_button = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-up.png'))) + b.setIcon(QIcon.ic('arrow-up.png')) b.setToolTip(_('Move the selected rule up')) b.clicked.connect(partial(self.move_rows, moving_up=True)) g.addWidget(b, 0, 1, 1, 1, Qt.AlignmentFlag.AlignTop) self.down_button = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-down.png'))) + b.setIcon(QIcon.ic('arrow-down.png')) b.setToolTip(_('Move the selected rule down')) b.clicked.connect(partial(self.move_rows, moving_up=False)) g.addWidget(b, 1, 1, 1, 1, Qt.AlignmentFlag.AlignBottom) @@ -1021,18 +1021,18 @@ class EditRules(QWidget): # {{{ l.addLayout(g, l.rowCount(), 0, 1, 2) l.setRowStretch(l.rowCount() - 1, 10) - self.add_advanced_button = b = QPushButton(QIcon(I('plus.png')), + self.add_advanced_button = b = QPushButton(QIcon.ic('plus.png'), _('Add ad&vanced rule'), self) b.clicked.connect(self.add_advanced) self.hb = hb = FlowLayout() l.addLayout(hb, l.rowCount(), 0, 1, 2) hb.addWidget(b) - self.duplicate_rule_button = b = QPushButton(QIcon(I('edit-copy.png')), + self.duplicate_rule_button = b = QPushButton(QIcon.ic('edit-copy.png'), _('Du&plicate rule'), self) b.clicked.connect(self.duplicate_rule) b.setEnabled(False) hb.addWidget(b) - self.convert_to_advanced_button = b = QPushButton(QIcon(I('modified.png')), + self.convert_to_advanced_button = b = QPushButton(QIcon.ic('modified.png'), _('Convert to advanced r&ule'), self) b.clicked.connect(self.convert_to_advanced) b.setEnabled(False) @@ -1040,7 +1040,7 @@ class EditRules(QWidget): # {{{ sep = Separator(self, b) hb.addWidget(sep) - self.open_icon_folder_button = b = QPushButton(QIcon(I('icon_choose.png')), + self.open_icon_folder_button = b = QPushButton(QIcon.ic('icon_choose.png'), _('Open icon folder'), self) b.clicked.connect(self.open_icon_folder) hb.addWidget(b) diff --git a/src/calibre/gui2/preferences/columns.py b/src/calibre/gui2/preferences/columns.py index 3ba17172c4..f0b259bb96 100644 --- a/src/calibre/gui2/preferences/columns.py +++ b/src/calibre/gui2/preferences/columns.py @@ -166,7 +166,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): item.setToolTip(cc['name']) item.setFlags(flags) if self.is_custom_key(key): - item.setData(Qt.ItemDataRole.DecorationRole, (QIcon(I('column.png')))) + item.setData(Qt.ItemDataRole.DecorationRole, (QIcon.ic('column.png'))) self.opt_columns.setItem(row, 1, item) item = QTableWidgetItem(key) diff --git a/src/calibre/gui2/preferences/create_custom_column.py b/src/calibre/gui2/preferences/create_custom_column.py index 488e16cc26..3e3b41ef00 100644 --- a/src/calibre/gui2/preferences/create_custom_column.py +++ b/src/calibre/gui2/preferences/create_custom_column.py @@ -248,7 +248,7 @@ class CreateCustomColumn(QDialog): def setup_ui(self): # {{{ self.setWindowModality(Qt.WindowModality.ApplicationModal) - self.setWindowIcon(QIcon(I('column.png'))) + self.setWindowIcon(QIcon.ic('column.png')) self.vl = l = QVBoxLayout(self) self.heading_label = la = QLabel('') l.addWidget(la) diff --git a/src/calibre/gui2/preferences/device_debug.py b/src/calibre/gui2/preferences/device_debug.py index 8410238cdf..3e07b77458 100644 --- a/src/calibre/gui2/preferences/device_debug.py +++ b/src/calibre/gui2/preferences/device_debug.py @@ -25,7 +25,7 @@ class DebugDevice(QDialog): self.copy = QPushButton(_('Copy to &clipboard')) self.copy.setDefault(True) self.setWindowTitle(_('Debug device detection')) - self.setWindowIcon(QIcon(I('debug.png'))) + self.setWindowIcon(QIcon.ic('debug.png')) self.copy.clicked.connect(self.copy_to_clipboard) self.ok = QPushButton('&OK') self.ok.setAutoDefault(False) diff --git a/src/calibre/gui2/preferences/device_user_defined.py b/src/calibre/gui2/preferences/device_user_defined.py index 23d6571d28..29529ee556 100644 --- a/src/calibre/gui2/preferences/device_user_defined.py +++ b/src/calibre/gui2/preferences/device_user_defined.py @@ -31,7 +31,7 @@ class UserDefinedDevice(QDialog): self.copy = QPushButton(_('Copy to &clipboard')) self.copy.setDefault(True) self.setWindowTitle(_('User-defined device information')) - self.setWindowIcon(QIcon(I('debug.png'))) + self.setWindowIcon(QIcon.ic('debug.png')) self.copy.clicked.connect(self.copy_to_clipboard) self.ok = QPushButton('&OK') self.ok.setAutoDefault(False) diff --git a/src/calibre/gui2/preferences/ignored_devices.py b/src/calibre/gui2/preferences/ignored_devices.py index c1fbaee13e..aea7328319 100644 --- a/src/calibre/gui2/preferences/ignored_devices.py +++ b/src/calibre/gui2/preferences/ignored_devices.py @@ -82,7 +82,7 @@ class ConfigWidget(ConfigWidgetBase): item.setData(Qt.ItemDataRole.UserRole, dev) item.setFlags(Qt.ItemFlag.ItemIsEnabled|Qt.ItemFlag.ItemIsUserCheckable|Qt.ItemFlag.ItemIsSelectable) item.setCheckState(Qt.CheckState.Checked) - item.setIcon(QIcon(I('plugins.png'))) + item.setIcon(QIcon.ic('plugins.png')) self.device_plugins.sortItems() self.device_plugins.blockSignals(False) diff --git a/src/calibre/gui2/preferences/look_feel.py b/src/calibre/gui2/preferences/look_feel.py index f346bcad86..8b71e8f0a1 100644 --- a/src/calibre/gui2/preferences/look_feel.py +++ b/src/calibre/gui2/preferences/look_feel.py @@ -182,13 +182,13 @@ class IdLinksEditor(Dialog): t.setItem(r, 2, QTableWidgetItem(template)) l.addWidget(t) t.horizontalHeader().setSectionResizeMode(2, t.horizontalHeader().Stretch) - self.cb = b = QPushButton(QIcon(I('plus.png')), _('&Add rule'), self) + self.cb = b = QPushButton(QIcon.ic('plus.png'), _('&Add rule'), self) connect_lambda(b.clicked, self, lambda self: self.edit_rule()) self.bb.addButton(b, QDialogButtonBox.ButtonRole.ActionRole) - self.rb = b = QPushButton(QIcon(I('minus.png')), _('&Remove rule'), self) + self.rb = b = QPushButton(QIcon.ic('minus.png'), _('&Remove rule'), self) connect_lambda(b.clicked, self, lambda self: self.remove_rule()) self.bb.addButton(b, QDialogButtonBox.ButtonRole.ActionRole) - self.eb = b = QPushButton(QIcon(I('modified.png')), _('&Edit rule'), self) + self.eb = b = QPushButton(QIcon.ic('modified.png'), _('&Edit rule'), self) connect_lambda(b.clicked, self, lambda self: self.edit_rule(self.table.currentRow())) self.bb.addButton(b, QDialogButtonBox.ButtonRole.ActionRole) l.addWidget(self.bb) @@ -265,7 +265,7 @@ class DisplayedFields(QAbstractListModel): # {{{ if role == Qt.ItemDataRole.CheckStateRole: return Qt.CheckState.Checked if visible else Qt.CheckState.Unchecked if role == Qt.ItemDataRole.DecorationRole and field.startswith('#'): - return QIcon(I('column.png')) + return QIcon.ic('column.png') return None def toggle_all(self, show=True): @@ -581,12 +581,12 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.edit_rules = EditRules(self.tabWidget) self.edit_rules.changed.connect(self.changed_signal) self.tabWidget.addTab(self.edit_rules, - QIcon(I('format-fill-color.png')), _('Column &coloring')) + QIcon.ic('format-fill-color.png'), _('Column &coloring')) self.icon_rules = EditRules(self.tabWidget) self.icon_rules.changed.connect(self.changed_signal) self.tabWidget.addTab(self.icon_rules, - QIcon(I('icon_choose.png')), _('Column &icons')) + QIcon.ic('icon_choose.png'), _('Column &icons')) self.grid_rules = EditRules(self.emblems_tab) self.grid_rules.changed.connect(self.changed_signal) diff --git a/src/calibre/gui2/preferences/main.py b/src/calibre/gui2/preferences/main.py index cb322a9551..0e515bd528 100644 --- a/src/calibre/gui2/preferences/main.py +++ b/src/calibre/gui2/preferences/main.py @@ -234,7 +234,7 @@ class Preferences(QDialog): self.setWindowModality(Qt.WindowModality.ApplicationModal) self.setWindowTitle(__appname__ + ' — ' + _('Preferences')) - self.setWindowIcon(QIcon(I('config.png'))) + self.setWindowIcon(QIcon.ic('config.png')) self.l = l = QVBoxLayout(self) self.stack = QStackedWidget(self) @@ -243,10 +243,10 @@ class Preferences(QDialog): QDialogButtonBox.StandardButton.Cancel ) self.bb.button(QDialogButtonBox.StandardButton.Apply).clicked.connect(self.accept) - self.wizard_button = QPushButton(QIcon(I('wizard.png')), _('Run Welcome &wizard')) + self.wizard_button = QPushButton(QIcon.ic('wizard.png'), _('Run Welcome &wizard')) self.wizard_button.clicked.connect(self.run_wizard, type=Qt.ConnectionType.QueuedConnection) self.wizard_button.setAutoDefault(False) - self.restore_defaults_button = rdb = QPushButton(QIcon(I('clear_left.png')), _('Restore &defaults')) + self.restore_defaults_button = rdb = QPushButton(QIcon.ic('clear_left.png'), _('Restore &defaults')) rdb.clicked.connect(self.restore_defaults, type=Qt.ConnectionType.QueuedConnection) rdb.setAutoDefault(False) rdb.setVisible(False) @@ -360,7 +360,7 @@ class Preferences(QDialog): self.setWindowTitle(__appname__ + ' - ' + _('Preferences')) self.stack.setCurrentIndex(0) self.title_bar.show_plugin() - self.setWindowIcon(QIcon(I('config.png'))) + self.setWindowIcon(QIcon.ic('config.png')) for button in (QDialogButtonBox.StandardButton.Apply, QDialogButtonBox.StandardButton.Cancel): button = self.bb.button(button) diff --git a/src/calibre/gui2/preferences/metadata_sources.py b/src/calibre/gui2/preferences/metadata_sources.py index 9dccd6ccd8..93b97eaba5 100644 --- a/src/calibre/gui2/preferences/metadata_sources.py +++ b/src/calibre/gui2/preferences/metadata_sources.py @@ -74,7 +74,7 @@ class SourcesModel(QAbstractTableModel): # {{{ return plugin elif (role == Qt.ItemDataRole.DecorationRole and col == 0 and not plugin.is_configured()): - return QIcon(I('list_remove.png')) + return QIcon.ic('list_remove.png') elif role == Qt.ItemDataRole.ToolTipRole: base = plugin.description + '\n\n' if plugin.is_configured(): diff --git a/src/calibre/gui2/preferences/plugins.py b/src/calibre/gui2/preferences/plugins.py index c16005ae3b..38b0e7e0bf 100644 --- a/src/calibre/gui2/preferences/plugins.py +++ b/src/calibre/gui2/preferences/plugins.py @@ -38,7 +38,7 @@ class PluginModel(QAbstractItemModel, AdaptSQP): # {{{ QAbstractItemModel.__init__(self) SearchQueryParser.__init__(self, ['all']) self.show_only_user_plugins = show_only_user_plugins - self.icon = QIcon(I('plugins.png')) + self.icon = QIcon.ic('plugins.png') p = QIcon(self.icon).pixmap(64, 64, QIcon.Mode.Disabled, QIcon.State.On) self.disabled_icon = QIcon(p) self._p = p diff --git a/src/calibre/gui2/preferences/server.py b/src/calibre/gui2/preferences/server.py index 465528306b..04dde60d6f 100644 --- a/src/calibre/gui2/preferences/server.py +++ b/src/calibre/gui2/preferences/server.py @@ -189,7 +189,7 @@ class Path(QWidget): self.b = b = QToolButton(self) l.addWidget(b) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) b.setToolTip(_("Browse for the file")) b.clicked.connect(self.choose) init_opt(self, opt, layout) @@ -819,11 +819,11 @@ class Users(QWidget): self.h = h = QHBoxLayout() lp.addLayout(h) - self.add_button = b = QPushButton(QIcon(I('plus.png')), _('&Add user'), self) + self.add_button = b = QPushButton(QIcon.ic('plus.png'), _('&Add user'), self) b.clicked.connect(self.add_user) h.addWidget(b) self.remove_button = b = QPushButton( - QIcon(I('minus.png')), _('&Remove user'), self + QIcon.ic('minus.png'), _('&Remove user'), self ) b.clicked.connect(self.remove_user) h.addStretch(2), h.addWidget(b) @@ -1107,7 +1107,7 @@ class SearchTheInternet(QWidget): self.h = QHBoxLayout() gl.addLayout(self.h) - self.add_url_button = b = QPushButton(QIcon(I('plus.png')), _('&Add URL')) + self.add_url_button = b = QPushButton(QIcon.ic('plus.png'), _('&Add URL')) b.clicked.connect(self.add_url) self.h.addWidget(b) self.export_button = b = QPushButton(_('Export URLs')) diff --git a/src/calibre/gui2/preferences/texture_chooser.py b/src/calibre/gui2/preferences/texture_chooser.py index d3357b7df9..4415deb2ad 100644 --- a/src/calibre/gui2/preferences/texture_chooser.py +++ b/src/calibre/gui2/preferences/texture_chooser.py @@ -60,10 +60,10 @@ class TextureChooser(QDialog): bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) b = self.add_button = bb.addButton(_('Add texture'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('plus.png'))) + b.setIcon(QIcon.ic('plus.png')) b.clicked.connect(self.add_texture) b = self.remove_button = bb.addButton(_('Remove texture'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('minus.png'))) + b.setIcon(QIcon.ic('minus.png')) b.clicked.connect(self.remove_texture) l.addWidget(bb) diff --git a/src/calibre/gui2/preferences/toolbar.py b/src/calibre/gui2/preferences/toolbar.py index e888503619..39fe7a223e 100644 --- a/src/calibre/gui2/preferences/toolbar.py +++ b/src/calibre/gui2/preferences/toolbar.py @@ -75,7 +75,7 @@ class BaseModel(QAbstractListModel): ic = action[1] if ic is None: ic = 'blank.png' - return (QIcon(I(ic))) + return (QIcon.ic(ic)) if role == Qt.ItemDataRole.ToolTipRole and action[2] is not None: return (action[2]) return None diff --git a/src/calibre/gui2/preferences/tweaks.py b/src/calibre/gui2/preferences/tweaks.py index db7f043858..28d16fc808 100644 --- a/src/calibre/gui2/preferences/tweaks.py +++ b/src/calibre/gui2/preferences/tweaks.py @@ -398,11 +398,11 @@ class ConfigWidget(ConfigWidgetBase): g.setColumnStretch(0, 100) g.addWidget(self.search, 0, 0, 1, 1) self.next_button = b = QPushButton(self) - b.setIcon(QIcon(I("arrow-down.png"))) + b.setIcon(QIcon.ic("arrow-down.png")) b.setText(_("&Next")) g.addWidget(self.next_button, 0, 1, 1, 1) self.previous_button = b = QPushButton(self) - b.setIcon(QIcon(I("arrow-up.png"))) + b.setIcon(QIcon.ic("arrow-up.png")) b.setText(_("&Previous")) g.addWidget(self.previous_button, 0, 2, 1, 1) @@ -447,7 +447,7 @@ class ConfigWidget(ConfigWidgetBase): self.search.search.connect(self.find) self.view.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.view.customContextMenuRequested.connect(self.show_context_menu) - self.copy_icon = QIcon(I('edit-copy.png')) + self.copy_icon = QIcon.ic('edit-copy.png') def show_context_menu(self, point): idx = self.tweaks_view.currentIndex() diff --git a/src/calibre/gui2/proceed.py b/src/calibre/gui2/proceed.py index bf97230d26..ef2269c397 100644 --- a/src/calibre/gui2/proceed.py +++ b/src/calibre/gui2/proceed.py @@ -57,7 +57,7 @@ class Icon(QWidget): elif icon is None: self.icon = self.default_icon else: - self.icon = QIcon(I(icon)).pixmap(self.sizeHint()) + self.icon = QIcon.ic(icon).pixmap(self.sizeHint()) self.update() def sizeHint(self): @@ -113,7 +113,7 @@ class ProceedQuestion(QWidget): self.bb.accepted.connect(self.accept) self.bb.rejected.connect(self.reject) self.log_button = self.bb.addButton(_('View log'), QDialogButtonBox.ButtonRole.ActionRole) - self.log_button.setIcon(QIcon(I('debug.png'))) + self.log_button.setIcon(QIcon.ic('debug.png')) self.log_button.clicked.connect(self.show_log) self.copy_button = self.bb.addButton(_('&Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole) diff --git a/src/calibre/gui2/search_box.py b/src/calibre/gui2/search_box.py index 19879cefc3..af1f044b6c 100644 --- a/src/calibre/gui2/search_box.py +++ b/src/calibre/gui2/search_box.py @@ -50,7 +50,7 @@ class SearchLineEdit(QLineEdit): # {{{ menu.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) ac = menu.addAction(_('Paste and &search')) ac.setEnabled(bool(QApplication.clipboard().text())) - ac.setIcon(QIcon(I('search.png'))) + ac.setIcon(QIcon.ic('search.png')) ac.triggered.connect(self.paste_and_search) for action in menu.actions(): if action.text().startswith(_('&Paste') + '\t'): @@ -146,7 +146,7 @@ class SearchBox2(QComboBox): # {{{ def add_action(self, icon, position=QLineEdit.ActionPosition.TrailingPosition): if not isinstance(icon, QIcon): - icon = QIcon(I(icon)) + icon = QIcon.ic(icon) return self.lineEdit().addAction(icon, position) def initialize(self, opt_name, colorize=False, help_text=_('Search'), as_you_type=None): @@ -512,10 +512,10 @@ class SearchBoxMixin: # {{{ def set_highlight_only_button_icon(self): b = self.highlight_only_button if config['highlight_search_matches']: - b.setIcon(QIcon(I('highlight_only_on.png'))) + b.setIcon(QIcon.ic('highlight_only_on.png')) b.setText(_('Filter')) else: - b.setIcon(QIcon(I('highlight_only_off.png'))) + b.setIcon(QIcon.ic('highlight_only_off.png')) b.setText(_('Highlight')) self.highlight_only_button.setVisible(gprefs['show_highlight_toggle_button']) self.library_view.model().set_highlight_only(config['highlight_search_matches']) @@ -576,21 +576,21 @@ class SavedSearchBoxMixin: # {{{ "Press and hold for a pop-up options menu.") + '') self.save_search_button.setMenu(QMenu(self.save_search_button)) self.save_search_button.menu().addAction( - QIcon(I('plus.png')), + QIcon.ic('plus.png'), _('Create Saved search'), self.saved_search.save_search_button_clicked) self.save_search_button.menu().addAction( - QIcon(I('trash.png')), _('Delete Saved search'), self.saved_search.delete_current_search) + QIcon.ic('trash.png'), _('Delete Saved search'), self.saved_search.delete_current_search) self.save_search_button.menu().addAction( - QIcon(I('search.png')), _('Manage Saved searches'), partial(self.do_saved_search_edit, None)) + QIcon.ic('search.png'), _('Manage Saved searches'), partial(self.do_saved_search_edit, None)) self.add_saved_search_button.setMenu(QMenu(self.add_saved_search_button)) self.add_saved_search_button.menu().aboutToShow.connect(self.populate_add_saved_search_menu) def populate_add_saved_search_menu(self): m = self.add_saved_search_button.menu() m.clear() - m.addAction(QIcon(I('plus.png')), _('Add Saved search'), self.add_saved_search) - m.addAction(QIcon(I("search_copy_saved.png")), _('Get Saved search expression'), + m.addAction(QIcon.ic('plus.png'), _('Add Saved search'), self.add_saved_search) + m.addAction(QIcon.ic("search_copy_saved.png"), _('Get Saved search expression'), self.get_saved_search_text) m.addActions(list(self.save_search_button.menu().actions())[-1:]) m.addSeparator() diff --git a/src/calibre/gui2/search_restriction_mixin.py b/src/calibre/gui2/search_restriction_mixin.py index 44aa3b00b3..619136e0f9 100644 --- a/src/calibre/gui2/search_restriction_mixin.py +++ b/src/calibre/gui2/search_restriction_mixin.py @@ -112,7 +112,7 @@ class CreateVirtualLibrary(QDialog): # {{{ self.setWindowTitle(_('Edit Virtual library')) else: self.setWindowTitle(_('Create Virtual library')) - self.setWindowIcon(QIcon(I('lt.png'))) + self.setWindowIcon(QIcon.ic('lt.png')) gl = QGridLayout() self.setLayout(gl) @@ -328,8 +328,8 @@ class SearchRestrictionMixin: pass def init_search_restriction_mixin(self): - self.checked = QIcon(I('ok.png')) - self.empty = QIcon(I('blank.png')) + self.checked = QIcon.ic('ok.png') + self.empty = QIcon.ic('blank.png') self.current_search_action = QAction(self.empty, _('*current search'), self) self.current_search_action.triggered.connect(partial(self.apply_virtual_library, library='*')) self.addAction(self.current_search_action) diff --git a/src/calibre/gui2/store/config/chooser/chooser_widget.py b/src/calibre/gui2/store/config/chooser/chooser_widget.py index 67f92ecf49..275c8808f3 100644 --- a/src/calibre/gui2/store/config/chooser/chooser_widget.py +++ b/src/calibre/gui2/store/config/chooser/chooser_widget.py @@ -17,7 +17,7 @@ class StoreChooserWidget(QWidget, Ui_Form): self.query.initialize('store_config_chooser_query') self.query.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon) self.query.setMinimumContentsLength(25) - self.adv_search_action = ac = self.query.lineEdit().addAction(QIcon(I('gear.png')), QLineEdit.ActionPosition.LeadingPosition) + self.adv_search_action = ac = self.query.lineEdit().addAction(QIcon.ic('gear.png'), QLineEdit.ActionPosition.LeadingPosition) ac.triggered.connect(self.build_adv_search) ac.setToolTip(_('Advanced search')) self.search.clicked.connect(self.do_search) diff --git a/src/calibre/gui2/store/config/chooser/models.py b/src/calibre/gui2/store/config/chooser/models.py index cfa0775006..7384764805 100644 --- a/src/calibre/gui2/store/config/chooser/models.py +++ b/src/calibre/gui2/store/config/chooser/models.py @@ -44,8 +44,8 @@ class Matches(QAbstractItemModel): def __init__(self, plugins): QAbstractItemModel.__init__(self) - self.NO_DRM_ICON = QIcon(I('ok.png')) - self.DONATE_ICON = QIcon(I('donate.png')) + self.NO_DRM_ICON = QIcon.ic('ok.png') + self.DONATE_ICON = QIcon.ic('donate.png') self.all_matches = plugins self.matches = plugins diff --git a/src/calibre/gui2/store/search/models.py b/src/calibre/gui2/store/search/models.py index a6afac31b5..c223b10b83 100644 --- a/src/calibre/gui2/store/search/models.py +++ b/src/calibre/gui2/store/search/models.py @@ -41,11 +41,11 @@ class Matches(QAbstractItemModel): def __init__(self, cover_thread_count=2, detail_thread_count=4): QAbstractItemModel.__init__(self) - self.DRM_LOCKED_ICON = QIcon(I('drm-locked.png')) - self.DRM_UNLOCKED_ICON = QIcon(I('drm-unlocked.png')) - self.DRM_UNKNOWN_ICON = QIcon(I('dialog_question.png')) - self.DONATE_ICON = QIcon(I('donate.png')) - self.DOWNLOAD_ICON = QIcon(I('arrow-down.png')) + self.DRM_LOCKED_ICON = QIcon.ic('drm-locked.png') + self.DRM_UNLOCKED_ICON = QIcon.ic('drm-unlocked.png') + self.DRM_UNKNOWN_ICON = QIcon.ic('dialog_question.png') + self.DONATE_ICON = QIcon.ic('donate.png') + self.DOWNLOAD_ICON = QIcon.ic('arrow-down.png') # All matches. Used to determine the order to display # self.matches because the SearchFilter returns diff --git a/src/calibre/gui2/store/search/search.py b/src/calibre/gui2/store/search/search.py index e5ccbd0090..932af85b86 100644 --- a/src/calibre/gui2/store/search/search.py +++ b/src/calibre/gui2/store/search/search.py @@ -81,9 +81,9 @@ class SearchDialog(QDialog, Ui_Dialog): self.button_layout.setAlignment(Qt.AlignmentFlag.AlignCenter) self.button_layout.insertWidget(0, self.pi, 0, Qt.AlignmentFlag.AlignCenter) - self.adv_search_button.setIcon(QIcon(I('gear.png'))) + self.adv_search_button.setIcon(QIcon.ic('gear.png')) self.adv_search_button.setToolTip(_('Advanced search')) - self.configure.setIcon(QIcon(I('config.png'))) + self.configure.setIcon(QIcon.ic('config.png')) self.adv_search_button.clicked.connect(self.build_adv_search) self.search.clicked.connect(self.toggle_search) @@ -120,7 +120,7 @@ class SearchDialog(QDialog, Ui_Dialog): store_list_layout = QGridLayout() stores_check_widget.setLayout(store_list_layout) - icon = QIcon(I('donate.png')) + icon = QIcon.ic('donate.png') for i, x in enumerate(sorted(self.gui.istores.keys(), key=lambda x: x.lower())): cbox = QCheckBox(x) cbox.setChecked(existing.get(x, first_run)) diff --git a/src/calibre/gui2/store/stores/mobileread/store_dialog.py b/src/calibre/gui2/store/stores/mobileread/store_dialog.py index 15531cd1c8..d0f34ca649 100644 --- a/src/calibre/gui2/store/stores/mobileread/store_dialog.py +++ b/src/calibre/gui2/store/stores/mobileread/store_dialog.py @@ -25,7 +25,7 @@ class MobileReadStoreDialog(QDialog, Ui_Dialog): self.search_query.setSizeAdjustPolicy(QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon) self.search_query.setMinimumContentsLength(25) - self.adv_search_button.setIcon(QIcon(I('search.png'))) + self.adv_search_button.setIcon(QIcon.ic('search.png')) self._model = BooksModel(self.plugin.get_book_list()) self.results_view.setModel(self._model) diff --git a/src/calibre/gui2/store/web_store.py b/src/calibre/gui2/store/web_store.py index 79339deef4..14263f39b0 100644 --- a/src/calibre/gui2/store/web_store.py +++ b/src/calibre/gui2/store/web_store.py @@ -131,7 +131,7 @@ class Main(MainWindow): def __init__(self, data): MainWindow.__init__(self, None) - self.setWindowIcon(QIcon(I('store.png'))) + self.setWindowIcon(QIcon.ic('store.png')) self.setWindowTitle(data['window_title']) self.download_data = {} self.data = data diff --git a/src/calibre/gui2/tag_browser/model.py b/src/calibre/gui2/tag_browser/model.py index 40444828aa..75532efac0 100644 --- a/src/calibre/gui2/tag_browser/model.py +++ b/src/calibre/gui2/tag_browser/model.py @@ -340,8 +340,8 @@ class TagsModel(QAbstractItemModel): # {{{ if len(icon.availableSizes()) > 0: self.category_custom_icons[k] = icon self.categories_with_ratings = ['authors', 'series', 'publisher', 'tags'] - self.icon_state_map = [None, QIcon(I('plus.png')), QIcon(I('plusplus.png')), - QIcon(I('minus.png')), QIcon(I('minusminus.png'))] + self.icon_state_map = [None, QIcon.ic('plus.png'), QIcon.ic('plusplus.png'), + QIcon.ic('minus.png'), QIcon.ic('minusminus.png')] self.hidden_categories = set() self.search_restriction = None diff --git a/src/calibre/gui2/tag_browser/ui.py b/src/calibre/gui2/tag_browser/ui.py index 3f7da14ba9..c885b7f13c 100644 --- a/src/calibre/gui2/tag_browser/ui.py +++ b/src/calibre/gui2/tag_browser/ui.py @@ -47,7 +47,7 @@ class TagBrowserMixin: # {{{ (_('Saved searches'), self.do_saved_search_edit, (None,), 'search') ): - m.addAction(QIcon(I(category_icon_map[cat_name])), text, + m.addAction(QIcon.ic(category_icon_map[cat_name]), text, partial(func, *args)) fm = db.new_api.field_metadata categories = [x[0] for x in find_categories(fm) if fm.is_custom_field(x[0])] @@ -533,7 +533,7 @@ class TagBrowserBar(QWidget): # {{{ ' how it is sorted, what happens when you click' ' items, etc.' ))) - b.setIcon(QIcon(I('config.png'))) + b.setIcon(QIcon.ic('config.png')) b.m = QMenu(b) b.setMenu(b.m) @@ -562,7 +562,7 @@ class TagBrowserBar(QWidget): # {{{ self.search_button = QToolButton() self.search_button.setAutoRaise(True) self.search_button.setCursor(Qt.CursorShape.PointingHandCursor) - self.search_button.setIcon(QIcon(I('search.png'))) + self.search_button.setIcon(QIcon.ic('search.png')) self.search_button.setToolTip(_('Find the first/next matching item')) ac = QAction(parent) parent.addAction(ac) @@ -573,10 +573,10 @@ class TagBrowserBar(QWidget): # {{{ self.toggle_search_button = b = QToolButton(self) le = self.item_search.lineEdit() - le.addAction(QIcon(I('window-close.png')), QLineEdit.ActionPosition.LeadingPosition).triggered.connect(self.close_find_box) + le.addAction(QIcon.ic('window-close.png'), QLineEdit.ActionPosition.LeadingPosition).triggered.connect(self.close_find_box) b.setText(_('Find')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) b.setCursor(Qt.CursorShape.PointingHandCursor) - b.setIcon(QIcon(I('search.png'))) + b.setIcon(QIcon.ic('search.png')) b.setCheckable(True) b.setChecked(gprefs.get('tag browser search box visible', False)) b.setToolTip(_('Find item in the Tag browser')) diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index 06882de445..22a245b8d6 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -196,14 +196,14 @@ class TagsView(QTreeView): # {{{ self.setDropIndicatorShown(True) self.setAutoExpandDelay(500) self.pane_is_visible = False - self.search_icon = QIcon(I('search.png')) - self.search_copy_icon = QIcon(I("search_copy_saved.png")) - self.user_category_icon = QIcon(I('tb_folder.png')) - self.edit_metadata_icon = QIcon(I('edit_input.png')) - self.delete_icon = QIcon(I('list_remove.png')) - self.rename_icon = QIcon(I('edit-undo.png')) - self.plus_icon = QIcon(I('plus.png')) - self.minus_icon = QIcon(I('minus.png')) + self.search_icon = QIcon.ic('search.png') + self.search_copy_icon = QIcon.ic("search_copy_saved.png") + self.user_category_icon = QIcon.ic('tb_folder.png') + self.edit_metadata_icon = QIcon.ic('edit_input.png') + self.delete_icon = QIcon.ic('list_remove.png') + self.rename_icon = QIcon.ic('edit-undo.png') + self.plus_icon = QIcon.ic('plus.png') + self.minus_icon = QIcon.ic('minus.png') self._model = TagsModel(self) self._model.search_item_renamed.connect(self.search_item_renamed) @@ -704,7 +704,7 @@ class TagsView(QTreeView): # {{{ if self.hidden_categories and not added_show_hidden_categories: added_show_hidden_categories = True m = self.context_menu.addMenu(_('Show category')) - m.setIcon(QIcon(I('plus.png'))) + m.setIcon(QIcon.ic('plus.png')) for col in sorted(self.hidden_categories, key=lambda x: sort_key(self.db.field_metadata[x]['name'])): ac = m.addAction(self.db.field_metadata[col]['name'], @@ -714,7 +714,7 @@ class TagsView(QTreeView): # {{{ ac.setIcon(QIcon(ic)) m.addSeparator() m.addAction(_('All categories'), - partial(self.context_menu_handler, action='defaults')).setIcon(QIcon(I('plusplus.png'))) + partial(self.context_menu_handler, action='defaults')).setIcon(QIcon.ic('plusplus.png')) search_submenu = None if index.isValid(): @@ -772,10 +772,10 @@ class TagsView(QTreeView): # {{{ if key == 'authors': self.context_menu.addAction(_('Edit sort for %s')%display_name(tag), partial(self.context_menu_handler, - action='edit_author_sort', index=tag.id)).setIcon(QIcon(I('auto_author_sort.png'))) + action='edit_author_sort', index=tag.id)).setIcon(QIcon.ic('auto_author_sort.png')) self.context_menu.addAction(_('Edit link for %s')%display_name(tag), partial(self.context_menu_handler, - action='edit_author_link', index=tag.id)).setIcon(QIcon(I('insert-link.png'))) + action='edit_author_link', index=tag.id)).setIcon(QIcon.ic('insert-link.png')) # is_editable is also overloaded to mean 'can be added # to a User category' @@ -848,7 +848,7 @@ class TagsView(QTreeView): # {{{ # Add the search for value items. All leaf nodes are searchable self.context_menu.addSeparator() search_submenu = self.context_menu.addMenu(_('Search for')) - search_submenu.setIcon(QIcon(I('search.png'))) + search_submenu.setIcon(QIcon.ic('search.png')) search_submenu.addAction(self.search_icon, '%s'%display_name(tag), partial(self.context_menu_handler, action='search', @@ -899,7 +899,7 @@ class TagsView(QTreeView): # {{{ tag_item.temporary and not key.startswith('@'): self.context_menu.addSeparator() search_submenu = self.context_menu.addMenu(_('Search for')) - search_submenu.setIcon(QIcon(I('search.png'))) + search_submenu.setIcon(QIcon.ic('search.png')) search_submenu.addAction(self.search_icon, '%s'%display_name(tag_item.tag), partial(self.context_menu_handler, action='search', @@ -915,7 +915,7 @@ class TagsView(QTreeView): # {{{ if item.tag.is_searchable: if search_submenu is None: search_submenu = self.context_menu.addMenu(_('Search for')) - search_submenu.setIcon(QIcon(I('search.png'))) + search_submenu.setIcon(QIcon.ic('search.png')) self.context_menu.addSeparator() else: search_submenu.addSeparator() @@ -978,15 +978,15 @@ class TagsView(QTreeView): # {{{ self.context_menu.addSeparator() self.context_menu.addAction(_('Hide category %s') % category, partial(self.context_menu_handler, action='hide', - category=key)).setIcon(QIcon(I('minus.png'))) + category=key)).setIcon(QIcon.ic('minus.png')) add_show_hidden_categories() if tag is None: self.context_menu.addSeparator() self.context_menu.addAction(_('Change category icon'), - partial(self.context_menu_handler, action='set_icon', key=key)).setIcon(QIcon(I('icon_choose.png'))) + partial(self.context_menu_handler, action='set_icon', key=key)).setIcon(QIcon.ic('icon_choose.png')) self.context_menu.addAction(_('Restore default icon'), - partial(self.context_menu_handler, action='clear_icon', key=key)).setIcon(QIcon(I('edit-clear.png'))) + partial(self.context_menu_handler, action='clear_icon', key=key)).setIcon(QIcon.ic('edit-clear.png')) # Always show the User categories editor self.context_menu.addSeparator() @@ -1007,7 +1007,7 @@ class TagsView(QTreeView): # {{{ add_show_hidden_categories() m = self.context_menu.addMenu(_('Change sub-categorization scheme')) - m.setIcon(QIcon(I('config.png'))) + m.setIcon(QIcon.ic('config.png')) da = m.addAction(_('Disable'), partial(self.context_menu_handler, action='categorization', category='disable')) fla = m.addAction(_('By first letter'), diff --git a/src/calibre/gui2/tag_mapper.py b/src/calibre/gui2/tag_mapper.py index 5c660a2eb4..d3b1530bec 100644 --- a/src/calibre/gui2/tag_mapper.py +++ b/src/calibre/gui2/tag_mapper.py @@ -98,7 +98,7 @@ class RuleEdit(QWidget): self.query = q = QueryEdit(self) h.addWidget(q) self.tag_editor_button = b = QToolButton(self) - b.setIcon(QIcon(I('chapters.png'))) + b.setIcon(QIcon.ic('chapters.png')) b.setToolTip(_('Edit the list of tags with the Tag editor')) h.addWidget(b), b.clicked.connect(self.edit_tags) b.setVisible(self.can_use_tag_editor) @@ -285,10 +285,10 @@ class Rules(QWidget): l.addWidget(la) self.h = h = QHBoxLayout() l.addLayout(h) - self.add_button = b = QPushButton(QIcon(I('plus.png')), _('&Add rule'), self) + self.add_button = b = QPushButton(QIcon.ic('plus.png'), _('&Add rule'), self) b.clicked.connect(self.add_rule) h.addWidget(b) - self.remove_button = b = QPushButton(QIcon(I('minus.png')), _('&Remove rule(s)'), self) + self.remove_button = b = QPushButton(QIcon.ic('minus.png'), _('&Remove rule(s)'), self) b.clicked.connect(self.remove_rules) h.addWidget(b) self.h3 = h = QHBoxLayout() @@ -307,11 +307,11 @@ class Rules(QWidget): self.l2 = l = QVBoxLayout() h.addLayout(l) self.up_button = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-up.png'))), b.setToolTip(_('Move current rule up')) + b.setIcon(QIcon.ic('arrow-up.png')), b.setToolTip(_('Move current rule up')) b.clicked.connect(self.move_up) l.addWidget(b) self.down_button = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-down.png'))), b.setToolTip(_('Move current rule down')) + b.setIcon(QIcon.ic('arrow-down.png')), b.setToolTip(_('Move current rule down')) b.clicked.connect(self.move_down) l.addStretch(10), l.addWidget(b) diff --git a/src/calibre/gui2/throbber.py b/src/calibre/gui2/throbber.py index cc2de70ce2..9540d06d77 100644 --- a/src/calibre/gui2/throbber.py +++ b/src/calibre/gui2/throbber.py @@ -29,7 +29,7 @@ class ThrobbingButton(QToolButton): # toolbar self.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding) self._icon_size = -1 - QToolButton.setIcon(self, QIcon(I('donate.png'))) + QToolButton.setIcon(self, QIcon.ic('donate.png')) self.setText('\xa0') self.animation = QPropertyAnimation(self, b'icon_size', self) self.animation.setDuration(int(60/72.*1000)) @@ -81,7 +81,7 @@ if __name__ == '__main__': w = QWidget() w.setLayout(QHBoxLayout()) b = ThrobbingButton() - b.setIcon(QIcon(I('donate.png'))) + b.setIcon(QIcon.ic('donate.png')) w.layout().addWidget(b) w.show() b.set_normal_icon_size(64, 64) diff --git a/src/calibre/gui2/toc/location.py b/src/calibre/gui2/toc/location.py index 85d5e6f00d..379295f610 100644 --- a/src/calibre/gui2/toc/location.py +++ b/src/calibre/gui2/toc/location.py @@ -146,10 +146,10 @@ class ItemEdit(QWidget): s.setPlaceholderText(_('Search for text...')) s.returnPressed.connect(self.find_next) l.addWidget(s, 1, 0) - self.ns_button = b = QPushButton(QIcon(I('arrow-down.png')), _('Find &next'), self) + self.ns_button = b = QPushButton(QIcon.ic('arrow-down.png'), _('Find &next'), self) b.clicked.connect(self.find_next) l.addWidget(b, 1, 1) - self.ps_button = b = QPushButton(QIcon(I('arrow-up.png')), _('Find &previous'), self) + self.ps_button = b = QPushButton(QIcon.ic('arrow-up.png'), _('Find &previous'), self) l.addWidget(b, 1, 2) b.clicked.connect(self.find_previous) diff --git a/src/calibre/gui2/toc/main.py b/src/calibre/gui2/toc/main.py index 8d3b7ee7b9..34249b6319 100644 --- a/src/calibre/gui2/toc/main.py +++ b/src/calibre/gui2/toc/main.py @@ -262,11 +262,11 @@ class ItemView(QStackedWidget): # {{{ # Edit/remove item rs = l.rowCount() - ip.b1 = b = QPushButton(QIcon(I('edit_input.png')), + ip.b1 = b = QPushButton(QIcon.ic('edit_input.png'), _('Change the &location this entry points to'), self) b.clicked.connect(self.edit_item) l.addWidget(b, l.rowCount()+1, 0, 1, 2) - ip.b2 = b = QPushButton(QIcon(I('trash.png')), + ip.b2 = b = QPushButton(QIcon.ic('trash.png'), _('&Remove this entry'), self) l.addWidget(b, l.rowCount(), 0, 1, 2) b.clicked.connect(self.delete_item) @@ -277,17 +277,17 @@ class ItemView(QStackedWidget): # {{{ # Add new item rs = l.rowCount() - ip.b3 = b = QPushButton(QIcon(I('plus.png')), _('New entry &inside this entry')) + ip.b3 = b = QPushButton(QIcon.ic('plus.png'), _('New entry &inside this entry')) connect_lambda(b.clicked, self, lambda self: self.add_new('inside')) l.addWidget(b, l.rowCount()+1, 0, 1, 2) - ip.b4 = b = QPushButton(QIcon(I('plus.png')), _('New entry &above this entry')) + ip.b4 = b = QPushButton(QIcon.ic('plus.png'), _('New entry &above this entry')) connect_lambda(b.clicked, self, lambda self: self.add_new('before')) l.addWidget(b, l.rowCount(), 0, 1, 2) - ip.b5 = b = QPushButton(QIcon(I('plus.png')), _('New entry &below this entry')) + ip.b5 = b = QPushButton(QIcon.ic('plus.png'), _('New entry &below this entry')) connect_lambda(b.clicked, self, lambda self: self.add_new('after')) l.addWidget(b, l.rowCount(), 0, 1, 2) # Flatten entry - ip.b3 = b = QPushButton(QIcon(I('heuristics.png')), _('&Flatten this entry')) + ip.b3 = b = QPushButton(QIcon.ic('heuristics.png'), _('&Flatten this entry')) b.clicked.connect(self.flatten_item) b.setToolTip(_('All children of this entry are brought to the same ' 'level as this entry.')) @@ -300,7 +300,7 @@ class ItemView(QStackedWidget): # {{{ # Return to welcome rs = l.rowCount() - ip.b4 = b = QPushButton(QIcon(I('back.png')), _('&Return to welcome screen')) + ip.b4 = b = QPushButton(QIcon.ic('back.png'), _('&Return to welcome screen')) b.clicked.connect(self.go_to_root) b.setToolTip(_('Go back to the top level view')) l.addWidget(b, l.rowCount()+1, 0, 1, 2) @@ -686,21 +686,21 @@ class TreeWidget(QTreeWidget): # {{{ if item is not None: m = QMenu(self) - m.addAction(QIcon(I('edit_input.png')), _('Change the location this entry points to'), self.edit_item) - m.addAction(QIcon(I('modified.png')), _('Bulk rename all selected items'), self.bulk_rename) - m.addAction(QIcon(I('trash.png')), _('Remove all selected items'), self.del_items) + m.addAction(QIcon.ic('edit_input.png'), _('Change the location this entry points to'), self.edit_item) + m.addAction(QIcon.ic('modified.png'), _('Bulk rename all selected items'), self.bulk_rename) + m.addAction(QIcon.ic('trash.png'), _('Remove all selected items'), self.del_items) m.addSeparator() ci = str(item.data(0, Qt.ItemDataRole.DisplayRole) or '') p = item.parent() or self.invisibleRootItem() idx = p.indexOfChild(item) if idx > 0: - m.addAction(QIcon(I('arrow-up.png')), (_('Move "%s" up')%ci)+key(Qt.Key.Key_Up), self.move_up) + m.addAction(QIcon.ic('arrow-up.png'), (_('Move "%s" up')%ci)+key(Qt.Key.Key_Up), self.move_up) if idx + 1 < p.childCount(): - m.addAction(QIcon(I('arrow-down.png')), (_('Move "%s" down')%ci)+key(Qt.Key.Key_Down), self.move_down) + m.addAction(QIcon.ic('arrow-down.png'), (_('Move "%s" down')%ci)+key(Qt.Key.Key_Down), self.move_down) if item.parent() is not None: - m.addAction(QIcon(I('back.png')), (_('Unindent "%s"')%ci)+key(Qt.Key.Key_Left), self.move_left) + m.addAction(QIcon.ic('back.png'), (_('Unindent "%s"')%ci)+key(Qt.Key.Key_Left), self.move_left) if idx > 0: - m.addAction(QIcon(I('forward.png')), (_('Indent "%s"')%ci)+key(Qt.Key.Key_Right), self.move_right) + m.addAction(QIcon.ic('forward.png'), (_('Indent "%s"')%ci)+key(Qt.Key.Key_Right), self.move_right) m.addSeparator() case_menu = QMenu(_('Change case'), m) @@ -729,35 +729,35 @@ class TOCView(QWidget): # {{{ self.tocw.edit_item.connect(self.edit_item) l.addWidget(t, 0, 0, 7, 3) self.up_button = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-up.png'))) + b.setIcon(QIcon.ic('arrow-up.png')) b.setIconSize(QSize(ICON_SIZE, ICON_SIZE)) l.addWidget(b, 0, 3) b.setToolTip(_('Move current entry up [Ctrl+Up]')) b.clicked.connect(self.move_up) self.left_button = b = QToolButton(self) - b.setIcon(QIcon(I('back.png'))) + b.setIcon(QIcon.ic('back.png')) b.setIconSize(QSize(ICON_SIZE, ICON_SIZE)) l.addWidget(b, 2, 3) b.setToolTip(_('Unindent the current entry [Ctrl+Left]')) b.clicked.connect(self.tocw.move_left) self.del_button = b = QToolButton(self) - b.setIcon(QIcon(I('trash.png'))) + b.setIcon(QIcon.ic('trash.png')) b.setIconSize(QSize(ICON_SIZE, ICON_SIZE)) l.addWidget(b, 3, 3) b.setToolTip(_('Remove all selected entries')) b.clicked.connect(self.del_items) self.right_button = b = QToolButton(self) - b.setIcon(QIcon(I('forward.png'))) + b.setIcon(QIcon.ic('forward.png')) b.setIconSize(QSize(ICON_SIZE, ICON_SIZE)) l.addWidget(b, 4, 3) b.setToolTip(_('Indent the current entry [Ctrl+Right]')) b.clicked.connect(self.tocw.move_right) self.down_button = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-down.png'))) + b.setIcon(QIcon.ic('arrow-down.png')) b.setIconSize(QSize(ICON_SIZE, ICON_SIZE)) l.addWidget(b, 6, 3) b.setToolTip(_('Move current entry down [Ctrl+Down]')) @@ -888,9 +888,9 @@ class TOCView(QWidget): # {{{ self.toc = get_toc(self.ebook) self.toc_lang, self.toc_uid = self.toc.lang, self.toc.uid self.toc_title = self.toc.toc_title - self.blank = QIcon(I('blank.png')) - self.ok = QIcon(I('ok.png')) - self.err = QIcon(I('dot_red.png')) + self.blank = QIcon.ic('blank.png') + self.ok = QIcon.ic('ok.png') + self.err = QIcon.ic('dot_red.png') self.icon_map = {None:self.blank, True:self.ok, False:self.err} def process_item(toc_node, parent): @@ -1013,7 +1013,7 @@ class TOCEditor(QDialog): # {{{ t = title or os.path.basename(pathtobook) self.book_title = t self.setWindowTitle(_('Edit the ToC in %s')%t) - self.setWindowIcon(QIcon(I('highlight_only_on.png'))) + self.setWindowIcon(QIcon.ic('highlight_only_on.png')) l = self.l = QVBoxLayout() self.setLayout(l) @@ -1046,7 +1046,7 @@ class TOCEditor(QDialog): # {{{ bb.rejected.connect(self.reject) self.undo_button = b = bb.addButton(_('&Undo'), QDialogButtonBox.ButtonRole.ActionRole) b.setToolTip(_('Undo the last action, if any')) - b.setIcon(QIcon(I('edit-undo.png'))) + b.setIcon(QIcon.ic('edit-undo.png')) b.clicked.connect(self.toc_view.undo) self.explode_done.connect(self.read_toc, type=Qt.ConnectionType.QueuedConnection) diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index b5e33b31a7..d73208148b 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -897,7 +897,7 @@ class Boss(QObject): bb.accepted.connect(d.accept) bb.rejected.connect(d.reject) d.b = b = bb.addButton(_('See what &changed'), QDialogButtonBox.ButtonRole.AcceptRole) - b.setIcon(QIcon(I('diff.png'))), b.setAutoDefault(False) + b.setIcon(QIcon.ic('diff.png')), b.setAutoDefault(False) bb.button(QDialogButtonBox.StandardButton.Close).setDefault(True) if d.exec() == QDialog.DialogCode.Accepted: self.show_current_diff(allow_revert=allow_revert, to_container=to_container) @@ -1893,7 +1893,7 @@ class Boss(QObject): d.setWindowTitle(_('Unsaved changes')) d.i = QLabel('') d.i.setMaximumSize(QSize(64, 64)) - d.i.setPixmap(QIcon(I('dialog_warning.png')).pixmap(d.i.maximumSize())) + d.i.setPixmap(QIcon.ic('dialog_warning.png').pixmap(d.i.maximumSize())) d.l.addWidget(d.i, 0, 0) d.m = QLabel(_('There are unsaved changes, if you quit without saving, you will lose them.')) d.m.setWordWrap(True) @@ -1908,7 +1908,7 @@ class Boss(QObject): d.do_save = x d.accept() b = d.bb.addButton(_('&Save and Quit'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('save.png'))) + b.setIcon(QIcon.ic('save.png')) connect_lambda(b.clicked, d, lambda d: endit(d, True)) b = d.bb.addButton(_('&Quit without saving'), QDialogButtonBox.ButtonRole.ActionRole) connect_lambda(b.clicked, d, lambda d: endit(d, False)) diff --git a/src/calibre/gui2/tweak_book/char_select.py b/src/calibre/gui2/tweak_book/char_select.py index f78f43083e..9300805dfa 100644 --- a/src/calibre/gui2/tweak_book/char_select.py +++ b/src/calibre/gui2/tweak_book/char_select.py @@ -370,7 +370,7 @@ class CategoryModel(QAbstractItemModel): self.starts.sort() self.bold_font = f = QApplication.font() f.setBold(True) - self.fav_icon = QIcon(I('rating.png')) + self.fav_icon = QIcon.ic('rating.png') def columnCount(self, parent=ROOT): return 1 @@ -658,8 +658,8 @@ class CharView(QListView): pass else: m = QMenu(self) - m.addAction(QIcon(I('edit-copy.png')), _('Copy %s to clipboard') % codepoint_to_chr(char_code), partial(self.copy_to_clipboard, char_code)) - m.addAction(QIcon(I('rating.png')), + m.addAction(QIcon.ic('edit-copy.png'), _('Copy %s to clipboard') % codepoint_to_chr(char_code), partial(self.copy_to_clipboard, char_code)) + m.addAction(QIcon.ic('rating.png'), (_('Remove %s from favorites') if self.showing_favorites else _('Add %s to favorites')) % codepoint_to_chr(char_code), partial(self.remove_from_favorites, char_code)) if self.showing_favorites: @@ -694,7 +694,7 @@ class CharSelect(Dialog): def __init__(self, parent=None): self.initialized = False Dialog.__init__(self, _('Insert character'), 'charmap_dialog', parent) - self.setWindowIcon(QIcon(I('character-set.png'))) + self.setWindowIcon(QIcon.ic('character-set.png')) self.setFocusProxy(parent) def setup_ui(self): @@ -724,7 +724,7 @@ class CharSelect(Dialog): h.returnPressed.connect(self.do_search) b.clicked.connect(self.do_search) self.clear_button = cb = QToolButton(self) - cb.setIcon(QIcon(I('clear_left.png'))) + cb.setIcon(QIcon.ic('clear_left.png')) cb.setFocusPolicy(Qt.FocusPolicy.NoFocus) cb.setText(_('Clear search')) cb.clicked.connect(self.clear_search) diff --git a/src/calibre/gui2/tweak_book/check.py b/src/calibre/gui2/tweak_book/check.py index 3d6d5d9328..7682dca289 100644 --- a/src/calibre/gui2/tweak_book/check.py +++ b/src/calibre/gui2/tweak_book/check.py @@ -27,7 +27,7 @@ def icon_for_level(level): icon = 'dialog_information.png' else: icon = None - return QIcon(I(icon)) if icon else QIcon() + return QIcon.ic(icon) if icon else QIcon() def prefix_for_level(level): @@ -92,7 +92,7 @@ class Check(QSplitter): def context_menu(self, pos): m = QMenu(self) if self.items.count() > 0: - m.addAction(QIcon(I('edit-copy.png')), _('Copy list of errors to clipboard'), self.copy_to_clipboard) + m.addAction(QIcon.ic('edit-copy.png'), _('Copy list of errors to clipboard'), self.copy_to_clipboard) if list(m.actions()): m.exec(self.mapToGlobal(pos)) diff --git a/src/calibre/gui2/tweak_book/check_links.py b/src/calibre/gui2/tweak_book/check_links.py index 120d887365..09e08d4bc3 100644 --- a/src/calibre/gui2/tweak_book/check_links.py +++ b/src/calibre/gui2/tweak_book/check_links.py @@ -84,7 +84,7 @@ class CheckExternalLinks(Dialog): l.addLayout(h) self.bb.setStandardButtons(QDialogButtonBox.StandardButton.Close) self.rb = b = self.bb.addButton(_('&Refresh'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('view-refresh.png'))) + b.setIcon(QIcon.ic('view-refresh.png')) b.clicked.connect(self.refresh) def anchors_changed(self): diff --git a/src/calibre/gui2/tweak_book/diff/main.py b/src/calibre/gui2/tweak_book/diff/main.py index 88a93fa89c..7257379d95 100644 --- a/src/calibre/gui2/tweak_book/diff/main.py +++ b/src/calibre/gui2/tweak_book/diff/main.py @@ -225,7 +225,7 @@ class Diff(Dialog): return QSize(int(0.9 * geom.width()), int(0.8 * geom.height())) def setup_ui(self): - self.setWindowIcon(QIcon(I('diff.png'))) + self.setWindowIcon(QIcon.ic('diff.png')) self.stacks = st = QStackedLayout(self) self.busy = BusyWidget(self) self.w = QWidget(self) @@ -240,14 +240,14 @@ class Diff(Dialog): r = l.rowCount() self.bp = b = QToolButton(self) - b.setIcon(QIcon(I('back.png'))) + b.setIcon(QIcon.ic('back.png')) connect_lambda(b.clicked, self, lambda self: self.view.next_change(-1)) b.setToolTip(_('Go to previous change') + ' [p]') b.setText(_('&Previous change')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) l.addWidget(b, r, 0) self.bn = b = QToolButton(self) - b.setIcon(QIcon(I('forward.png'))) + b.setIcon(QIcon.ic('forward.png')) connect_lambda(b.clicked, self, lambda self: self.view.next_change(1)) b.setToolTip(_('Go to next change') + ' [n]') b.setText(_('&Next change')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) @@ -259,13 +259,13 @@ class Diff(Dialog): s.setPlaceholderText(_('Search for text')) connect_lambda(s.returnPressed, self, lambda self: self.do_search(False)) self.sbn = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-down.png'))) + b.setIcon(QIcon.ic('arrow-down.png')) connect_lambda(b.clicked, self, lambda self: self.do_search(False)) b.setToolTip(_('Find next match')) b.setText(_('Next &match')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) l.addWidget(b, r, 3) self.sbp = b = QToolButton(self) - b.setIcon(QIcon(I('arrow-up.png'))) + b.setIcon(QIcon.ic('arrow-up.png')) connect_lambda(b.clicked, self, lambda self: self.do_search(True)) b.setToolTip(_('Find previous match')) b.setText(_('P&revious match')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) @@ -278,7 +278,7 @@ class Diff(Dialog): l.addWidget(b, r, 6) b.setChecked(True) self.pb = b = QToolButton(self) - b.setIcon(QIcon(I('config.png'))) + b.setIcon(QIcon.ic('config.png')) b.setText(_('&Options')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) b.setToolTip(_('Change how the differences are displayed')) b.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) @@ -306,7 +306,7 @@ class Diff(Dialog): self.bb.setStandardButtons(QDialogButtonBox.StandardButton.Close) if self.revert_button_msg is not None: self.rvb = b = self.bb.addButton(self.revert_button_msg, QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('edit-undo.png'))), b.setAutoDefault(False) + b.setIcon(QIcon.ic('edit-undo.png')), b.setAutoDefault(False) b.clicked.connect(self.revert_requested) b.clicked.connect(self.reject) self.bb.button(QDialogButtonBox.StandardButton.Close).setDefault(True) diff --git a/src/calibre/gui2/tweak_book/diff/view.py b/src/calibre/gui2/tweak_book/diff/view.py index 61b46921c0..1cb0441d79 100644 --- a/src/calibre/gui2/tweak_book/diff/view.py +++ b/src/calibre/gui2/tweak_book/diff/view.py @@ -169,16 +169,16 @@ class TextBrowser(PlainTextEdit): # {{{ a = m.addAction i = str(self.textCursor().selectedText()).rstrip('\0') if i: - a(QIcon(I('edit-copy.png')), _('Copy to clipboard'), self.copy).setShortcut(QKeySequence.StandardKey.Copy) + a(QIcon.ic('edit-copy.png'), _('Copy to clipboard'), self.copy).setShortcut(QKeySequence.StandardKey.Copy) if len(self.changes) > 0: - a(QIcon(I('arrow-up.png')), _('Previous change'), partial(self.next_change.emit, -1)) - a(QIcon(I('arrow-down.png')), _('Next change'), partial(self.next_change.emit, 1)) + a(QIcon.ic('arrow-up.png'), _('Previous change'), partial(self.next_change.emit, -1)) + a(QIcon.ic('arrow-down.png'), _('Next change'), partial(self.next_change.emit, 1)) if self.show_open_in_editor: b = self.cursorForPosition(pos).block() if b.isValid(): - a(QIcon(I('tweak.png')), _('Open file in the editor'), partial(self.generate_sync_request, b.blockNumber())) + a(QIcon.ic('tweak.png'), _('Open file in the editor'), partial(self.generate_sync_request, b.blockNumber())) if len(m.actions()) > 0: m.exec(self.mapToGlobal(pos)) diff --git a/src/calibre/gui2/tweak_book/download.py b/src/calibre/gui2/tweak_book/download.py index 75bfc42448..46de1d060f 100644 --- a/src/calibre/gui2/tweak_book/download.py +++ b/src/calibre/gui2/tweak_book/download.py @@ -112,7 +112,7 @@ class DownloadResources(Dialog): self.progress.connect(self.download_status.progress, type=Qt.ConnectionType.QueuedConnection) def setup_ui(self): - self.setWindowIcon(QIcon(I('download-metadata.png'))) + self.setWindowIcon(QIcon.ic('download-metadata.png')) self.choose_resources = cr = ChooseResources(self) self.download_status = ds = DownloadStatus(self) self.success = s = QLabel('') @@ -226,7 +226,7 @@ class DownloadResources(Dialog): self.bb.setStandardButtons(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Close) b = self.bb.button(QDialogButtonBox.StandardButton.Ok) b.setText(_('See what &changed')) - b.setIcon(QIcon(I('diff.png'))) + b.setIcon(QIcon.ic('diff.png')) connect_lambda(b.clicked, self, lambda self: setattr(self, 'show_diff', True)) self.bb.setVisible(True) diff --git a/src/calibre/gui2/tweak_book/editor/canvas.py b/src/calibre/gui2/tweak_book/editor/canvas.py index a4ba8961bd..50d1e97f81 100644 --- a/src/calibre/gui2/tweak_book/editor/canvas.py +++ b/src/calibre/gui2/tweak_book/editor/canvas.py @@ -289,9 +289,9 @@ class Canvas(QWidget): self.target = QRectF(0, 0, 0, 0) self.undo_action = a = self.undo_stack.createUndoAction(self, _('Undo') + ' ') - a.setIcon(QIcon(I('edit-undo.png'))) + a.setIcon(QIcon.ic('edit-undo.png')) self.redo_action = a = self.undo_stack.createRedoAction(self, _('Redo') + ' ') - a.setIcon(QIcon(I('edit-redo.png'))) + a.setIcon(QIcon.ic('edit-redo.png')) def load_image(self, data): self.is_valid = False diff --git a/src/calibre/gui2/tweak_book/editor/image.py b/src/calibre/gui2/tweak_book/editor/image.py index b93608a86c..40b5cb4e18 100644 --- a/src/calibre/gui2/tweak_book/editor/image.py +++ b/src/calibre/gui2/tweak_book/editor/image.py @@ -261,11 +261,11 @@ class Editor(QMainWindow): self.update_clipboard_actions() b.addSeparator() - self.action_trim = ac = b.addAction(QIcon(I('trim.png')), _('Trim image'), self.canvas.trim_image) - self.action_rotate = ac = b.addAction(QIcon(I('rotate-right.png')), _('Rotate image'), self.canvas.rotate_image) - self.action_resize = ac = b.addAction(QIcon(I('resize.png')), _('Resize image'), self.resize_image) + self.action_trim = ac = b.addAction(QIcon.ic('trim.png'), _('Trim image'), self.canvas.trim_image) + self.action_rotate = ac = b.addAction(QIcon.ic('rotate-right.png'), _('Rotate image'), self.canvas.rotate_image) + self.action_resize = ac = b.addAction(QIcon.ic('resize.png'), _('Resize image'), self.resize_image) b.addSeparator() - self.action_filters = ac = b.addAction(QIcon(I('filter.png')), _('Image filters')) + self.action_filters = ac = b.addAction(QIcon.ic('filter.png'), _('Image filters')) b.widgetForAction(ac).setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) self.filters_menu = m = QMenu(self) ac.setMenu(m) diff --git a/src/calibre/gui2/tweak_book/editor/insert_resource.py b/src/calibre/gui2/tweak_book/editor/insert_resource.py index 3a82b7e451..d7ec9bde5c 100644 --- a/src/calibre/gui2/tweak_book/editor/insert_resource.py +++ b/src/calibre/gui2/tweak_book/editor/insert_resource.py @@ -236,7 +236,7 @@ class InsertImage(Dialog): f.setPlaceholderText(_('Search for image by file name')) l.addWidget(f, 2, 0) self.cb = b = QToolButton(self) - b.setIcon(QIcon(I('clear_left.png'))) + b.setIcon(QIcon.ic('clear_left.png')) b.clicked.connect(f.clear) l.addWidget(b, 2, 1) f.textChanged.connect(self.filter_changed) @@ -246,17 +246,17 @@ class InsertImage(Dialog): self.bb.addButton(QDialogButtonBox.StandardButton.Close) b = self.refresh_button = self.bb.addButton(_('&Refresh'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.refresh) - b.setIcon(QIcon(I('view-refresh.png'))) + b.setIcon(QIcon.ic('view-refresh.png')) b.setToolTip(_('Refresh the displayed images')) self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose, False) else: b = self.import_button = self.bb.addButton(_('&Import image'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.import_image) - b.setIcon(QIcon(I('view-image.png'))) + b.setIcon(QIcon.ic('view-image.png')) b.setToolTip(_('Import an image from elsewhere in your computer')) b = self.paste_button = self.bb.addButton(_('&Paste image'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.paste_image) - b.setIcon(QIcon(I('edit-paste.png'))) + b.setIcon(QIcon.ic('edit-paste.png')) b.setToolTip(_('Paste an image from the clipboard')) self.fullpage = f = QCheckBox(_('Full page image'), self) f.setToolTip(_('Insert the image so that it takes up an entire page when viewed in a reader')) @@ -272,10 +272,10 @@ class InsertImage(Dialog): h.addWidget(f), h.addStretch(10), h.addWidget(a) b = self.bb.addButton(_('&Zoom in'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.zoom_in) - b.setIcon(QIcon(I('plus.png'))) + b.setIcon(QIcon.ic('plus.png')) b = self.bb.addButton(_('Zoom &out'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.zoom_out) - b.setIcon(QIcon(I('minus.png'))) + b.setIcon(QIcon.ic('minus.png')) l.addWidget(self.bb, 4, 0, 1, 2) def full_page_image_toggled(self): @@ -394,7 +394,7 @@ class ChooseFolder(Dialog): # {{{ self.root = QTreeWidgetItem(f, ('/',)) def process(node, parent): - parent.setIcon(0, QIcon(I('mimetypes/dir.png'))) + parent.setIcon(0, QIcon.ic('mimetypes/dir.png')) for child in sorted(node, key=numeric_sort_key): c = QTreeWidgetItem(parent, (child,)) process(node[child], c) @@ -409,14 +409,14 @@ class ChooseFolder(Dialog): # {{{ if item is None: return m = QMenu(self) - m.addAction(QIcon(I('mimetypes/dir.png')), _('Create new folder'), partial(self.create_folder, item)) + m.addAction(QIcon.ic('mimetypes/dir.png'), _('Create new folder'), partial(self.create_folder, item)) m.popup(self.folders.mapToGlobal(point)) def create_folder(self, item): text, ok = QInputDialog.getText(self, _('Folder name'), _('Enter a name for the new folder')) if ok and str(text): c = QTreeWidgetItem(item, (str(text),)) - c.setIcon(0, QIcon(I('mimetypes/dir.png'))) + c.setIcon(0, QIcon.ic('mimetypes/dir.png')) for item in self.folders.selectedItems(): item.setSelected(False) c.setSelected(True) diff --git a/src/calibre/gui2/tweak_book/editor/snippets.py b/src/calibre/gui2/tweak_book/editor/snippets.py index 4e5589894f..2f1a474975 100644 --- a/src/calibre/gui2/tweak_book/editor/snippets.py +++ b/src/calibre/gui2/tweak_book/editor/snippets.py @@ -567,10 +567,10 @@ class UserSnippets(Dialog): def __init__(self, parent=None): Dialog.__init__(self, _('Create/edit snippets'), 'snippet-editor', parent=parent) - self.setWindowIcon(QIcon(I('snippets.png'))) + self.setWindowIcon(QIcon.ic('snippets.png')) def setup_ui(self): - self.setWindowIcon(QIcon(I('modified.png'))) + self.setWindowIcon(QIcon.ic('modified.png')) self.l = l = QVBoxLayout(self) self.stack = s = QStackedLayout() l.addLayout(s), l.addWidget(self.bb) @@ -596,22 +596,22 @@ class UserSnippets(Dialog): c.l2 = l = QVBoxLayout() h.addLayout(l) self.add_button = b = QToolButton(self) - b.setIcon(QIcon(I('plus.png'))), b.setText(_('&Add snippet')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextUnderIcon) + b.setIcon(QIcon.ic('plus.png')), b.setText(_('&Add snippet')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextUnderIcon) b.clicked.connect(self.add_snippet) l.addWidget(b) self.edit_button = b = QToolButton(self) - b.setIcon(QIcon(I('modified.png'))), b.setText(_('&Edit snippet')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextUnderIcon) + b.setIcon(QIcon.ic('modified.png')), b.setText(_('&Edit snippet')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextUnderIcon) b.clicked.connect(self.edit_snippet) l.addWidget(b) self.add_button = b = QToolButton(self) - b.setIcon(QIcon(I('minus.png'))), b.setText(_('&Remove snippet')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextUnderIcon) + b.setIcon(QIcon.ic('minus.png')), b.setText(_('&Remove snippet')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextUnderIcon) b.clicked.connect(self.remove_snippet) l.addWidget(b) self.add_button = b = QToolButton(self) - b.setIcon(QIcon(I('config.png'))), b.setText(_('Change &built-in')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextUnderIcon) + b.setIcon(QIcon.ic('config.png')), b.setText(_('Change &built-in')), b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextUnderIcon) b.clicked.connect(self.change_builtin) l.addWidget(b) diff --git a/src/calibre/gui2/tweak_book/editor/themes.py b/src/calibre/gui2/tweak_book/editor/themes.py index 9f0e997fd9..9a4a445f98 100644 --- a/src/calibre/gui2/tweak_book/editor/themes.py +++ b/src/calibre/gui2/tweak_book/editor/themes.py @@ -443,7 +443,7 @@ class Property(QWidget): b = ColorButton(data, key, text, self) b.changed.connect(self.changed), l.addWidget(b) bc = QToolButton(self) - bc.setIcon(QIcon(I('clear_left.png'))) + bc.setIcon(QIcon.ic('clear_left.png')) bc.setToolTip(_('Remove color')) bc.clicked.connect(b.clear) h = QHBoxLayout() @@ -571,11 +571,11 @@ class ThemeEditor(Dialog): t.currentIndexChanged.connect(self.show_theme) h.addWidget(t) - self.add_button = b = QPushButton(QIcon(I('plus.png')), _('Add &new theme'), self) + self.add_button = b = QPushButton(QIcon.ic('plus.png'), _('Add &new theme'), self) b.clicked.connect(self.create_new_theme) h.addWidget(b) - self.remove_button = b = QPushButton(QIcon(I('minus.png')), _('&Remove theme'), self) + self.remove_button = b = QPushButton(QIcon.ic('minus.png'), _('&Remove theme'), self) b.clicked.connect(self.remove_theme) h.addWidget(b) h.addStretch(1) diff --git a/src/calibre/gui2/tweak_book/editor/widget.py b/src/calibre/gui2/tweak_book/editor/widget.py index e3b003e8e9..420b60e3d2 100644 --- a/src/calibre/gui2/tweak_book/editor/widget.py +++ b/src/calibre/gui2/tweak_book/editor/widget.py @@ -127,7 +127,7 @@ def register_text_editor_actions(_reg, palette): for s in ('xml', 'html', 'css'): editor_toolbar_actions[s]['pretty-current'] = actions['pretty-current'] editor_toolbar_actions['html']['change-paragraph'] = actions['change-paragraph'] = QAction( - QIcon(I('format-text-heading.png')), _('Change paragraph to heading'), ac.parent()) + QIcon.ic('format-text-heading.png'), _('Change paragraph to heading'), ac.parent()) class Editor(QMainWindow): diff --git a/src/calibre/gui2/tweak_book/file_list.py b/src/calibre/gui2/tweak_book/file_list.py index 3a2ebb5baa..6ec866c818 100644 --- a/src/calibre/gui2/tweak_book/file_list.py +++ b/src/calibre/gui2/tweak_book/file_list.py @@ -274,7 +274,7 @@ class FileList(QTreeWidget, OpenWithHandler): self.rendered_emblem_cache = {} self.font_name_cache = {} self.top_level_pixmap_cache = { - name : QIcon(I(icon)).pixmap(TOP_ICON_SIZE, TOP_ICON_SIZE) + name : QIcon.ic(icon).pixmap(TOP_ICON_SIZE, TOP_ICON_SIZE) for name, icon in iteritems({ 'text':'keyboard-prefs.png', 'styles':'lookfeel.png', @@ -501,7 +501,7 @@ class FileList(QTreeWidget, OpenWithHandler): for emblem in emblems: pm = self.emblem_cache.get(emblem, None) if pm is None: - pm = self.emblem_cache[emblem] = QIcon(I(emblem)).pixmap(self.iconSize()) + pm = self.emblem_cache[emblem] = QIcon.ic(emblem).pixmap(self.iconSize()) pixmaps.append(pm) num = len(pixmaps) w, h = pixmaps[0].width(), pixmaps[0].height() @@ -657,31 +657,31 @@ class FileList(QTreeWidget, OpenWithHandler): mt = str(ci.data(0, MIME_ROLE) or '') cat = str(ci.data(0, CATEGORY_ROLE) or '') n = elided_text(cn.rpartition('/')[-1]) - m.addAction(QIcon(I('save.png')), _('Export %s') % n, partial(self.export, cn)) + m.addAction(QIcon.ic('save.png'), _('Export %s') % n, partial(self.export, cn)) if cn not in container.names_that_must_not_be_changed and cn not in container.names_that_must_not_be_removed and mt not in OEB_FONTS: m.addAction(_('Replace %s with file...') % n, partial(self.replace, cn)) if num > 1: - m.addAction(QIcon(I('save.png')), _('Export all %d selected files') % num, self.export_selected) + m.addAction(QIcon.ic('save.png'), _('Export all %d selected files') % num, self.export_selected) if cn not in container.names_that_must_not_be_changed: self.add_open_with_actions(m, cn) m.addSeparator() - m.addAction(QIcon(I('modified.png')), _('&Rename %s') % n, self.edit_current_item) + m.addAction(QIcon.ic('modified.png'), _('&Rename %s') % n, self.edit_current_item) if is_raster_image(mt): - m.addAction(QIcon(I('default_cover.png')), _('Mark %s as cover image') % n, partial(self.mark_as_cover, cn)) + m.addAction(QIcon.ic('default_cover.png'), _('Mark %s as cover image') % n, partial(self.mark_as_cover, cn)) elif current_container().SUPPORTS_TITLEPAGES and mt in OEB_DOCS and cat == 'text': - m.addAction(QIcon(I('default_cover.png')), _('Mark %s as cover page') % n, partial(self.mark_as_titlepage, cn)) + m.addAction(QIcon.ic('default_cover.png'), _('Mark %s as cover page') % n, partial(self.mark_as_titlepage, cn)) m.addSeparator() if num > 0: m.addSeparator() if num > 1: - m.addAction(QIcon(I('modified.png')), _('&Bulk rename the selected files'), self.request_bulk_rename) - m.addAction(QIcon(I('modified.png')), _('Change the file extension for the selected files'), self.request_change_ext) - m.addAction(QIcon(I('trash.png')), ngettext( + m.addAction(QIcon.ic('modified.png'), _('&Bulk rename the selected files'), self.request_bulk_rename) + m.addAction(QIcon.ic('modified.png'), _('Change the file extension for the selected files'), self.request_change_ext) + m.addAction(QIcon.ic('trash.png'), ngettext( '&Delete the selected file', '&Delete the {} selected files', num).format(num), self.request_delete) - m.addAction(QIcon(I('edit-copy.png')), ngettext( + m.addAction(QIcon.ic('edit-copy.png'), ngettext( '&Copy the selected file to another editor instance', '&Copy the {} selected files to another editor instance', num).format(num), self.copy_selected_files) m.addSeparator() @@ -702,12 +702,12 @@ class FileList(QTreeWidget, OpenWithHandler): items.sort(key=self.index_of_name) if selected_map['text']: - m.addAction(QIcon(I('format-text-color.png')), _('Link &stylesheets...'), partial(self.link_stylesheets, selected_map['text'])) + m.addAction(QIcon.ic('format-text-color.png'), _('Link &stylesheets...'), partial(self.link_stylesheets, selected_map['text'])) if len(selected_map['text']) > 1: - m.addAction(QIcon(I('merge.png')), _('&Merge selected text files'), partial(self.start_merge, 'text', selected_map['text'])) + m.addAction(QIcon.ic('merge.png'), _('&Merge selected text files'), partial(self.start_merge, 'text', selected_map['text'])) if len(selected_map['styles']) > 1: - m.addAction(QIcon(I('merge.png')), _('&Merge selected style files'), partial(self.start_merge, 'styles', selected_map['styles'])) + m.addAction(QIcon.ic('merge.png'), _('&Merge selected style files'), partial(self.start_merge, 'styles', selected_map['styles'])) return m def choose_open_with(self, file_name, fmt): @@ -1049,7 +1049,7 @@ class NewFileDialog(QDialog): # {{{ bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) self.imp_button = b = bb.addButton(_('Import resource file (image/font/etc.)'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('view-image.png'))) + b.setIcon(QIcon.ic('view-image.png')) b.setToolTip(_('Import a file from your computer as a new' ' file into the book.')) b.clicked.connect(self.import_file) diff --git a/src/calibre/gui2/tweak_book/function_replace.py b/src/calibre/gui2/tweak_book/function_replace.py index 652b4681c9..d6c6cf2778 100644 --- a/src/calibre/gui2/tweak_book/function_replace.py +++ b/src/calibre/gui2/tweak_book/function_replace.py @@ -118,7 +118,7 @@ class DebugOutput(Dialog): self.bb.setStandardButtons(QDialogButtonBox.StandardButton.Close) self.cb = b = self.bb.addButton(_('&Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.copy_to_clipboard) - b.setIcon(QIcon(I('edit-copy.png'))) + b.setIcon(QIcon.ic('edit-copy.png')) def show_log(self, name, text): if isinstance(text, bytes): diff --git a/src/calibre/gui2/tweak_book/live_css.py b/src/calibre/gui2/tweak_book/live_css.py index 81da8c6e44..576ba52ec3 100644 --- a/src/calibre/gui2/tweak_book/live_css.py +++ b/src/calibre/gui2/tweak_book/live_css.py @@ -352,12 +352,12 @@ class Box(QWidget): block = '\n'.join(lines).replace('\xa0', ' ') heading = lines[0] m = QMenu(self) - m.addAction(QIcon(I('edit-copy.png')), _('Copy') + ' ' + heading.replace('\xa0', ' '), lambda : QApplication.instance().clipboard().setText(block)) + m.addAction(QIcon.ic('edit-copy.png'), _('Copy') + ' ' + heading.replace('\xa0', ' '), lambda : QApplication.instance().clipboard().setText(block)) all_lines = [] for w in self.widgets: all_lines += w.lines_for_copy all_text = '\n'.join(all_lines).replace('\xa0', ' ') - m.addAction(QIcon(I('edit-copy.png')), _('Copy everything'), lambda : QApplication.instance().clipboard().setText(all_text)) + m.addAction(QIcon.ic('edit-copy.png'), _('Copy everything'), lambda : QApplication.instance().clipboard().setText(all_text)) m.exec(ev.globalPos()) diff --git a/src/calibre/gui2/tweak_book/main.py b/src/calibre/gui2/tweak_book/main.py index f0cbc02e60..a4daf6dcfc 100644 --- a/src/calibre/gui2/tweak_book/main.py +++ b/src/calibre/gui2/tweak_book/main.py @@ -73,7 +73,7 @@ def _run(args, notify=None): app = Application(args, override_program_name=override, color_prefs=tprefs, windows_app_uid=EDITOR_APP_UID) app.file_event_hook = EventAccumulator() app.load_builtin_fonts() - app.setWindowIcon(QIcon(I('tweak.png'))) + app.setWindowIcon(QIcon.ic('tweak.png')) main = Main(opts, notify=notify) main.set_exception_handler() main.show() diff --git a/src/calibre/gui2/tweak_book/manage_fonts.py b/src/calibre/gui2/tweak_book/manage_fonts.py index 7138998371..1dd279fbbb 100644 --- a/src/calibre/gui2/tweak_book/manage_fonts.py +++ b/src/calibre/gui2/tweak_book/manage_fonts.py @@ -239,7 +239,7 @@ class ManageFonts(Dialog): self.h = h = QHBoxLayout() h.setContentsMargins(0, 0, 0, 0) self.install_fonts_button = b = QPushButton(_('&Install fonts'), self) - h.addWidget(b), b.setIcon(QIcon(I('plus.png'))) + h.addWidget(b), b.setIcon(QIcon.ic('plus.png')) b.setToolTip(textwrap.fill(_('Install fonts from .ttf/.otf files to make them available for embedding'))) b.clicked.connect(self.install_fonts) l.addWidget(s), l.addLayout(h), h.addStretch(10), h.addWidget(self.bb) @@ -261,24 +261,24 @@ class ManageFonts(Dialog): s.addWidget(fv), s.addWidget(c) self.cb = b = QPushButton(_('&Change selected fonts')) - b.setIcon(QIcon(I('wizard.png'))) + b.setIcon(QIcon.ic('wizard.png')) b.clicked.connect(self.change_fonts) l.addWidget(b) self.rb = b = QPushButton(_('&Remove selected fonts')) b.clicked.connect(self.remove_fonts) - b.setIcon(QIcon(I('trash.png'))) + b.setIcon(QIcon.ic('trash.png')) l.addWidget(b) self.eb = b = QPushButton(_('&Embed all fonts')) - b.setIcon(QIcon(I('embed-fonts.png'))) + b.setIcon(QIcon.ic('embed-fonts.png')) b.clicked.connect(self.embed_fonts) l.addWidget(b) self.sb = b = QPushButton(_('&Subset all fonts')) - b.setIcon(QIcon(I('subset-fonts.png'))) + b.setIcon(QIcon.ic('subset-fonts.png')) b.clicked.connect(self.subset_fonts) l.addWidget(b) self.refresh_button = b = self.bb.addButton(_('&Refresh'), QDialogButtonBox.ButtonRole.ActionRole) b.setToolTip(_('Rescan the book for fonts in case you have made changes')) - b.setIcon(QIcon(I('view-refresh.png'))) + b.setIcon(QIcon.ic('view-refresh.png')) b.clicked.connect(self.refresh) self.la = la = QLabel( diff --git a/src/calibre/gui2/tweak_book/polish.py b/src/calibre/gui2/tweak_book/polish.py index e0f7a08e79..80b23ea99e 100644 --- a/src/calibre/gui2/tweak_book/polish.py +++ b/src/calibre/gui2/tweak_book/polish.py @@ -121,10 +121,10 @@ def show_report(changed, title, report, parent, show_current_diff): d.show_changes = False if changed: b = d.b = d.bb.addButton(_('See what &changed'), QDialogButtonBox.ButtonRole.AcceptRole) - b.setIcon(QIcon(I('diff.png'))), b.setAutoDefault(False) + b.setIcon(QIcon.ic('diff.png')), b.setAutoDefault(False) connect_lambda(b.clicked, d, lambda d: setattr(d, 'show_changes', True)) b = d.bb.addButton(_('&Copy to clipboard'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('edit-copy.png'))), b.setAutoDefault(False) + b.setIcon(QIcon.ic('edit-copy.png')), b.setAutoDefault(False) def copy_report(): text = re.sub(r'', '\n', report) @@ -183,7 +183,7 @@ class CompressImages(Dialog): def setup_ui(self): from calibre.ebooks.oeb.polish.images import get_compressible_images - self.setWindowIcon(QIcon(I('compress-image.png'))) + self.setWindowIcon(QIcon.ic('compress-image.png')) self.h = h = QHBoxLayout(self) self.images = i = QListWidget(self) h.addWidget(i) @@ -268,7 +268,7 @@ class CompressImagesProgress(Dialog): self.cidone.emit() def setup_ui(self): - self.setWindowIcon(QIcon(I('compress-image.png'))) + self.setWindowIcon(QIcon.ic('compress-image.png')) self.setCursor(Qt.CursorShape.BusyCursor) self.setMinimumWidth(350) self.l = l = QVBoxLayout(self) diff --git a/src/calibre/gui2/tweak_book/preferences.py b/src/calibre/gui2/tweak_book/preferences.py index 1f91248ddb..dc4c022117 100644 --- a/src/calibre/gui2/tweak_book/preferences.py +++ b/src/calibre/gui2/tweak_book/preferences.py @@ -488,10 +488,10 @@ class ToolbarSettings(QWidget): self.current.itemDoubleClicked.connect(self.remove_single_action) self.ub = b = QToolButton(self) connect_lambda(b.clicked, self, lambda self: self.move(up=True)) - b.setToolTip(_('Move selected action up')), b.setIcon(QIcon(I('arrow-up.png'))) + b.setToolTip(_('Move selected action up')), b.setIcon(QIcon.ic('arrow-up.png')) self.db = b = QToolButton(self) connect_lambda(b.clicked, self, lambda self: self.move(up=False)) - b.setToolTip(_('Move selected action down')), b.setIcon(QIcon(I('arrow-down.png'))) + b.setToolTip(_('Move selected action down')), b.setIcon(QIcon.ic('arrow-down.png')) self.gl1 = gl1 = QVBoxLayout() gl1.addWidget(self.available), gb1.setLayout(gl1) self.gl2 = gl2 = QGridLayout() @@ -499,10 +499,10 @@ class ToolbarSettings(QWidget): gl2.addWidget(self.ub, 0, 1), gl2.addWidget(self.db, 2, 1) gb2.setLayout(gl2) self.lb = b = QToolButton(self) - b.setToolTip(_('Add selected actions to the toolbar')), b.setIcon(QIcon(I('forward.png'))) + b.setToolTip(_('Add selected actions to the toolbar')), b.setIcon(QIcon.ic('forward.png')) l.addWidget(b, 1, 1), b.clicked.connect(self.add_action) self.rb = b = QToolButton(self) - b.setToolTip(_('Remove selected actions from the toolbar')), b.setIcon(QIcon(I('back.png'))) + b.setToolTip(_('Remove selected actions from the toolbar')), b.setIcon(QIcon.ic('back.png')) l.addWidget(b, 3, 1), b.clicked.connect(self.remove_action) self.si = QSpacerItem(20, 10, hPolicy=QSizePolicy.Policy.Preferred, vPolicy=QSizePolicy.Policy.Expanding) l.setRowStretch(0, 10), l.setRowStretch(2, 10), l.setRowStretch(4, 10) @@ -549,7 +549,7 @@ class ToolbarSettings(QWidget): all_items = {x:actions[x] for x in tprefs.defaults[name] if x} else: all_items = editor_toolbar_actions[name.split('_')[1]] - blank = QIcon(I('blank.png')) + blank = QIcon.ic('blank.png') def to_item(key, ac, parent): ic = ac.icon() @@ -564,7 +564,7 @@ class ToolbarSettings(QWidget): if key not in applied: to_item(key, ac, self.available) if name == 'global_book_toolbar' and 'donate' not in applied: - QListWidgetItem(QIcon(I('donate.png')), _('Donate'), self.available).setData(Qt.ItemDataRole.UserRole, 'donate') + QListWidgetItem(QIcon.ic('donate.png'), _('Donate'), self.available).setData(Qt.ItemDataRole.UserRole, 'donate') QListWidgetItem(blank, '--- %s ---' % _('Separator'), self.available) for key in items: @@ -572,7 +572,7 @@ class ToolbarSettings(QWidget): QListWidgetItem(blank, '--- %s ---' % _('Separator'), self.current) else: if key == 'donate': - QListWidgetItem(QIcon(I('donate.png')), _('Donate'), self.current).setData(Qt.ItemDataRole.UserRole, 'donate') + QListWidgetItem(QIcon.ic('donate.png'), _('Donate'), self.current).setData(Qt.ItemDataRole.UserRole, 'donate') else: try: ac = all_items[key] @@ -748,7 +748,7 @@ class Preferences(QDialog): self.l = l = QGridLayout(self) self.setLayout(l) self.setWindowTitle(_('Preferences for Edit book')) - self.setWindowIcon(QIcon(I('config.png'))) + self.setWindowIcon(QIcon.ic('config.png')) self.stacks = QStackedWidget(self) l.addWidget(self.stacks, 0, 1, 1, 1) @@ -801,7 +801,7 @@ class Preferences(QDialog): (_('Toolbars'), 'wizard.png', 'toolbars'), (_('Integration with calibre'), 'lt.png', 'integration'), ]: - i = QListWidgetItem(QIcon(I(icon)), name, cl) + i = QListWidgetItem(QIcon.ic(icon), name, cl) i.setToolTip(name) cl.addItem(i) self.stacks.addWidget(getattr(self, panel + '_panel')) diff --git a/src/calibre/gui2/tweak_book/preview.py b/src/calibre/gui2/tweak_book/preview.py index 2123e020c1..10e36b6229 100644 --- a/src/calibre/gui2/tweak_book/preview.py +++ b/src/calibre/gui2/tweak_book/preview.py @@ -468,7 +468,7 @@ class WebView(RestartingWebEngineView, OpenWithHandler): if ca.isEnabled(): menu.addAction(ca) menu.addAction(actions['reload-preview']) - menu.addAction(QIcon(I('debug.png')), _('Inspect element'), self.inspect) + menu.addAction(QIcon.ic('debug.png'), _('Inspect element'), self.inspect) if url.partition(':')[0].lower() in {'http', 'https'}: menu.addAction(_('Open link'), partial(safe_open_url, data.linkUrl())) if QWebEngineContextMenuRequest.MediaType.MediaTypeImage.value <= data.mediaType().value <= QWebEngineContextMenuRequest.MediaType.MediaTypeFile.value: diff --git a/src/calibre/gui2/tweak_book/reports.py b/src/calibre/gui2/tweak_book/reports.py index f939ae6937..52c6166132 100644 --- a/src/calibre/gui2/tweak_book/reports.py +++ b/src/calibre/gui2/tweak_book/reports.py @@ -1393,7 +1393,7 @@ class Reports(Dialog): Dialog.__init__(self, _('Reports'), 'reports-dialog', parent=parent) self.data_gathered.connect(self.display_data, type=Qt.ConnectionType.QueuedConnection) self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose, False) - self.setWindowIcon(QIcon(I('reports.png'))) + self.setWindowIcon(QIcon.ic('reports.png')) def setup_ui(self): self.l = l = QVBoxLayout(self) @@ -1416,10 +1416,10 @@ class Reports(Dialog): self.bb.setStandardButtons(QDialogButtonBox.StandardButton.Close) self.refresh_button = b = self.bb.addButton(_('&Refresh'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.refresh) - b.setIcon(QIcon(I('view-refresh.png'))) + b.setIcon(QIcon.ic('view-refresh.png')) self.save_button = b = self.bb.addButton(_('&Save'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.reports.to_csv) - b.setIcon(QIcon(I('save.png'))) + b.setIcon(QIcon.ic('save.png')) b.setToolTip(_('Export the currently shown report as a CSV file')) def sizeHint(self): diff --git a/src/calibre/gui2/tweak_book/search.py b/src/calibre/gui2/tweak_book/search.py index a0b0c3fee9..0525426541 100644 --- a/src/calibre/gui2/tweak_book/search.py +++ b/src/calibre/gui2/tweak_book/search.py @@ -475,7 +475,7 @@ class SearchPanel(QWidget): # {{{ t.setIconSize(QSize(12, 12)) t.setMovable(False) t.setFloatable(False) - t.cl = ac = t.addAction(QIcon(I('window-close.png')), _('Close search panel')) + t.cl = ac = t.addAction(QIcon.ic('window-close.png'), _('Close search panel')) ac.triggered.connect(self.hide_panel) self.widget = SearchWidget(self) l.addWidget(self.widget) @@ -678,7 +678,7 @@ class EditSearch(QFrame): # {{{ l.addLayout(h) h.addWidget(la) self.cb = cb = QToolButton(self) - cb.setIcon(QIcon(I('window-close.png'))) + cb.setIcon(QIcon.ic('window-close.png')) cb.setToolTip(_('Abort editing of search')) h.addWidget(cb) cb.clicked.connect(self.abort_editing) @@ -734,7 +734,7 @@ class EditSearch(QFrame): # {{{ la.setBuddy(m) h.addWidget(la), h.addWidget(m), h.addStretch(2) - self.done_button = b = QPushButton(QIcon(I('ok.png')), _('&Done')) + self.done_button = b = QPushButton(QIcon.ic('ok.png'), _('&Done')) b.setToolTip(_('Finish editing of search')) h.addWidget(b) b.clicked.connect(self.emit_done) @@ -947,7 +947,7 @@ class SavedSearches(QWidget): self.upb = b = QToolButton(self) self.move_up_action = a = QAction(self) a.setShortcut(QKeySequence('Alt+Up')) - b.setIcon(QIcon(I('arrow-up.png'))) + b.setIcon(QIcon.ic('arrow-up.png')) b.setToolTip(_('Move selected entries up') + ' [%s]' % a.shortcut().toString(QKeySequence.SequenceFormat.NativeText)) connect_lambda(a.triggered, self, lambda self: self.move_entry(-1)) self.searches.addAction(a) @@ -956,7 +956,7 @@ class SavedSearches(QWidget): self.dnb = b = QToolButton(self) self.move_down_action = a = QAction(self) a.setShortcut(QKeySequence('Alt+Down')) - b.setIcon(QIcon(I('arrow-down.png'))) + b.setIcon(QIcon.ic('arrow-down.png')) b.setToolTip(_('Move selected entries down') + ' [%s]' % a.shortcut().toString(QKeySequence.SequenceFormat.NativeText)) connect_lambda(a.triggered, self, lambda self: self.move_entry(1)) self.searches.addAction(a) @@ -1488,7 +1488,7 @@ def run_search( d = MessageBox(MessageBox.INFO, _('Searching done'), ''+msg, parent=gui_parent, show_copy_button=False, det_msg=det_msg) d.diffb = b = d.bb.addButton(_('See what &changed'), QDialogButtonBox.ButtonRole.AcceptRole) d.show_changes = False - b.setIcon(QIcon(I('diff.png'))), b.clicked.connect(d.accept) + b.setIcon(QIcon.ic('diff.png')), b.clicked.connect(d.accept) connect_lambda(b.clicked, d, lambda d: setattr(d, 'show_changes', True)) d.exec() if d.show_changes: diff --git a/src/calibre/gui2/tweak_book/spell.py b/src/calibre/gui2/tweak_book/spell.py index b3380e0ba7..501d005c87 100644 --- a/src/calibre/gui2/tweak_book/spell.py +++ b/src/calibre/gui2/tweak_book/spell.py @@ -89,7 +89,7 @@ class AddDictionary(QDialog): # {{{ h.addWidget(p) self.b = b = QToolButton(self) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) b.setToolTip(_('Browse for an OXT file')) b.clicked.connect(self.choose_file) h.addWidget(b) @@ -188,7 +188,7 @@ class ManageUserDictionaries(Dialog): l.addWidget(self.bb) self.bb.clear(), self.bb.addButton(QDialogButtonBox.StandardButton.Close) b = self.bb.addButton(_('&New dictionary'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('spell-check.png'))) + b.setIcon(QIcon.ic('spell-check.png')) b.clicked.connect(self.new_dictionary) self.dictionaries = d = QListWidget(self) @@ -201,10 +201,10 @@ class ManageUserDictionaries(Dialog): l = QVBoxLayout() h.addLayout(l) h = QHBoxLayout() - self.remove_button = b = QPushButton(QIcon(I('trash.png')), _('&Remove dictionary'), self) + self.remove_button = b = QPushButton(QIcon.ic('trash.png'), _('&Remove dictionary'), self) b.clicked.connect(self.remove_dictionary) h.addWidget(b) - self.rename_button = b = QPushButton(QIcon(I('modified.png')), _('Re&name dictionary'), self) + self.rename_button = b = QPushButton(QIcon.ic('modified.png'), _('Re&name dictionary'), self) b.clicked.connect(self.rename_dictionary) h.addWidget(b) self.dlabel = la = QLabel('') @@ -220,13 +220,13 @@ class ManageUserDictionaries(Dialog): l.addWidget(w) self.add_word_button = b = QPushButton(_('&Add word'), self) b.clicked.connect(self.add_word) - b.setIcon(QIcon(I('plus.png'))) + b.setIcon(QIcon.ic('plus.png')) l.h = h = QHBoxLayout() l.addLayout(h) h.addWidget(b) self.remove_word_button = b = QPushButton(_('&Remove selected words'), self) b.clicked.connect(self.remove_word) - b.setIcon(QIcon(I('minus.png'))) + b.setIcon(QIcon.ic('minus.png')) h.addWidget(b) self.import_words_button = b = QPushButton(_('&Import list of words'), self) b.clicked.connect(self.import_words) @@ -455,14 +455,14 @@ class ManageDictionaries(Dialog): # {{{ self.bb.clear() self.bb.addButton(QDialogButtonBox.StandardButton.Close) b = self.bb.addButton(_('Manage &user dictionaries'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('user_profile.png'))) + b.setIcon(QIcon.ic('user_profile.png')) b.setToolTip(_( 'Manage the list of user dictionaries (dictionaries to which you can add words)')) b.clicked.connect(self.manage_user_dictionaries) b = self.bb.addButton(_('&Add dictionary'), QDialogButtonBox.ButtonRole.ActionRole) b.setToolTip(_( 'Add a new dictionary that you downloaded from the internet')) - b.setIcon(QIcon(I('plus.png'))) + b.setIcon(QIcon.ic('plus.png')) b.clicked.connect(self.add_dictionary) l.addWidget(self.bb, l.rowCount(), 0, 1, l.columnCount()) @@ -973,7 +973,7 @@ class SpellCheck(Dialog): def setup_ui(self): self.state_name = 'spell-check-table-state-' + QT_VERSION_STR.partition('.')[0] - self.setWindowIcon(QIcon(I('spell-check.png'))) + self.setWindowIcon(QIcon.ic('spell-check.png')) self.l = l = QVBoxLayout(self) self.setLayout(l) self.stack = s = QStackedLayout() @@ -983,15 +983,15 @@ class SpellCheck(Dialog): self.bb.addButton(QDialogButtonBox.StandardButton.Close) b = self.bb.addButton(_('&Refresh'), QDialogButtonBox.ButtonRole.ActionRole) b.setToolTip('
' + _('Re-scan the book for words, useful if you have edited the book since opening this dialog')) - b.setIcon(QIcon(I('view-refresh.png'))) + b.setIcon(QIcon.ic('view-refresh.png')) connect_lambda(b.clicked, self, lambda self: self.refresh(change_request=None)) b = self.bb.addButton(_('&Undo last change'), QDialogButtonBox.ButtonRole.ActionRole) b.setToolTip('
' + _('Undo the last spell check word replacement, if any')) - b.setIcon(QIcon(I('edit-undo.png'))) + b.setIcon(QIcon.ic('edit-undo.png')) b.clicked.connect(self.undo_last_change) b = self.exclude_button = self.bb.addButton('', QDialogButtonBox.ButtonRole.ActionRole) b.setToolTip('
' + _('Exclude some files in the book from spell check')) - b.setIcon(QIcon(I('chapters.png'))) + b.setIcon(QIcon.ic('chapters.png')) b.clicked.connect(self.change_excluded_files) self.update_exclude_button() diff --git a/src/calibre/gui2/tweak_book/text_search.py b/src/calibre/gui2/tweak_book/text_search.py index 3fa28ab3d6..ddb543e9f7 100644 --- a/src/calibre/gui2/tweak_book/text_search.py +++ b/src/calibre/gui2/tweak_book/text_search.py @@ -120,11 +120,11 @@ class TextSearch(QWidget): self.h3 = h = QHBoxLayout() l.addLayout(h) h.addStretch(10) - self.next_button = b = QPushButton(QIcon(I('arrow-down.png')), _('&Next'), self) + self.next_button = b = QPushButton(QIcon.ic('arrow-down.png'), _('&Next'), self) b.setToolTip(_('Find next match')) h.addWidget(b) connect_lambda(b.clicked, self, lambda self: self.do_search('down')) - self.prev_button = b = QPushButton(QIcon(I('arrow-up.png')), _('&Previous'), self) + self.prev_button = b = QPushButton(QIcon.ic('arrow-up.png'), _('&Previous'), self) b.setToolTip(_('Find previous match')) h.addWidget(b) connect_lambda(b.clicked, self, lambda self: self.do_search('up')) diff --git a/src/calibre/gui2/tweak_book/toc.py b/src/calibre/gui2/tweak_book/toc.py index 6f02c3b8d2..c4b5e3879b 100644 --- a/src/calibre/gui2/tweak_book/toc.py +++ b/src/calibre/gui2/tweak_book/toc.py @@ -30,7 +30,7 @@ class TOCEditor(QDialog): t = title or current_container().mi.title self.book_title = t self.setWindowTitle(_('Edit the ToC in %s')%t) - self.setWindowIcon(QIcon(I('toc.png'))) + self.setWindowIcon(QIcon.ic('toc.png')) l = self.l = QVBoxLayout() self.setLayout(l) @@ -49,7 +49,7 @@ class TOCEditor(QDialog): bb.rejected.connect(self.reject) self.undo_button = b = bb.addButton(_('&Undo'), QDialogButtonBox.ButtonRole.ActionRole) b.setToolTip(_('Undo the last action, if any')) - b.setIcon(QIcon(I('edit-undo.png'))) + b.setIcon(QIcon.ic('edit-undo.png')) b.clicked.connect(self.toc_view.undo) self.read_toc() @@ -148,7 +148,7 @@ class TOCViewer(QWidget): self.view.itemDoubleClicked.connect(self.emit_navigate) l.addWidget(self.view) - self.refresh_action = QAction(QIcon(I('view-refresh.png')), _('&Refresh'), self) + self.refresh_action = QAction(QIcon.ic('view-refresh.png'), _('&Refresh'), self) self.refresh_action.triggered.connect(self.refresh) self.refresh_timer = t = QTimer(self) t.setInterval(1000), t.setSingleShot(True) diff --git a/src/calibre/gui2/tweak_book/ui.py b/src/calibre/gui2/tweak_book/ui.py index 89fe06a53f..006775d861 100644 --- a/src/calibre/gui2/tweak_book/ui.py +++ b/src/calibre/gui2/tweak_book/ui.py @@ -91,7 +91,7 @@ class Central(QStackedWidget): # {{{ i.invertPixels() self.modified_icon = QIcon(QPixmap.fromImage(i)) else: - self.modified_icon = QIcon(I('modified.png')) + self.modified_icon = QIcon.ic('modified.png') self.editor_tabs.currentChanged.connect(self.current_editor_changed) self.editor_tabs.tabCloseRequested.connect(self._close_requested) self.search_panel = SearchPanel(self) @@ -337,7 +337,7 @@ class Main(MainWindow): traceback.print_exc() self.setWindowTitle(self.APP_NAME) self.boss = Boss(self, notify=notify) - self.setWindowIcon(QIcon(I('tweak.png'))) + self.setWindowIcon(QIcon.ic('tweak.png')) self.opts = opts self.path_to_ebook = None self.container = None @@ -407,7 +407,7 @@ class Main(MainWindow): def reg(icon, text, target, sid, keys, description, toolbar_allowed=False): if not isinstance(icon, QIcon): - icon = QIcon(I(icon)) + icon = QIcon.ic(icon) ac = actions[sid] = QAction(icon, text, self) if icon else QAction(text, self) ac.setObjectName('action-' + sid) if toolbar_allowed: @@ -727,7 +727,7 @@ class Main(MainWindow): e = b.addMenu(_('&Help')) a = e.addAction a(self.action_help) - a(QIcon(I('donate.png')), _('&Donate to support calibre development'), open_donate) + a(QIcon.ic('donate.png'), _('&Donate to support calibre development'), open_donate) a(self.action_preferences) def search_menu_about_to_show(self): diff --git a/src/calibre/gui2/tweak_book/undo.py b/src/calibre/gui2/tweak_book/undo.py index 29de27f4fc..804ad57a72 100644 --- a/src/calibre/gui2/tweak_book/undo.py +++ b/src/calibre/gui2/tweak_book/undo.py @@ -202,12 +202,12 @@ class CheckpointView(QWidget): l.addWidget(v, 0, 0, 1, -1) model.dataChanged.connect(self.data_changed) - self.rb = b = QPushButton(QIcon(I('edit-undo.png')), _('&Revert to'), self) + self.rb = b = QPushButton(QIcon.ic('edit-undo.png'), _('&Revert to'), self) b.setToolTip(_('Revert the book to the selected checkpoint')) b.clicked.connect(self.revert_clicked) l.addWidget(b, 1, 1) - self.cb = b = QPushButton(QIcon(I('diff.png')), _('&Compare'), self) + self.cb = b = QPushButton(QIcon.ic('diff.png'), _('&Compare'), self) b.setToolTip(_('Compare the state of the book at the selected checkpoint with the current state')) b.clicked.connect(self.compare_clicked) l.addWidget(b, 1, 0) diff --git a/src/calibre/gui2/tweak_book/widgets.py b/src/calibre/gui2/tweak_book/widgets.py index 27cff25653..9ac314e9a6 100644 --- a/src/calibre/gui2/tweak_book/widgets.py +++ b/src/calibre/gui2/tweak_book/widgets.py @@ -216,7 +216,7 @@ class ImportForeign(Dialog): # {{{ src.setPlaceholderText(_('Choose the file to import')) h1.addWidget(src) self.b1 = b = QToolButton(self) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) b.setText(_('Choose file')) h1.addWidget(b) l.addRow(_('Source file:'), h1) @@ -228,7 +228,7 @@ class ImportForeign(Dialog): # {{{ src.setPlaceholderText(_('Choose the location for the newly created EPUB')) h1.addWidget(src) self.b2 = b = QToolButton(self) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) b.setText(_('Choose file')) h1.addWidget(b) l.addRow(_('Destination file:'), h1) @@ -1185,7 +1185,7 @@ class AddCover(Dialog): l.addWidget(self.bb) b = self.bb.addButton(_('Import &image'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.import_image) - b.setIcon(QIcon(I('document_open.png'))) + b.setIcon(QIcon.ic('document_open.png')) self.names.setFocus(Qt.FocusReason.OtherFocusReason) self.names.selectionModel().currentChanged.connect(self.current_image_changed) cname = get_raster_cover_name(self.container) diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index 0581d5ba17..0655b3c4b5 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -228,7 +228,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{ traceback.print_exc() if getattr(ac, 'installation_type', None) is PluginInstallationType.BUILTIN: raise - self.donate_action = QAction(QIcon(I('donate.png')), + self.donate_action = QAction(QIcon.ic('donate.png'), _('&Donate to support calibre'), self) for st in self.istores.values(): st.do_genesis() @@ -268,11 +268,11 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{ ' does not support the StatusNotifier spec https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/', file=sys.stderr, flush=True) self.system_tray_menu = QMenu(self) - self.toggle_to_tray_action = self.system_tray_menu.addAction(QIcon(I('page.png')), '') + self.toggle_to_tray_action = self.system_tray_menu.addAction(QIcon.ic('page.png'), '') self.toggle_to_tray_action.triggered.connect(self.system_tray_icon_activated) self.system_tray_menu.addAction(self.donate_action) self.eject_action = self.system_tray_menu.addAction( - QIcon(I('eject.png')), _('&Eject connected device')) + QIcon.ic('eject.png'), _('&Eject connected device')) self.eject_action.setEnabled(False) self.addAction(self.quit_action) self.system_tray_menu.addAction(self.quit_action) diff --git a/src/calibre/gui2/update.py b/src/calibre/gui2/update.py index f927bc17c3..09afa19ab9 100644 --- a/src/calibre/gui2/update.py +++ b/src/calibre/gui2/update.py @@ -130,7 +130,7 @@ class UpdateNotification(QDialog): self.setLayout(self.l) self.logo = QLabel() self.logo.setMaximumWidth(110) - self.logo.setPixmap(QIcon(I('lt.png')).pixmap(100, 100)) + self.logo.setPixmap(QIcon.ic('lt.png').pixmap(100, 100)) ver = calibre_version if ver.endswith('.0'): ver = ver[:-2] @@ -142,7 +142,7 @@ class UpdateNotification(QDialog): self.label.setOpenExternalLinks(True) self.label.setWordWrap(True) self.setWindowTitle(_('Update available!')) - self.setWindowIcon(QIcon(I('lt.png'))) + self.setWindowIcon(QIcon.ic('lt.png')) self.l.addWidget(self.logo, 0, 0) self.l.addWidget(self.label, 0, 1) self.cb = QCheckBox( @@ -153,10 +153,10 @@ class UpdateNotification(QDialog): self.bb = QDialogButtonBox(self) b = self.bb.addButton(_('&Get update'), QDialogButtonBox.ButtonRole.AcceptRole) b.setDefault(True) - b.setIcon(QIcon(I('arrow-down.png'))) + b.setIcon(QIcon.ic('arrow-down.png')) if plugin_updates > 0: b = self.bb.addButton(_('Update &plugins'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('plugins/plugin_updater.png'))) + b.setIcon(QIcon.ic('plugins/plugin_updater.png')) b.clicked.connect(self.get_plugins, type=Qt.ConnectionType.QueuedConnection) self.bb.addButton(QDialogButtonBox.StandardButton.Cancel) self.l.addWidget(self.bb, 2, 0, 1, -1) @@ -249,13 +249,13 @@ class UpdateMixin: return if number_of_updates: plugin.qaction.setText(_('Plugin updates')+'*') - plugin.qaction.setIcon(QIcon(I('plugins/plugin_updater_updates.png'))) + plugin.qaction.setIcon(QIcon.ic('plugins/plugin_updater_updates.png')) plugin.qaction.setToolTip( ngettext('A plugin update is available', 'There are {} plugin updates available', number_of_updates).format(number_of_updates)) else: plugin.qaction.setText(_('Plugin updates')) - plugin.qaction.setIcon(QIcon(I('plugins/plugin_updater.png'))) + plugin.qaction.setIcon(QIcon.ic('plugins/plugin_updater.png')) plugin.qaction.setToolTip(_('Install and configure user plugins')) def update_link_clicked(self, url): diff --git a/src/calibre/gui2/viewer/bookmarks.py b/src/calibre/gui2/viewer/bookmarks.py index 9b467a436d..e2be8a372e 100644 --- a/src/calibre/gui2/viewer/bookmarks.py +++ b/src/calibre/gui2/viewer/bookmarks.py @@ -29,9 +29,9 @@ class BookmarksList(QListWidget): self.setAlternatingRowColors(True) self.setStyleSheet('QListView::item { padding: 0.5ex }') self.setContextMenuPolicy(Qt.ContextMenuPolicy.ActionsContextMenu) - self.ac_edit = ac = QAction(QIcon(I('edit_input.png')), _('Rename this bookmark'), self) + self.ac_edit = ac = QAction(QIcon.ic('edit_input.png'), _('Rename this bookmark'), self) self.addAction(ac) - self.ac_delete = ac = QAction(QIcon(I('trash.png')), _('Remove this bookmark'), self) + self.ac_delete = ac = QAction(QIcon.ic('trash.png'), _('Remove this bookmark'), self) self.addAction(ac) self.gesture_manager = GestureManager(self) self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel) @@ -118,21 +118,21 @@ class BookmarkManager(QWidget): la.setWordWrap(True) l.addWidget(la, l.rowCount(), 0, 1, -1) - self.button_new = b = QPushButton(QIcon(I('bookmarks.png')), _('&New'), self) + self.button_new = b = QPushButton(QIcon.ic('bookmarks.png'), _('&New'), self) b.clicked.connect(self.create_requested) b.setToolTip(_('Create a new bookmark at the current location')) l.addWidget(b) - self.button_delete = b = QPushButton(QIcon(I('trash.png')), _('&Remove'), self) + self.button_delete = b = QPushButton(QIcon.ic('trash.png'), _('&Remove'), self) b.setToolTip(_('Remove the currently selected bookmark')) b.clicked.connect(self.delete_bookmark) l.addWidget(b, l.rowCount() - 1, 1) - self.button_prev = b = QPushButton(QIcon(I('back.png')), _('Pre&vious'), self) + self.button_prev = b = QPushButton(QIcon.ic('back.png'), _('Pre&vious'), self) b.clicked.connect(self.bookmarks_list.previous_bookmark) l.addWidget(b) - self.button_next = b = QPushButton(QIcon(I('forward.png')), _('Nex&t'), self) + self.button_next = b = QPushButton(QIcon.ic('forward.png'), _('Nex&t'), self) b.clicked.connect(self.bookmarks_list.next_bookmark) l.addWidget(b, l.rowCount() - 1, 1) diff --git a/src/calibre/gui2/viewer/highlights.py b/src/calibre/gui2/viewer/highlights.py index 71ece24140..fc0b578b62 100644 --- a/src/calibre/gui2/viewer/highlights.py +++ b/src/calibre/gui2/viewer/highlights.py @@ -166,7 +166,7 @@ class Highlights(QTreeWidget): QTreeWidget.__init__(self, parent) self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.customContextMenuRequested.connect(self.show_context_menu) - self.default_decoration = QIcon(I('blank.png')) + self.default_decoration = QIcon.ic('blank.png') self.setHeaderHidden(True) self.num_of_items = 0 self.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection) @@ -193,9 +193,9 @@ class Highlights(QTreeWidget): h = index.data(Qt.ItemDataRole.UserRole) self.context_menu = m = QMenu(self) if h is not None: - m.addAction(QIcon(I('edit_input.png')), _('Modify this highlight'), self.edit_requested.emit) - m.addAction(QIcon(I('modified.png')), _('Edit notes for this highlight'), self.edit_notes_requested.emit) - m.addAction(QIcon(I('trash.png')), ngettext( + m.addAction(QIcon.ic('edit_input.png'), _('Modify this highlight'), self.edit_requested.emit) + m.addAction(QIcon.ic('modified.png'), _('Edit notes for this highlight'), self.edit_notes_requested.emit) + m.addAction(QIcon.ic('trash.png'), ngettext( 'Delete this highlight', 'Delete selected highlights', len(self.selectedItems()) ), self.delete_requested.emit) m.addSeparator() @@ -467,7 +467,7 @@ class HighlightsPanel(QWidget): self.h = h = QHBoxLayout() def button(icon, text, tt, target): - b = QPushButton(QIcon(I(icon)), text, self) + b = QPushButton(QIcon.ic(icon), text, self) b.setToolTip(tt) b.setFocusPolicy(Qt.FocusPolicy.NoFocus) b.clicked.connect(target) diff --git a/src/calibre/gui2/viewer/lookup.py b/src/calibre/gui2/viewer/lookup.py index c235659e14..5b2acaac8c 100644 --- a/src/calibre/gui2/viewer/lookup.py +++ b/src/calibre/gui2/viewer/lookup.py @@ -133,10 +133,10 @@ class SourcesEditor(Dialog): self.build_entries(vprefs['lookup_locations']) self.add_button = b = self.bb.addButton(_('Add'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('plus.png'))) + b.setIcon(QIcon.ic('plus.png')) b.clicked.connect(self.add_source) self.remove_button = b = self.bb.addButton(_('Remove'), QDialogButtonBox.ButtonRole.ActionRole) - b.setIcon(QIcon(I('minus.png'))) + b.setIcon(QIcon.ic('minus.png')) b.clicked.connect(self.remove_source) self.restore_defaults_button = b = self.bb.addButton(_('Restore defaults'), QDialogButtonBox.ButtonRole.ActionRole) b.clicked.connect(self.restore_defaults) @@ -271,10 +271,10 @@ class Lookup(QWidget): self.source_box.currentIndexChanged.connect(self.source_changed) self.view.setHtml('
' + _('Double click on a word in the book\'s text' ' to look it up.')) - self.add_button = b = QPushButton(QIcon(I('plus.png')), _('Add sources')) + self.add_button = b = QPushButton(QIcon.ic('plus.png'), _('Add sources')) b.setToolTip(_('Add more sources at which to lookup words')) b.clicked.connect(self.add_sources) - self.refresh_button = rb = QPushButton(QIcon(I('view-refresh.png')), _('Refresh')) + self.refresh_button = rb = QPushButton(QIcon.ic('view-refresh.png'), _('Refresh')) rb.setToolTip(_('Refresh the result to match the currently selected text')) rb.clicked.connect(self.update_query) h = QHBoxLayout() diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py index cf76ce64ca..2c05574416 100644 --- a/src/calibre/gui2/viewer/main.py +++ b/src/calibre/gui2/viewer/main.py @@ -143,7 +143,7 @@ def run_gui(app, opts, args, internal_book_data, listener=None): acc = EventAccumulator(app) app.file_event_hook = acc app.load_builtin_fonts() - app.setWindowIcon(QIcon(I('viewer.png'))) + app.setWindowIcon(QIcon.ic('viewer.png')) migrate_previous_viewer_prefs() main = EbookViewer( open_at=opts.open_at, continue_reading=opts.continue_reading, force_reload=opts.force_reload, diff --git a/src/calibre/gui2/viewer/printing.py b/src/calibre/gui2/viewer/printing.py index 357e277578..bf370af5a8 100644 --- a/src/calibre/gui2/viewer/printing.py +++ b/src/calibre/gui2/viewer/printing.py @@ -55,7 +55,7 @@ class PrintDialog(Dialog): val = os.path.dirname(val) f.setText(os.path.abspath(os.path.join(val, self.default_file_name))) self.browse_button = b = QToolButton(self) - b.setIcon(QIcon(I('document_open.png'))), b.setToolTip(_('Choose location for PDF file')) + b.setIcon(QIcon.ic('document_open.png')), b.setToolTip(_('Choose location for PDF file')) b.clicked.connect(self.choose_file) h.addWidget(f), h.addWidget(b) f.setMinimumWidth(350) @@ -191,7 +191,7 @@ class Printing(QProgressDialog): QProgressDialog.__init__(self, _('Printing, this will take a while, please wait...'), _('&Cancel'), 0, 0, parent) self.show_file = show_file self.setWindowTitle(_('Printing...')) - self.setWindowIcon(QIcon(I('print.png'))) + self.setWindowIcon(QIcon.ic('print.png')) self.thread = thread self.timer = t = QTimer(self) t.timeout.connect(self.check) diff --git a/src/calibre/gui2/viewer/search.py b/src/calibre/gui2/viewer/search.py index 6ea11cdd41..42f2f0a9bb 100644 --- a/src/calibre/gui2/viewer/search.py +++ b/src/calibre/gui2/viewer/search.py @@ -357,14 +357,14 @@ class SearchInput(QWidget): # {{{ self.next_button = nb = QToolButton(self) h.addWidget(nb) nb.setFocusPolicy(Qt.FocusPolicy.NoFocus) - nb.setIcon(QIcon(I('arrow-down.png'))) + nb.setIcon(QIcon.ic('arrow-down.png')) nb.clicked.connect(self.find_next) nb.setToolTip(_('Find next match')) self.prev_button = nb = QToolButton(self) h.addWidget(nb) nb.setFocusPolicy(Qt.FocusPolicy.NoFocus) - nb.setIcon(QIcon(I('arrow-up.png'))) + nb.setIcon(QIcon.ic('arrow-up.png')) nb.clicked.connect(self.find_previous) nb.setToolTip(_('Find previous match')) @@ -395,7 +395,7 @@ class SearchInput(QWidget): # {{{ h.addWidget(cs) self.return_button = rb = QToolButton(self) - rb.setIcon(QIcon(I('back.png'))) + rb.setIcon(QIcon.ic('back.png')) rb.setToolTip(_('Go back to where you were before searching')) rb.clicked.connect(self.go_back) h.addWidget(rb) @@ -477,8 +477,8 @@ class Results(QTreeWidget): # {{{ self.delegate = ResultsDelegate(self) self.setItemDelegate(self.delegate) self.itemClicked.connect(self.item_activated) - self.blank_icon = QIcon(I('blank.png')) - self.not_found_icon = QIcon(I('dialog_warning.png')) + self.blank_icon = QIcon.ic('blank.png') + self.not_found_icon = QIcon.ic('dialog_warning.png') self.currentItemChanged.connect(self.current_item_changed) self.section_font = QFont(self.font()) self.section_font.setItalic(True) diff --git a/src/calibre/gui2/viewer/toc.py b/src/calibre/gui2/viewer/toc.py index cb1f7ee80a..538c05cae8 100644 --- a/src/calibre/gui2/viewer/toc.py +++ b/src/calibre/gui2/viewer/toc.py @@ -169,7 +169,7 @@ class TOCSearch(QWidget): self.search.setToolTip(_('Search for text in the Table of Contents')) s.search.connect(self.do_search) self.go = b = QToolButton(self) - b.setIcon(QIcon(I('search.png'))) + b.setIcon(QIcon.ic('search.png')) b.clicked.connect(s.do_search) b.setToolTip(_('Find next match')) l.addWidget(s), l.addWidget(b) diff --git a/src/calibre/gui2/viewer/toolbars.py b/src/calibre/gui2/viewer/toolbars.py index 5a6e766df6..5b358fcce5 100644 --- a/src/calibre/gui2/viewer/toolbars.py +++ b/src/calibre/gui2/viewer/toolbars.py @@ -26,7 +26,7 @@ class Action: __slots__ = ('icon', 'text', 'shortcut_action') def __init__(self, icon=None, text=None, shortcut_action=None): - self.icon, self.text, self.shortcut_action = QIcon(I(icon)), text, shortcut_action + self.icon, self.text, self.shortcut_action = QIcon.ic(icon), text, shortcut_action class Actions: @@ -438,11 +438,11 @@ class ConfigureToolBar(Dialog): self.bv = bv = QVBoxLayout() bv.addStretch(10) self.add_button = b = QToolButton(self) - b.setIcon(QIcon(I('forward.png'))), b.setToolTip(_('Add selected actions to the toolbar')) + b.setIcon(QIcon.ic('forward.png')), b.setToolTip(_('Add selected actions to the toolbar')) bv.addWidget(b), bv.addStretch(10) b.clicked.connect(self.add_actions) self.remove_button = b = QToolButton(self) - b.setIcon(QIcon(I('back.png'))), b.setToolTip(_('Remove selected actions from the toolbar')) + b.setIcon(QIcon.ic('back.png')), b.setToolTip(_('Remove selected actions from the toolbar')) b.clicked.connect(self.remove_actions) bv.addWidget(b), bv.addStretch(10) diff --git a/src/calibre/gui2/wizard/__init__.py b/src/calibre/gui2/wizard/__init__.py index 5200333463..87d10dc258 100644 --- a/src/calibre/gui2/wizard/__init__.py +++ b/src/calibre/gui2/wizard/__init__.py @@ -911,7 +911,7 @@ class Wizard(QWizard): def __init__(self, parent): QWizard.__init__(self, parent) self.setWindowTitle(__appname__+' '+_('Welcome wizard')) - self.setPixmap(QWizard.WizardPixmap.LogoPixmap, QIcon(I('library.png')).pixmap(48, 48)) + self.setPixmap(QWizard.WizardPixmap.LogoPixmap, QIcon.ic('library.png').pixmap(48, 48)) self.setWizardStyle(QWizard.WizardStyle.ModernStyle) self.device_page = DevicePage() self.library_page = LibraryPage() diff --git a/src/calibre/gui2/wizard/send_email.py b/src/calibre/gui2/wizard/send_email.py index 91bc13757f..4701862742 100644 --- a/src/calibre/gui2/wizard/send_email.py +++ b/src/calibre/gui2/wizard/send_email.py @@ -30,7 +30,7 @@ class TestEmail(QDialog): QDialog.__init__(self, parent) self.test_func = parent.test_email_settings self.setWindowTitle(_("Test email settings")) - self.setWindowIcon(QIcon(I('config.ui'))) + self.setWindowIcon(QIcon.ic('config.ui')) l = QVBoxLayout(self) opts = smtp_prefs().parse() self.from_ = la = QLabel(_("Send test mail from %s to:")%opts.from_) diff --git a/src/calibre/web/feeds/recipes/model.py b/src/calibre/web/feeds/recipes/model.py index 74403be6bd..cd343416a0 100644 --- a/src/calibre/web/feeds/recipes/model.py +++ b/src/calibre/web/feeds/recipes/model.py @@ -155,8 +155,8 @@ class RecipeModel(QAbstractItemModel, AdaptSQP): def __init__(self, *args): QAbstractItemModel.__init__(self, *args) SearchQueryParser.__init__(self, locations=['all']) - self.default_icon = (QIcon(I('news.png'))) - self.custom_icon = (QIcon(I('user_profile.png'))) + self.default_icon = (QIcon.ic('news.png')) + self.custom_icon = (QIcon.ic('user_profile.png')) self.builtin_recipe_collection = get_builtin_recipe_collection() self.scheduler_config = SchedulerConfig() try: