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
+
+
+
+