diff --git a/src/calibre/ebooks/metadata/book/render.py b/src/calibre/ebooks/metadata/book/render.py index e973b3aeb9..4418213291 100644 --- a/src/calibre/ebooks/metadata/book/render.py +++ b/src/calibre/ebooks/metadata/book/render.py @@ -107,13 +107,15 @@ def mi_to_html( mi, field_list=None, default_author_link=None, use_roman_numbers=True, rating_font='Liberation Serif', rtl=False, comments_heading_pos='hide', - for_qt=False, vertical_fields=(), show_links=True, item_id_if_has_note=None + for_qt=False, vertical_fields=(), show_links=True, item_id_if_has_note=None, + link_note_icon_size=16 ): link_markup = '↗️' if for_qt: - link_markup = '' - note_markup = '' + s = link_note_icon_size + link_markup = f'' + note_markup = f'' def get_link_map(column): try: return mi.link_maps[column] diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index c8793f9df6..fc337dbf56 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -485,6 +485,7 @@ def create_defs(): defs['dark_palettes'] = {} defs['light_palettes'] = {} defs['saved_layouts'] = {} + defs['book_details_note_link_icon_width'] = 1.0 def migrate_tweak(tweak_name, pref_name): # If the tweak has been changed then leave the tweak in the file so diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index b7b0e7caeb..b734967088 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -15,6 +15,7 @@ from qt.core import ( QColor, QDialog, QEasingCurve, + QFontMetrics, QIcon, QKeySequence, QMenu, @@ -394,11 +395,15 @@ def render_data(mi, use_roman_numbers=True, all_fields=False, pref_name='book_di if db.notes_for(field, item_id): return item_id + # Compute the size of the link and note icons by scaling the current font + # height by the option specified in Preferences / L&F / Book details. + icon_size = int(QFontMetrics(QApplication.font()).height() * gprefs['book_details_note_link_icon_width']) return mi_to_html( mi, field_list=field_list, use_roman_numbers=use_roman_numbers, rtl=is_rtl(), rating_font=rating_font(), default_author_link=default_author_link(), comments_heading_pos=gprefs['book_details_comments_heading_pos'], for_qt=True, - vertical_fields=vertical_fields, show_links=show_links, item_id_if_has_note=item_id_if_has_note + vertical_fields=vertical_fields, show_links=show_links, item_id_if_has_note=item_id_if_has_note, + link_note_icon_size=icon_size ) # }}} diff --git a/src/calibre/gui2/preferences/look_feel.py b/src/calibre/gui2/preferences/look_feel.py index 6568558df3..39f61db12e 100644 --- a/src/calibre/gui2/preferences/look_feel.py +++ b/src/calibre/gui2/preferences/look_feel.py @@ -678,6 +678,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): r('booklist_grid', gprefs) r('book_details_comments_heading_pos', gprefs, choices=[ (_('Never'), 'hide'), (_('Above text'), 'above'), (_('Beside text'), 'side')]) + r('book_details_note_link_icon_width', gprefs) self.cover_browser_title_template_button.clicked.connect(self.edit_cb_title_template) self.id_links_button.clicked.connect(self.edit_id_link_rules) diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui index 75173697f5..a792021fe7 100644 --- a/src/calibre/gui2/preferences/look_feel.ui +++ b/src/calibre/gui2/preferences/look_feel.ui @@ -957,7 +957,7 @@ A value of zero means calculate automatically. - + @@ -979,6 +979,62 @@ A value of zero means calculate automatically. + + + + Qt::Horizontal + + + + 10 + 0 + + + + + + + + Link and note icon si&ze: + + + opt_book_details_note_link_icon_width + + + + + + + Increase or decrease the size of the links and notes icons by this number. Larger +than one increases the icon size while smaller than one decreases it. + + + 1 + + + 0.5 + + + 4.0 + + + 0.1 + + + + + + + Qt::Horizontal + + + + 30 + 0 + + + +