Add an option to adjust the size of the link and note icons in book details.

In the tag browser and booklist the icons resize automatically with the font. That doesn't happen in book details because there isn't any notion of a "row". With this option the user can make the size as desired. For more background see the first few posts of https://www.mobileread.com/forums/showthread.php?t=365537
This commit is contained in:
Charles Haley 2025-01-10 10:26:15 +00:00
parent 30ed01e688
commit 136f188981
5 changed files with 62 additions and 5 deletions

View File

@ -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 = '<img valign="bottom" src="calibre-icon:///external-link.png" width=16 height=16>'
note_markup = '<img valign="bottom" src="calibre-icon:///notes.png" width=16 height=16>'
s = link_note_icon_size
link_markup = f'<img valign="bottom" src="calibre-icon:///external-link.png" width={s} height={s}>'
note_markup = f'<img valign="bottom" src="calibre-icon:///notes.png" width={s} height={s}>'
def get_link_map(column):
try:
return mi.link_maps[column]

View File

@ -485,6 +485,7 @@ def create_defs():
defs['dark_palettes'] = {}
defs['light_palettes'] = {}
defs['saved_layouts'] = {}
defs['book_details_note_link_icon_width'] = 16
def migrate_tweak(tweak_name, pref_name):
# If the tweak has been changed then leave the tweak in the file so

View File

@ -398,7 +398,8 @@ def render_data(mi, use_roman_numbers=True, all_fields=False, pref_name='book_di
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=gprefs['book_details_note_link_icon_width']
)
# }}}

View File

@ -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)

View File

@ -957,7 +957,7 @@ A value of zero means calculate automatically.</string>
</item>
</layout>
</item>
<item row="1" column="0" colspan="2">
<item row="1" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_25">
@ -979,6 +979,58 @@ A value of zero means calculate automatically.</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_bd13">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_1022">
<property name="text">
<string>Link and note icon si&amp;ze:</string>
</property>
<property name="buddy">
<cstring>opt_book_details_note_link_icon_width</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="opt_book_details_note_link_icon_width">
<property name="toolTip">
<string>Specify the size (width and height) of the links and notes icons</string>
</property>
<property name="suffix">
<string> pixels</string>
</property>
<property name="maximum">
<number>48</number>
</property>
<property name="minimum">
<number>12</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_bd13">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>30</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>