# Form implementation generated from reading ui file '/home/kovid/work/calibre/src/calibre/gui2/preferences/look_feel.ui'
#
# Created by: PyQt6 UI code generator 6.4.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(1096, 791)
        self.gridLayout_2 = QtWidgets.QGridLayout(Form)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.tabWidget = ScrollingTabWidget(Form)
        self.tabWidget.setObjectName("tabWidget")
        self.main_interface_tab = QtWidgets.QWidget()
        self.main_interface_tab.setObjectName("main_interface_tab")
        self.gridLayout_9 = QtWidgets.QGridLayout(self.main_interface_tab)
        self.gridLayout_9.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_9.setObjectName("gridLayout_9")
        self.opt_show_layout_buttons = QtWidgets.QCheckBox(self.main_interface_tab)
        self.opt_show_layout_buttons.setObjectName("opt_show_layout_buttons")
        self.gridLayout_9.addWidget(self.opt_show_layout_buttons, 7, 1, 1, 1)
        self.opt_systray_icon = QtWidgets.QCheckBox(self.main_interface_tab)
        self.opt_systray_icon.setObjectName("opt_systray_icon")
        self.gridLayout_9.addWidget(self.opt_systray_icon, 5, 0, 1, 1)
        self.icon_theme = QtWidgets.QLabel(self.main_interface_tab)
        self.icon_theme.setText("")
        self.icon_theme.setObjectName("icon_theme")
        self.gridLayout_9.addWidget(self.icon_theme, 1, 0, 1, 1)
        self.change_font_button = QtWidgets.QPushButton(self.main_interface_tab)
        self.change_font_button.setObjectName("change_font_button")
        self.gridLayout_9.addWidget(self.change_font_button, 8, 1, 1, 1)
        self.icon_theme_button = QtWidgets.QPushButton(self.main_interface_tab)
        self.icon_theme_button.setObjectName("icon_theme_button")
        self.gridLayout_9.addWidget(self.icon_theme_button, 1, 1, 1, 1)
        self.label_4 = QtWidgets.QLabel(self.main_interface_tab)
        self.label_4.setObjectName("label_4")
        self.gridLayout_9.addWidget(self.label_4, 10, 0, 1, 1)
        self.opt_show_splash_screen = QtWidgets.QCheckBox(self.main_interface_tab)
        self.opt_show_splash_screen.setObjectName("opt_show_splash_screen")
        self.gridLayout_9.addWidget(self.opt_show_splash_screen, 6, 1, 1, 1)
        self.opt_language = QtWidgets.QComboBox(self.main_interface_tab)
        self.opt_language.setSizeAdjustPolicy(QtWidgets.QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon)
        self.opt_language.setMinimumContentsLength(20)
        self.opt_language.setObjectName("opt_language")
        self.gridLayout_9.addWidget(self.opt_language, 4, 1, 1, 1)
        self.opt_gui_layout = QtWidgets.QComboBox(self.main_interface_tab)
        self.opt_gui_layout.setMaximumSize(QtCore.QSize(250, 16777215))
        self.opt_gui_layout.setSizeAdjustPolicy(QtWidgets.QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon)
        self.opt_gui_layout.setMinimumContentsLength(20)
        self.opt_gui_layout.setObjectName("opt_gui_layout")
        self.gridLayout_9.addWidget(self.opt_gui_layout, 3, 1, 1, 1)
        self.opt_book_list_extra_row_spacing = QtWidgets.QSpinBox(self.main_interface_tab)
        self.opt_book_list_extra_row_spacing.setMinimum(-20)
        self.opt_book_list_extra_row_spacing.setObjectName("opt_book_list_extra_row_spacing")
        self.gridLayout_9.addWidget(self.opt_book_list_extra_row_spacing, 10, 1, 1, 1)
        self.opt_ui_style = QtWidgets.QComboBox(self.main_interface_tab)
        self.opt_ui_style.setObjectName("opt_ui_style")
        self.gridLayout_9.addWidget(self.opt_ui_style, 0, 1, 1, 1)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.label_2 = QtWidgets.QLabel(self.main_interface_tab)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout.addWidget(self.label_2)
        self.font_display = QtWidgets.QLineEdit(self.main_interface_tab)
        self.font_display.setReadOnly(True)
        self.font_display.setObjectName("font_display")
        self.horizontalLayout.addWidget(self.font_display)
        self.gridLayout_9.addLayout(self.horizontalLayout, 8, 0, 1, 1)
        self.label_17 = QtWidgets.QLabel(self.main_interface_tab)
        self.label_17.setObjectName("label_17")
        self.gridLayout_9.addWidget(self.label_17, 3, 0, 1, 1)
        self.opt_booklist_grid = QtWidgets.QCheckBox(self.main_interface_tab)
        self.opt_booklist_grid.setObjectName("opt_booklist_grid")
        self.gridLayout_9.addWidget(self.opt_booklist_grid, 12, 0, 1, 2)
        self.label_widget_style = QtWidgets.QLabel(self.main_interface_tab)
        self.label_widget_style.setObjectName("label_widget_style")
        self.gridLayout_9.addWidget(self.label_widget_style, 0, 0, 1, 1)
        spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridLayout_9.addItem(spacerItem, 14, 0, 1, 1)
        self.opt_disable_animations = QtWidgets.QCheckBox(self.main_interface_tab)
        self.opt_disable_animations.setObjectName("opt_disable_animations")
        self.gridLayout_9.addWidget(self.opt_disable_animations, 5, 1, 1, 1)
        self.opt_dnd_merge = QtWidgets.QCheckBox(self.main_interface_tab)
        self.opt_dnd_merge.setObjectName("opt_dnd_merge")
        self.gridLayout_9.addWidget(self.opt_dnd_merge, 13, 0, 1, 1)
        self.opt_row_numbers_in_book_list = QtWidgets.QCheckBox(self.main_interface_tab)
        self.opt_row_numbers_in_book_list.setObjectName("opt_row_numbers_in_book_list")
        self.gridLayout_9.addWidget(self.opt_row_numbers_in_book_list, 11, 0, 1, 1)
        self.groupBox_2 = QtWidgets.QGroupBox(self.main_interface_tab)
        self.groupBox_2.setObjectName("groupBox_2")
        self.gridLayout_8 = QtWidgets.QGridLayout(self.groupBox_2)
        self.gridLayout_8.setObjectName("gridLayout_8")
        self.opt_toolbar_icon_size = QtWidgets.QComboBox(self.groupBox_2)
        self.opt_toolbar_icon_size.setObjectName("opt_toolbar_icon_size")
        self.gridLayout_8.addWidget(self.opt_toolbar_icon_size, 0, 1, 1, 1)
        self.label_5 = QtWidgets.QLabel(self.groupBox_2)
        self.label_5.setObjectName("label_5")
        self.gridLayout_8.addWidget(self.label_5, 0, 0, 1, 1)
        self.opt_toolbar_text = QtWidgets.QComboBox(self.groupBox_2)
        self.opt_toolbar_text.setObjectName("opt_toolbar_text")
        self.gridLayout_8.addWidget(self.opt_toolbar_text, 1, 1, 1, 1)
        self.label_8 = QtWidgets.QLabel(self.groupBox_2)
        self.label_8.setObjectName("label_8")
        self.gridLayout_8.addWidget(self.label_8, 1, 0, 1, 1)
        self.opt_wrap_toolbar_text = QtWidgets.QCheckBox(self.groupBox_2)
        self.opt_wrap_toolbar_text.setObjectName("opt_wrap_toolbar_text")
        self.gridLayout_8.addWidget(self.opt_wrap_toolbar_text, 2, 0, 1, 2)
        self.gridLayout_9.addWidget(self.groupBox_2, 9, 0, 1, 2)
        self.opt_disable_tray_notification = QtWidgets.QCheckBox(self.main_interface_tab)
        self.opt_disable_tray_notification.setObjectName("opt_disable_tray_notification")
        self.gridLayout_9.addWidget(self.opt_disable_tray_notification, 6, 0, 1, 1)
        self.label_7 = QtWidgets.QLabel(self.main_interface_tab)
        self.label_7.setObjectName("label_7")
        self.gridLayout_9.addWidget(self.label_7, 4, 0, 1, 1)
        self.opt_book_list_tooltips = QtWidgets.QCheckBox(self.main_interface_tab)
        self.opt_book_list_tooltips.setObjectName("opt_book_list_tooltips")
        self.gridLayout_9.addWidget(self.opt_book_list_tooltips, 7, 0, 1, 1)
        self.opt_color_palette_label = QtWidgets.QLabel(self.main_interface_tab)
        self.opt_color_palette_label.setObjectName("opt_color_palette_label")
        self.gridLayout_9.addWidget(self.opt_color_palette_label, 2, 0, 1, 1)
        self.opt_color_palette = QtWidgets.QComboBox(self.main_interface_tab)
        self.opt_color_palette.setObjectName("opt_color_palette")
        self.gridLayout_9.addWidget(self.opt_color_palette, 2, 1, 1, 1)
        icon = QtGui.QIcon.ic("lt.png")
        self.tabWidget.addTab(self.main_interface_tab, icon, "")
        self.cover_grid_tab = QtWidgets.QTabWidget()
        self.cover_grid_tab.setObjectName("cover_grid_tab")
        self.tab_5 = QtWidgets.QWidget()
        self.tab_5.setObjectName("tab_5")
        self.formLayout_2 = QtWidgets.QFormLayout(self.tab_5)
        self.formLayout_2.setFieldGrowthPolicy(QtWidgets.QFormLayout.FieldGrowthPolicy.ExpandingFieldsGrow)
        self.formLayout_2.setObjectName("formLayout_2")
        self.label_19 = QtWidgets.QLabel(self.tab_5)
        self.label_19.setWordWrap(True)
        self.label_19.setObjectName("label_19")
        self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.label_19)
        spacerItem1 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Fixed)
        self.formLayout_2.setItem(3, QtWidgets.QFormLayout.ItemRole.FieldRole, spacerItem1)
        self.label_14 = QtWidgets.QLabel(self.tab_5)
        self.label_14.setObjectName("label_14")
        self.formLayout_2.setWidget(5, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_14)
        self.opt_field_under_covers_in_grid = QtWidgets.QComboBox(self.tab_5)
        self.opt_field_under_covers_in_grid.setObjectName("opt_field_under_covers_in_grid")
        self.formLayout_2.setWidget(5, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_field_under_covers_in_grid)
        self.label_16 = QtWidgets.QLabel(self.tab_5)
        self.label_16.setObjectName("label_16")
        self.formLayout_2.setWidget(6, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_16)
        self.opt_cover_grid_spacing = QtWidgets.QDoubleSpinBox(self.tab_5)
        self.opt_cover_grid_spacing.setDecimals(2)
        self.opt_cover_grid_spacing.setSingleStep(0.1)
        self.opt_cover_grid_spacing.setObjectName("opt_cover_grid_spacing")
        self.formLayout_2.setWidget(6, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_cover_grid_spacing)
        self.cg_background_box = QtWidgets.QGroupBox(self.tab_5)
        self.cg_background_box.setObjectName("cg_background_box")
        self.gridLayout_5 = QtWidgets.QGridLayout(self.cg_background_box)
        self.gridLayout_5.setObjectName("gridLayout_5")
        self.formLayout_2.setWidget(7, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.cg_background_box)
        self.groupBox_4 = QtWidgets.QGroupBox(self.tab_5)
        self.groupBox_4.setObjectName("groupBox_4")
        self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_4)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.cover_size_label = QtWidgets.QLabel(self.groupBox_4)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.cover_size_label.sizePolicy().hasHeightForWidth())
        self.cover_size_label.setSizePolicy(sizePolicy)
        self.cover_size_label.setWordWrap(True)
        self.cover_size_label.setObjectName("cover_size_label")
        self.gridLayout_4.addWidget(self.cover_size_label, 0, 0, 1, 5)
        self.cover_grid_aspect_ratio = QtWidgets.QLabel(self.groupBox_4)
        self.cover_grid_aspect_ratio.setText("")
        self.cover_grid_aspect_ratio.setObjectName("cover_grid_aspect_ratio")
        self.gridLayout_4.addWidget(self.cover_grid_aspect_ratio, 3, 0, 1, 5)
        self.label_11 = QtWidgets.QLabel(self.groupBox_4)
        self.label_11.setObjectName("label_11")
        self.gridLayout_4.addWidget(self.label_11, 1, 0, 1, 1)
        self.opt_cover_grid_width = QtWidgets.QDoubleSpinBox(self.groupBox_4)
        self.opt_cover_grid_width.setDecimals(1)
        self.opt_cover_grid_width.setObjectName("opt_cover_grid_width")
        self.gridLayout_4.addWidget(self.opt_cover_grid_width, 1, 1, 1, 1)
        self.cover_grid_larger_cover = QtWidgets.QPushButton(self.groupBox_4)
        icon1 = QtGui.QIcon.ic("plus.png")
        self.cover_grid_larger_cover.setIcon(icon1)
        self.cover_grid_larger_cover.setObjectName("cover_grid_larger_cover")
        self.gridLayout_4.addWidget(self.cover_grid_larger_cover, 1, 2, 1, 1)
        self.label_12 = QtWidgets.QLabel(self.groupBox_4)
        self.label_12.setObjectName("label_12")
        self.gridLayout_4.addWidget(self.label_12, 2, 0, 1, 1)
        self.opt_cover_grid_height = QtWidgets.QDoubleSpinBox(self.groupBox_4)
        self.opt_cover_grid_height.setDecimals(1)
        self.opt_cover_grid_height.setObjectName("opt_cover_grid_height")
        self.gridLayout_4.addWidget(self.opt_cover_grid_height, 2, 1, 1, 1)
        self.cover_grid_smaller_cover = QtWidgets.QPushButton(self.groupBox_4)
        icon2 = QtGui.QIcon.ic("minus.png")
        self.cover_grid_smaller_cover.setIcon(icon2)
        self.cover_grid_smaller_cover.setObjectName("cover_grid_smaller_cover")
        self.gridLayout_4.addWidget(self.cover_grid_smaller_cover, 2, 2, 1, 1)
        self.cover_grid_reset_size = QtWidgets.QPushButton(self.groupBox_4)
        self.cover_grid_reset_size.setObjectName("cover_grid_reset_size")
        self.gridLayout_4.addWidget(self.cover_grid_reset_size, 1, 3, 2, 1)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.gridLayout_4.addItem(spacerItem2, 1, 4, 1, 1)
        self.formLayout_2.setWidget(10, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.groupBox_4)
        self.opt_emblem_size = QtWidgets.QSpinBox(self.tab_5)
        self.opt_emblem_size.setMinimum(16)
        self.opt_emblem_size.setMaximum(1000)
        self.opt_emblem_size.setObjectName("opt_emblem_size")
        self.formLayout_2.setWidget(11, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_emblem_size)
        self.label_21 = QtWidgets.QLabel(self.tab_5)
        self.label_21.setObjectName("label_21")
        self.formLayout_2.setWidget(11, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_21)
        self.opt_cover_grid_show_title = QtWidgets.QCheckBox(self.tab_5)
        self.opt_cover_grid_show_title.setObjectName("opt_cover_grid_show_title")
        self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.opt_cover_grid_show_title)
        self.label_22 = QtWidgets.QLabel(self.tab_5)
        self.label_22.setObjectName("label_22")
        self.formLayout_2.setWidget(12, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_22)
        self.opt_emblem_position = QtWidgets.QComboBox(self.tab_5)
        self.opt_emblem_position.setObjectName("opt_emblem_position")
        self.formLayout_2.setWidget(12, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_emblem_position)
        self.cover_grid_tab.addTab(self.tab_5, "")
        self.emblems_tab = QtWidgets.QWidget()
        self.emblems_tab.setObjectName("emblems_tab")
        self.cover_grid_tab.addTab(self.emblems_tab, "")
        self.tab_6 = QtWidgets.QWidget()
        self.tab_6.setObjectName("tab_6")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab_6)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.groupBox_3 = QtWidgets.QGroupBox(self.tab_6)
        self.groupBox_3.setObjectName("groupBox_3")
        self.gridLayout = QtWidgets.QGridLayout(self.groupBox_3)
        self.gridLayout.setObjectName("gridLayout")
        self.label_13 = QtWidgets.QLabel(self.groupBox_3)
        self.label_13.setWordWrap(True)
        self.label_13.setObjectName("label_13")
        self.gridLayout.addWidget(self.label_13, 0, 0, 1, 5)
        self.opt_cover_grid_disk_cache_size = QtWidgets.QSpinBox(self.groupBox_3)
        self.opt_cover_grid_disk_cache_size.setMinimum(100)
        self.opt_cover_grid_disk_cache_size.setSingleStep(100)
        self.opt_cover_grid_disk_cache_size.setObjectName("opt_cover_grid_disk_cache_size")
        self.gridLayout.addWidget(self.opt_cover_grid_disk_cache_size, 2, 2, 1, 1)
        self.cover_grid_empty_cache = QtWidgets.QPushButton(self.groupBox_3)
        self.cover_grid_empty_cache.setObjectName("cover_grid_empty_cache")
        self.gridLayout.addWidget(self.cover_grid_empty_cache, 4, 0, 1, 1)
        self.cover_grid_open_cache = QtWidgets.QPushButton(self.groupBox_3)
        self.cover_grid_open_cache.setObjectName("cover_grid_open_cache")
        self.gridLayout.addWidget(self.cover_grid_open_cache, 4, 1, 1, 1)
        spacerItem3 = QtWidgets.QSpacerItem(310, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.gridLayout.addItem(spacerItem3, 4, 2, 1, 3)
        spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridLayout.addItem(spacerItem4, 5, 1, 1, 1)
        spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.gridLayout.addItem(spacerItem5, 1, 3, 1, 1)
        self.label_15 = QtWidgets.QLabel(self.groupBox_3)
        self.label_15.setObjectName("label_15")
        self.gridLayout.addWidget(self.label_15, 1, 0, 1, 2)
        self.label_18 = QtWidgets.QLabel(self.groupBox_3)
        self.label_18.setObjectName("label_18")
        self.gridLayout.addWidget(self.label_18, 2, 0, 1, 2)
        self.opt_cover_grid_cache_size_multiple = QtWidgets.QSpinBox(self.groupBox_3)
        self.opt_cover_grid_cache_size_multiple.setMinimum(2)
        self.opt_cover_grid_cache_size_multiple.setMaximum(100)
        self.opt_cover_grid_cache_size_multiple.setObjectName("opt_cover_grid_cache_size_multiple")
        self.gridLayout.addWidget(self.opt_cover_grid_cache_size_multiple, 1, 2, 1, 1)
        self.cover_grid_current_disk_cache = QtWidgets.QLabel(self.groupBox_3)
        self.cover_grid_current_disk_cache.setText("")
        self.cover_grid_current_disk_cache.setObjectName("cover_grid_current_disk_cache")
        self.gridLayout.addWidget(self.cover_grid_current_disk_cache, 3, 2, 1, 1)
        self.verticalLayout_2.addWidget(self.groupBox_3)
        self.cover_grid_tab.addTab(self.tab_6, "")
        icon3 = QtGui.QIcon.ic("grid.png")
        self.tabWidget.addTab(self.cover_grid_tab, icon3, "")
        self.book_details_tab = QtWidgets.QWidget()
        self.book_details_tab.setObjectName("book_details_tab")
        self.gridLayout_6 = QtWidgets.QGridLayout(self.book_details_tab)
        self.gridLayout_6.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_6.setObjectName("gridLayout_6")
        self.groupBox_5 = QtWidgets.QGroupBox(self.book_details_tab)
        self.groupBox_5.setObjectName("groupBox_5")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.groupBox_5)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.opt_book_details_css = QtWidgets.QPlainTextEdit(self.groupBox_5)
        self.opt_book_details_css.setObjectName("opt_book_details_css")
        self.verticalLayout_3.addWidget(self.opt_book_details_css)
        self.gridLayout_6.addWidget(self.groupBox_5, 6, 0, 1, 1)
        self.id_links_button = QtWidgets.QPushButton(self.book_details_tab)
        self.id_links_button.setObjectName("id_links_button")
        self.gridLayout_6.addWidget(self.id_links_button, 5, 0, 1, 3)
        self.default_author_link_container = QtWidgets.QWidget(self.book_details_tab)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.default_author_link_container.sizePolicy().hasHeightForWidth())
        self.default_author_link_container.setSizePolicy(sizePolicy)
        self.default_author_link_container.setObjectName("default_author_link_container")
        self.gridLayout_6.addWidget(self.default_author_link_container, 3, 0, 1, 3)
        self.groupBox3 = QtWidgets.QGroupBox(self.book_details_tab)
        self.groupBox3.setObjectName("groupBox3")
        self.vblayout_3 = QtWidgets.QVBoxLayout(self.groupBox3)
        self.vblayout_3.setObjectName("vblayout_3")
        self.bd_vertical_cats = QtWidgets.QListView(self.groupBox3)
        self.bd_vertical_cats.setAlternatingRowColors(True)
        self.bd_vertical_cats.setObjectName("bd_vertical_cats")
        self.vblayout_3.addWidget(self.bd_vertical_cats)
        self.gridLayout_6.addWidget(self.groupBox3, 6, 2, 1, 1)
        self.groupBox = QtWidgets.QGroupBox(self.book_details_tab)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.df_down_button = QtWidgets.QToolButton(self.groupBox)
        icon4 = QtGui.QIcon.ic("arrow-down.png")
        self.df_down_button.setIcon(icon4)
        self.df_down_button.setObjectName("df_down_button")
        self.gridLayout_3.addWidget(self.df_down_button, 3, 1, 1, 1)
        self.df_up_button = QtWidgets.QToolButton(self.groupBox)
        icon5 = QtGui.QIcon.ic("arrow-up.png")
        self.df_up_button.setIcon(icon5)
        self.df_up_button.setObjectName("df_up_button")
        self.gridLayout_3.addWidget(self.df_up_button, 1, 1, 1, 1)
        spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridLayout_3.addItem(spacerItem6, 2, 1, 1, 1)
        self.field_display_order = ListViewWithMoveByKeyPress(self.groupBox)
        self.field_display_order.setAlternatingRowColors(True)
        self.field_display_order.setObjectName("field_display_order")
        self.gridLayout_3.addWidget(self.field_display_order, 1, 0, 3, 1)
        self.label_3 = QtWidgets.QLabel(self.groupBox)
        self.label_3.setWordWrap(True)
        self.label_3.setObjectName("label_3")
        self.gridLayout_3.addWidget(self.label_3, 4, 0, 1, 1)
        self.gridLayout_6.addWidget(self.groupBox, 6, 1, 1, 1)
        self.hboxlayout = QtWidgets.QHBoxLayout()
        self.hboxlayout.setObjectName("hboxlayout")
        self.opt_bd_show_cover = QtWidgets.QCheckBox(self.book_details_tab)
        self.opt_bd_show_cover.setObjectName("opt_bd_show_cover")
        self.hboxlayout.addWidget(self.opt_bd_show_cover)
        self.opt_bd_overlay_cover_size = QtWidgets.QCheckBox(self.book_details_tab)
        self.opt_bd_overlay_cover_size.setObjectName("opt_bd_overlay_cover_size")
        self.hboxlayout.addWidget(self.opt_bd_overlay_cover_size)
        self.opt_use_roman_numerals_for_series_number = QtWidgets.QCheckBox(self.book_details_tab)
        self.opt_use_roman_numerals_for_series_number.setChecked(True)
        self.opt_use_roman_numerals_for_series_number.setObjectName("opt_use_roman_numerals_for_series_number")
        self.hboxlayout.addWidget(self.opt_use_roman_numerals_for_series_number)
        spacerItem7 = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.hboxlayout.addItem(spacerItem7)
        self.gridLayout_6.addLayout(self.hboxlayout, 0, 0, 1, 3)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.label_25 = QtWidgets.QLabel(self.book_details_tab)
        self.label_25.setObjectName("label_25")
        self.horizontalLayout_2.addWidget(self.label_25)
        self.opt_book_details_comments_heading_pos = QtWidgets.QComboBox(self.book_details_tab)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.opt_book_details_comments_heading_pos.sizePolicy().hasHeightForWidth())
        self.opt_book_details_comments_heading_pos.setSizePolicy(sizePolicy)
        self.opt_book_details_comments_heading_pos.setObjectName("opt_book_details_comments_heading_pos")
        self.horizontalLayout_2.addWidget(self.opt_book_details_comments_heading_pos)
        self.gridLayout_6.addLayout(self.horizontalLayout_2, 1, 0, 1, 2)
        icon6 = QtGui.QIcon.ic("book.png")
        self.tabWidget.addTab(self.book_details_tab, icon6, "")
        self.edit_metadata_tab = QtWidgets.QWidget()
        self.edit_metadata_tab.setObjectName("edit_metadata_tab")
        self.vbox_layout_61 = QtWidgets.QVBoxLayout(self.edit_metadata_tab)
        self.vbox_layout_61.setContentsMargins(0, 0, 0, 0)
        self.vbox_layout_61.setObjectName("vbox_layout_61")
        self.formlayout = QtWidgets.QFormLayout()
        self.formlayout.setObjectName("formlayout")
        self.edit_metadata_single_label = QtWidgets.QLabel(self.edit_metadata_tab)
        self.edit_metadata_single_label.setObjectName("edit_metadata_single_label")
        self.formlayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.edit_metadata_single_label)
        self.opt_edit_metadata_single_layout = QtWidgets.QComboBox(self.edit_metadata_tab)
        self.opt_edit_metadata_single_layout.setObjectName("opt_edit_metadata_single_layout")
        self.formlayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_edit_metadata_single_layout)
        self.vbox_layout_61.addLayout(self.formlayout)
        self.groupBox1 = QtWidgets.QGroupBox(self.edit_metadata_tab)
        self.groupBox1.setObjectName("groupBox1")
        self.gridLayout_31 = QtWidgets.QGridLayout(self.groupBox1)
        self.gridLayout_31.setObjectName("gridLayout_31")
        self.em_down_button = QtWidgets.QToolButton(self.groupBox1)
        self.em_down_button.setIcon(icon4)
        self.em_down_button.setObjectName("em_down_button")
        self.gridLayout_31.addWidget(self.em_down_button, 3, 1, 1, 1)
        self.em_up_button = QtWidgets.QToolButton(self.groupBox1)
        self.em_up_button.setIcon(icon5)
        self.em_up_button.setObjectName("em_up_button")
        self.gridLayout_31.addWidget(self.em_up_button, 1, 1, 1, 1)
        spacerItem8 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridLayout_31.addItem(spacerItem8, 2, 1, 1, 1)
        self.em_display_order = ListViewWithMoveByKeyPress(self.groupBox1)
        self.em_display_order.setAlternatingRowColors(True)
        self.em_display_order.setObjectName("em_display_order")
        self.gridLayout_31.addWidget(self.em_display_order, 1, 0, 3, 1)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.em_reset_layout_button = QtWidgets.QPushButton(self.groupBox1)
        self.em_reset_layout_button.setObjectName("em_reset_layout_button")
        self.horizontalLayout_4.addWidget(self.em_reset_layout_button)
        self.em_import_layout_button = QtWidgets.QPushButton(self.groupBox1)
        self.em_import_layout_button.setObjectName("em_import_layout_button")
        self.horizontalLayout_4.addWidget(self.em_import_layout_button)
        self.em_export_layout_button = QtWidgets.QPushButton(self.groupBox1)
        self.em_export_layout_button.setObjectName("em_export_layout_button")
        self.horizontalLayout_4.addWidget(self.em_export_layout_button)
        spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.horizontalLayout_4.addItem(spacerItem9)
        self.gridLayout_31.addLayout(self.horizontalLayout_4, 5, 0, 1, 1)
        self.vbox_layout_61.addWidget(self.groupBox1)
        self.hboxlayout1 = QtWidgets.QHBoxLayout()
        self.hboxlayout1.setObjectName("hboxlayout1")
        self.formlayout1 = QtWidgets.QFormLayout()
        self.formlayout1.setObjectName("formlayout1")
        self.opt_edit_metadata_ignore_display_order = QtWidgets.QCheckBox(self.edit_metadata_tab)
        self.opt_edit_metadata_ignore_display_order.setObjectName("opt_edit_metadata_ignore_display_order")
        self.formlayout1.setWidget(0, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.opt_edit_metadata_ignore_display_order)
        self.opt_edit_metadata_elide_labels = QtWidgets.QCheckBox(self.edit_metadata_tab)
        self.opt_edit_metadata_elide_labels.setObjectName("opt_edit_metadata_elide_labels")
        self.formlayout1.setWidget(1, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.opt_edit_metadata_elide_labels)
        self.label_1023 = QtWidgets.QLabel(self.edit_metadata_tab)
        self.label_1023.setText("")
        self.label_1023.setObjectName("label_1023")
        self.formlayout1.setWidget(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_1023)
        self.hboxlayout2 = QtWidgets.QHBoxLayout()
        self.hboxlayout2.setObjectName("hboxlayout2")
        self.label_102 = QtWidgets.QLabel(self.edit_metadata_tab)
        self.label_102.setObjectName("label_102")
        self.hboxlayout2.addWidget(self.label_102)
        self.opt_edit_metadata_elision_point = QtWidgets.QComboBox(self.edit_metadata_tab)
        self.opt_edit_metadata_elision_point.setObjectName("opt_edit_metadata_elision_point")
        self.hboxlayout2.addWidget(self.opt_edit_metadata_elision_point)
        self.formlayout1.setLayout(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.hboxlayout2)
        self.opt_edit_metadata_templates_only_F2_on_booklist = QtWidgets.QCheckBox(self.edit_metadata_tab)
        self.opt_edit_metadata_templates_only_F2_on_booklist.setObjectName("opt_edit_metadata_templates_only_F2_on_booklist")
        self.formlayout1.setWidget(3, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.opt_edit_metadata_templates_only_F2_on_booklist)
        self.hboxlayout1.addLayout(self.formlayout1)
        self.formlayout2 = QtWidgets.QFormLayout()
        self.formlayout2.setObjectName("formlayout2")
        self.opt_edit_metadata_single_use_2_cols_for_custom_fields = QtWidgets.QCheckBox(self.edit_metadata_tab)
        self.opt_edit_metadata_single_use_2_cols_for_custom_fields.setObjectName("opt_edit_metadata_single_use_2_cols_for_custom_fields")
        self.formlayout2.setWidget(0, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.opt_edit_metadata_single_use_2_cols_for_custom_fields)
        self.label_1021 = QtWidgets.QLabel(self.edit_metadata_tab)
        self.label_1021.setObjectName("label_1021")
        self.formlayout2.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_1021)
        self.opt_edit_metadata_bulk_cc_label_length = QtWidgets.QSpinBox(self.edit_metadata_tab)
        self.opt_edit_metadata_bulk_cc_label_length.setObjectName("opt_edit_metadata_bulk_cc_label_length")
        self.formlayout2.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_edit_metadata_bulk_cc_label_length)
        self.label_1022 = QtWidgets.QLabel(self.edit_metadata_tab)
        self.label_1022.setObjectName("label_1022")
        self.formlayout2.setWidget(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_1022)
        self.opt_edit_metadata_single_cc_label_length = QtWidgets.QSpinBox(self.edit_metadata_tab)
        self.opt_edit_metadata_single_cc_label_length.setObjectName("opt_edit_metadata_single_cc_label_length")
        self.formlayout2.setWidget(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_edit_metadata_single_cc_label_length)
        self.hboxlayout1.addLayout(self.formlayout2)
        self.vbox_layout_61.addLayout(self.hboxlayout1)
        icon7 = QtGui.QIcon.ic("edit_input.png")
        self.tabWidget.addTab(self.edit_metadata_tab, icon7, "")
        self.tag_browser_tab = QtWidgets.QTabWidget()
        self.tag_browser_tab.setObjectName("tag_browser_tab")
        self.tb_tab1 = QtWidgets.QWidget()
        self.tb_tab1.setObjectName("tb_tab1")
        self.verticalLayout_42 = QtWidgets.QGridLayout(self.tb_tab1)
        self.verticalLayout_42.setObjectName("verticalLayout_42")
        self.label = QtWidgets.QLabel(self.tb_tab1)
        self.label.setObjectName("label")
        self.verticalLayout_42.addWidget(self.label, 0, 0, 1, 1)
        self.tb_display_order = ListViewWithMoveByKeyPress(self.tb_tab1)
        self.tb_display_order.setMinimumSize(QtCore.QSize(0, 200))
        self.tb_display_order.setAlternatingRowColors(True)
        self.tb_display_order.setObjectName("tb_display_order")
        self.verticalLayout_42.addWidget(self.tb_display_order, 1, 0, 3, 1)
        self.tb_up_button = QtWidgets.QToolButton(self.tb_tab1)
        self.tb_up_button.setIcon(icon5)
        self.tb_up_button.setObjectName("tb_up_button")
        self.verticalLayout_42.addWidget(self.tb_up_button, 1, 1, 1, 1)
        spacerItem10 = QtWidgets.QSpacerItem(50, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.verticalLayout_42.addItem(spacerItem10, 2, 1, 1, 1)
        self.tb_down_button = QtWidgets.QToolButton(self.tb_tab1)
        self.tb_down_button.setIcon(icon4)
        self.tb_down_button.setObjectName("tb_down_button")
        self.verticalLayout_42.addWidget(self.tb_down_button, 3, 1, 1, 1)
        self.horizontalLayout_41 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_41.setObjectName("horizontalLayout_41")
        self.tb_reset_layout_button = QtWidgets.QPushButton(self.tb_tab1)
        self.tb_reset_layout_button.setObjectName("tb_reset_layout_button")
        self.horizontalLayout_41.addWidget(self.tb_reset_layout_button)
        self.tb_import_layout_button = QtWidgets.QPushButton(self.tb_tab1)
        self.tb_import_layout_button.setObjectName("tb_import_layout_button")
        self.horizontalLayout_41.addWidget(self.tb_import_layout_button)
        self.tb_export_layout_button = QtWidgets.QPushButton(self.tb_tab1)
        self.tb_export_layout_button.setObjectName("tb_export_layout_button")
        self.horizontalLayout_41.addWidget(self.tb_export_layout_button)
        spacerItem11 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.horizontalLayout_41.addItem(spacerItem11)
        self.verticalLayout_42.addLayout(self.horizontalLayout_41, 4, 0, 1, 1)
        self.opt_show_avg_rating = QtWidgets.QCheckBox(self.tb_tab1)
        self.opt_show_avg_rating.setChecked(True)
        self.opt_show_avg_rating.setObjectName("opt_show_avg_rating")
        self.verticalLayout_42.addWidget(self.opt_show_avg_rating, 5, 0, 1, 1)
        self.opt_tag_browser_show_tooltips = QtWidgets.QCheckBox(self.tb_tab1)
        self.opt_tag_browser_show_tooltips.setObjectName("opt_tag_browser_show_tooltips")
        self.verticalLayout_42.addWidget(self.opt_tag_browser_show_tooltips, 5, 2, 1, 1)
        self.opt_tag_browser_show_counts = QtWidgets.QCheckBox(self.tb_tab1)
        self.opt_tag_browser_show_counts.setObjectName("opt_tag_browser_show_counts")
        self.verticalLayout_42.addWidget(self.opt_tag_browser_show_counts, 6, 0, 1, 1)
        self.opt_tag_browser_old_look = QtWidgets.QCheckBox(self.tb_tab1)
        self.opt_tag_browser_old_look.setObjectName("opt_tag_browser_old_look")
        self.verticalLayout_42.addWidget(self.opt_tag_browser_old_look, 6, 2, 1, 1)
        self.opt_tag_browser_hide_empty_categories = QtWidgets.QCheckBox(self.tb_tab1)
        self.opt_tag_browser_hide_empty_categories.setObjectName("opt_tag_browser_hide_empty_categories")
        self.verticalLayout_42.addWidget(self.opt_tag_browser_hide_empty_categories, 7, 0, 1, 1)
        self.opt_tag_browser_always_autocollapse = QtWidgets.QCheckBox(self.tb_tab1)
        self.opt_tag_browser_always_autocollapse.setObjectName("opt_tag_browser_always_autocollapse")
        self.verticalLayout_42.addWidget(self.opt_tag_browser_always_autocollapse, 7, 2, 1, 1)
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.opt_tag_browser_allow_keyboard_focus = QtWidgets.QCheckBox(self.tb_tab1)
        self.opt_tag_browser_allow_keyboard_focus.setObjectName("opt_tag_browser_allow_keyboard_focus")
        self.verticalLayout.addWidget(self.opt_tag_browser_allow_keyboard_focus)
        self.tb_focus_label = QtWidgets.QLabel(self.tb_tab1)
        self.tb_focus_label.setStyleSheet("margin-left: 1.5em")
        self.tb_focus_label.setWordWrap(True)
        self.tb_focus_label.setObjectName("tb_focus_label")
        self.verticalLayout.addWidget(self.tb_focus_label)
        self.verticalLayout_42.addLayout(self.verticalLayout, 8, 0, 1, 3)
        self.formLayout = QtWidgets.QFormLayout()
        self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.FieldGrowthPolicy.ExpandingFieldsGrow)
        self.formLayout.setObjectName("formLayout")
        self.label1 = QtWidgets.QLabel(self.tb_tab1)
        self.label1.setObjectName("label1")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label1)
        self.opt_tag_browser_item_padding = QtWidgets.QDoubleSpinBox(self.tb_tab1)
        self.opt_tag_browser_item_padding.setDecimals(1)
        self.opt_tag_browser_item_padding.setMinimum(-1.0)
        self.opt_tag_browser_item_padding.setMaximum(2.0)
        self.opt_tag_browser_item_padding.setSingleStep(0.1)
        self.opt_tag_browser_item_padding.setObjectName("opt_tag_browser_item_padding")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_tag_browser_item_padding)
        self.verticalLayout_42.addLayout(self.formLayout, 10, 0, 1, 3)
        self.tag_browser_tab.addTab(self.tb_tab1, "")
        self.tb_tab2 = QtWidgets.QWidget()
        self.tb_tab2.setObjectName("tb_tab2")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.tb_tab2)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.gridLayout_10 = QtWidgets.QGridLayout()
        self.gridLayout_10.setObjectName("gridLayout_10")
        self.formLayout1 = QtWidgets.QFormLayout()
        self.formLayout1.setFieldGrowthPolicy(QtWidgets.QFormLayout.FieldGrowthPolicy.ExpandingFieldsGrow)
        self.formLayout1.setObjectName("formLayout1")
        self.label_9 = QtWidgets.QLabel(self.tb_tab2)
        self.label_9.setObjectName("label_9")
        self.formLayout1.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_9)
        self.opt_tags_browser_partition_method = QtWidgets.QComboBox(self.tb_tab2)
        self.opt_tags_browser_partition_method.setObjectName("opt_tags_browser_partition_method")
        self.formLayout1.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_tags_browser_partition_method)
        self.label_10 = QtWidgets.QLabel(self.tb_tab2)
        self.label_10.setObjectName("label_10")
        self.formLayout1.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_10)
        self.opt_tags_browser_collapse_fl_at = QtWidgets.QSpinBox(self.tb_tab2)
        self.opt_tags_browser_collapse_fl_at.setMaximum(10000)
        self.opt_tags_browser_collapse_fl_at.setObjectName("opt_tags_browser_collapse_fl_at")
        self.formLayout1.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_tags_browser_collapse_fl_at)
        self.label_101 = QtWidgets.QLabel(self.tb_tab2)
        self.label_101.setObjectName("label_101")
        self.formLayout1.setWidget(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_101)
        self.opt_tags_browser_collapse_at = QtWidgets.QSpinBox(self.tb_tab2)
        self.opt_tags_browser_collapse_at.setMaximum(10000)
        self.opt_tags_browser_collapse_at.setObjectName("opt_tags_browser_collapse_at")
        self.formLayout1.setWidget(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.opt_tags_browser_collapse_at)
        self.gridLayout_10.addLayout(self.formLayout1, 0, 0, 1, 1)
        self.label2 = QtWidgets.QLabel(self.tb_tab2)
        self.label2.setObjectName("label2")
        self.gridLayout_10.addWidget(self.label2, 1, 0, 1, 1)
        self.tb_cats_to_partition = QtWidgets.QListView(self.tb_tab2)
        self.tb_cats_to_partition.setMinimumSize(QtCore.QSize(0, 200))
        self.tb_cats_to_partition.setAlternatingRowColors(True)
        self.tb_cats_to_partition.setObjectName("tb_cats_to_partition")
        self.gridLayout_10.addWidget(self.tb_cats_to_partition, 2, 0, 1, 1)
        self.horizontalLayout_41 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_41.setObjectName("horizontalLayout_41")
        self.tb_partition_reset_button = QtWidgets.QPushButton(self.tb_tab2)
        self.tb_partition_reset_button.setObjectName("tb_partition_reset_button")
        self.horizontalLayout_41.addWidget(self.tb_partition_reset_button)
        self.tb_partition_import_layout_button = QtWidgets.QPushButton(self.tb_tab2)
        self.tb_partition_import_layout_button.setObjectName("tb_partition_import_layout_button")
        self.horizontalLayout_41.addWidget(self.tb_partition_import_layout_button)
        self.tb_partition_export_layout_button = QtWidgets.QPushButton(self.tb_tab2)
        self.tb_partition_export_layout_button.setObjectName("tb_partition_export_layout_button")
        self.horizontalLayout_41.addWidget(self.tb_partition_export_layout_button)
        spacerItem12 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.horizontalLayout_41.addItem(spacerItem12)
        self.gridLayout_10.addLayout(self.horizontalLayout_41, 3, 0, 1, 1)
        self.verticalLayout_4.addLayout(self.gridLayout_10)
        self.tag_browser_tab.addTab(self.tb_tab2, "")
        self.tb_tab3 = QtWidgets.QWidget()
        self.tb_tab3.setObjectName("tb_tab3")
        self.gridlayout = QtWidgets.QGridLayout(self.tb_tab3)
        self.gridlayout.setObjectName("gridlayout")
        self.label3 = QtWidgets.QLabel(self.tb_tab3)
        self.label3.setObjectName("label3")
        self.gridlayout.addWidget(self.label3, 0, 0, 1, 1)
        self.tb_hierarchical_cats = QtWidgets.QListView(self.tb_tab3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(1)
        sizePolicy.setHeightForWidth(self.tb_hierarchical_cats.sizePolicy().hasHeightForWidth())
        self.tb_hierarchical_cats.setSizePolicy(sizePolicy)
        self.tb_hierarchical_cats.setMinimumSize(QtCore.QSize(0, 200))
        self.tb_hierarchical_cats.setAlternatingRowColors(True)
        self.tb_hierarchical_cats.setObjectName("tb_hierarchical_cats")
        self.gridlayout.addWidget(self.tb_hierarchical_cats, 1, 0, 3, 1)
        self.horizontalLayout_42 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_42.setObjectName("horizontalLayout_42")
        self.tb_hierarchy_reset_layout_button = QtWidgets.QPushButton(self.tb_tab3)
        self.tb_hierarchy_reset_layout_button.setObjectName("tb_hierarchy_reset_layout_button")
        self.horizontalLayout_42.addWidget(self.tb_hierarchy_reset_layout_button)
        self.tb_hierarchy_import_layout_button = QtWidgets.QPushButton(self.tb_tab3)
        self.tb_hierarchy_import_layout_button.setObjectName("tb_hierarchy_import_layout_button")
        self.horizontalLayout_42.addWidget(self.tb_hierarchy_import_layout_button)
        self.tb_hierarchy_export_layout_button = QtWidgets.QPushButton(self.tb_tab3)
        self.tb_hierarchy_export_layout_button.setObjectName("tb_hierarchy_export_layout_button")
        self.horizontalLayout_42.addWidget(self.tb_hierarchy_export_layout_button)
        spacerItem13 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.horizontalLayout_42.addItem(spacerItem13)
        self.gridlayout.addLayout(self.horizontalLayout_42, 4, 0, 1, 1)
        spacerItem14 = QtWidgets.QSpacerItem(0, 20, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridlayout.addItem(spacerItem14, 10, 0, 1, 1)
        self.label4 = QtWidgets.QLabel(self.tb_tab3)
        self.label4.setObjectName("label4")
        self.gridlayout.addWidget(self.label4, 11, 0, 1, 1)
        self.tb_search_order = ListWidgetWithMoveByKeyPress(self.tb_tab3)
        self.tb_search_order.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents)
        self.tb_search_order.setObjectName("tb_search_order")
        self.gridlayout.addWidget(self.tb_search_order, 12, 0, 3, 1)
        self.tb_search_order_up_button = QtWidgets.QToolButton(self.tb_tab3)
        self.tb_search_order_up_button.setIcon(icon5)
        self.tb_search_order_up_button.setObjectName("tb_search_order_up_button")
        self.gridlayout.addWidget(self.tb_search_order_up_button, 12, 1, 1, 1)
        spacerItem15 = QtWidgets.QSpacerItem(1, 1, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridlayout.addItem(spacerItem15, 13, 1, 1, 1)
        self.tb_search_order_down_button = QtWidgets.QToolButton(self.tb_tab3)
        self.tb_search_order_down_button.setIcon(icon4)
        self.tb_search_order_down_button.setObjectName("tb_search_order_down_button")
        self.gridlayout.addWidget(self.tb_search_order_down_button, 14, 1, 1, 1)
        self.horizontalLayout_43 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_43.setObjectName("horizontalLayout_43")
        self.tb_search_order_reset_button = QtWidgets.QPushButton(self.tb_tab3)
        self.tb_search_order_reset_button.setObjectName("tb_search_order_reset_button")
        self.horizontalLayout_43.addWidget(self.tb_search_order_reset_button)
        spacerItem16 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
        self.horizontalLayout_43.addItem(spacerItem16)
        self.gridlayout.addLayout(self.horizontalLayout_43, 15, 0, 1, 1)
        self.tag_browser_tab.addTab(self.tb_tab3, "")
        icon8 = QtGui.QIcon.ic("tags.png")
        self.tabWidget.addTab(self.tag_browser_tab, icon8, "")
        self.cover_browser_tab = QtWidgets.QWidget()
        self.cover_browser_tab.setObjectName("cover_browser_tab")
        self.gridLayout_11 = QtWidgets.QGridLayout(self.cover_browser_tab)
        self.gridLayout_11.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_11.setObjectName("gridLayout_11")
        self.opt_cb_fullscreen = QtWidgets.QCheckBox(self.cover_browser_tab)
        self.opt_cb_fullscreen.setObjectName("opt_cb_fullscreen")
        self.gridLayout_11.addWidget(self.opt_cb_fullscreen, 1, 0, 1, 1)
        self.opt_separate_cover_flow = QtWidgets.QCheckBox(self.cover_browser_tab)
        self.opt_separate_cover_flow.setObjectName("opt_separate_cover_flow")
        self.gridLayout_11.addWidget(self.opt_separate_cover_flow, 0, 0, 1, 3)
        self.opt_cover_flow_queue_length = QtWidgets.QSpinBox(self.cover_browser_tab)
        self.opt_cover_flow_queue_length.setObjectName("opt_cover_flow_queue_length")
        self.gridLayout_11.addWidget(self.opt_cover_flow_queue_length, 3, 1, 1, 2)
        self.label_6 = QtWidgets.QLabel(self.cover_browser_tab)
        self.label_6.setObjectName("label_6")
        self.gridLayout_11.addWidget(self.label_6, 3, 0, 1, 1)
        self.cover_browser_title_template_button = QtWidgets.QPushButton(self.cover_browser_tab)
        self.cover_browser_title_template_button.setObjectName("cover_browser_title_template_button")
        self.gridLayout_11.addWidget(self.cover_browser_title_template_button, 7, 2, 1, 1)
        spacerItem17 = QtWidgets.QSpacerItem(690, 20, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridLayout_11.addItem(spacerItem17, 11, 0, 1, 2)
        self.opt_cover_browser_title_template = QtWidgets.QLineEdit(self.cover_browser_tab)
        self.opt_cover_browser_title_template.setObjectName("opt_cover_browser_title_template")
        self.gridLayout_11.addWidget(self.opt_cover_browser_title_template, 7, 1, 1, 1)
        self.opt_cover_browser_reflections = QtWidgets.QCheckBox(self.cover_browser_tab)
        self.opt_cover_browser_reflections.setObjectName("opt_cover_browser_reflections")
        self.gridLayout_11.addWidget(self.opt_cover_browser_reflections, 4, 0, 1, 3)
        self.opt_cb_preserve_aspect_ratio = QtWidgets.QCheckBox(self.cover_browser_tab)
        self.opt_cb_preserve_aspect_ratio.setObjectName("opt_cb_preserve_aspect_ratio")
        self.gridLayout_11.addWidget(self.opt_cb_preserve_aspect_ratio, 5, 0, 1, 3)
        self.opt_cover_browser_subtitle_field = QtWidgets.QComboBox(self.cover_browser_tab)
        self.opt_cover_browser_subtitle_field.setObjectName("opt_cover_browser_subtitle_field")
        self.gridLayout_11.addWidget(self.opt_cover_browser_subtitle_field, 8, 1, 1, 2)
        self.label_23 = QtWidgets.QLabel(self.cover_browser_tab)
        self.label_23.setObjectName("label_23")
        self.gridLayout_11.addWidget(self.label_23, 7, 0, 1, 1)
        self.label_24 = QtWidgets.QLabel(self.cover_browser_tab)
        self.label_24.setObjectName("label_24")
        self.gridLayout_11.addWidget(self.label_24, 8, 0, 1, 1)
        self.fs_help_msg = QtWidgets.QLabel(self.cover_browser_tab)
        self.fs_help_msg.setStyleSheet("margin-left: 1.5em")
        self.fs_help_msg.setWordWrap(True)
        self.fs_help_msg.setObjectName("fs_help_msg")
        self.gridLayout_11.addWidget(self.fs_help_msg, 2, 0, 1, 1)
        self.label_26 = QtWidgets.QLabel(self.cover_browser_tab)
        self.label_26.setObjectName("label_26")
        self.gridLayout_11.addWidget(self.label_26, 9, 0, 1, 1)
        self.opt_books_autoscroll_time = QtWidgets.QDoubleSpinBox(self.cover_browser_tab)
        self.opt_books_autoscroll_time.setDecimals(1)
        self.opt_books_autoscroll_time.setMinimum(1.0)
        self.opt_books_autoscroll_time.setMaximum(100000.0)
        self.opt_books_autoscroll_time.setObjectName("opt_books_autoscroll_time")
        self.gridLayout_11.addWidget(self.opt_books_autoscroll_time, 9, 1, 1, 1)
        self.opt_cb_double_click_to_activate = QtWidgets.QCheckBox(self.cover_browser_tab)
        self.opt_cb_double_click_to_activate.setObjectName("opt_cb_double_click_to_activate")
        self.gridLayout_11.addWidget(self.opt_cb_double_click_to_activate, 6, 0, 1, 2)
        icon9 = QtGui.QIcon.ic("cover_flow.png")
        self.tabWidget.addTab(self.cover_browser_tab, icon9, "")
        self.quickview_tab = QtWidgets.QWidget()
        self.quickview_tab.setObjectName("quickview_tab")
        self.gridLayout_122 = QtWidgets.QGridLayout(self.quickview_tab)
        self.gridLayout_122.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_122.setObjectName("gridLayout_122")
        self.gridLayout_1221 = QtWidgets.QGridLayout()
        self.gridLayout_1221.setObjectName("gridLayout_1221")
        self.opt_qv_respects_vls = QtWidgets.QCheckBox(self.quickview_tab)
        self.opt_qv_respects_vls.setObjectName("opt_qv_respects_vls")
        self.gridLayout_1221.addWidget(self.opt_qv_respects_vls, 2, 0, 1, 1)
        self.opt_qv_follows_column = QtWidgets.QCheckBox(self.quickview_tab)
        self.opt_qv_follows_column.setObjectName("opt_qv_follows_column")
        self.gridLayout_1221.addWidget(self.opt_qv_follows_column, 2, 1, 1, 1)
        self.opt_qv_retkey_changes_column = QtWidgets.QCheckBox(self.quickview_tab)
        self.opt_qv_retkey_changes_column.setObjectName("opt_qv_retkey_changes_column")
        self.gridLayout_1221.addWidget(self.opt_qv_retkey_changes_column, 1, 0, 1, 1)
        self.opt_qv_dclick_changes_column = QtWidgets.QCheckBox(self.quickview_tab)
        self.opt_qv_dclick_changes_column.setObjectName("opt_qv_dclick_changes_column")
        self.gridLayout_1221.addWidget(self.opt_qv_dclick_changes_column, 1, 1, 1, 1)
        self.gridLayout_122.addLayout(self.gridLayout_1221, 1, 0, 1, 2)
        self.groupBox2 = QtWidgets.QGroupBox(self.quickview_tab)
        self.groupBox2.setObjectName("groupBox2")
        self.gridLayout_32 = QtWidgets.QGridLayout(self.groupBox2)
        self.gridLayout_32.setObjectName("gridLayout_32")
        self.qv_up_button = QtWidgets.QToolButton(self.groupBox2)
        self.qv_up_button.setIcon(icon5)
        self.qv_up_button.setObjectName("qv_up_button")
        self.gridLayout_32.addWidget(self.qv_up_button, 0, 1, 1, 1)
        self.qv_down_button = QtWidgets.QToolButton(self.groupBox2)
        self.qv_down_button.setIcon(icon4)
        self.qv_down_button.setObjectName("qv_down_button")
        self.gridLayout_32.addWidget(self.qv_down_button, 2, 1, 1, 1)
        self.qv_display_order = ListViewWithMoveByKeyPress(self.groupBox2)
        self.qv_display_order.setAlternatingRowColors(True)
        self.qv_display_order.setObjectName("qv_display_order")
        self.gridLayout_32.addWidget(self.qv_display_order, 0, 0, 3, 1)
        spacerItem18 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        self.gridLayout_32.addItem(spacerItem18, 1, 1, 1, 1)
        self.gridLayout_122.addWidget(self.groupBox2, 3, 0, 2, 1)
        icon10 = QtGui.QIcon.ic("quickview.png")
        self.tabWidget.addTab(self.quickview_tab, icon10, "")
        self.gridLayout_2.addWidget(self.tabWidget, 0, 1, 1, 1)
        self.sections_view = QtWidgets.QListWidget(Form)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.sections_view.sizePolicy().hasHeightForWidth())
        self.sections_view.setSizePolicy(sizePolicy)
        self.sections_view.setObjectName("sections_view")
        self.gridLayout_2.addWidget(self.sections_view, 0, 0, 1, 1)
        self.label_4.setBuddy(self.opt_book_list_extra_row_spacing)
        self.label_2.setBuddy(self.font_display)
        self.label_17.setBuddy(self.opt_gui_layout)
        self.label_widget_style.setBuddy(self.opt_ui_style)
        self.label_5.setBuddy(self.opt_toolbar_icon_size)
        self.label_8.setBuddy(self.opt_toolbar_text)
        self.label_7.setBuddy(self.opt_language)
        self.opt_color_palette_label.setBuddy(self.opt_color_palette)
        self.label_14.setBuddy(self.opt_field_under_covers_in_grid)
        self.label_16.setBuddy(self.opt_cover_grid_spacing)
        self.label_11.setBuddy(self.opt_cover_grid_width)
        self.label_12.setBuddy(self.opt_cover_grid_height)
        self.label_21.setBuddy(self.opt_emblem_size)
        self.label_22.setBuddy(self.opt_emblem_position)
        self.label_15.setBuddy(self.opt_cover_grid_cache_size_multiple)
        self.label_18.setBuddy(self.opt_cover_grid_disk_cache_size)
        self.label_25.setBuddy(self.opt_book_details_comments_heading_pos)
        self.edit_metadata_single_label.setBuddy(self.opt_edit_metadata_single_layout)
        self.label_102.setBuddy(self.opt_edit_metadata_elision_point)
        self.label_1021.setBuddy(self.opt_edit_metadata_bulk_cc_label_length)
        self.label_1022.setBuddy(self.opt_edit_metadata_single_cc_label_length)
        self.label.setBuddy(self.tb_display_order)
        self.label1.setBuddy(self.opt_tag_browser_item_padding)
        self.label_9.setBuddy(self.opt_tags_browser_partition_method)
        self.label_10.setBuddy(self.opt_tags_browser_collapse_fl_at)
        self.label_101.setBuddy(self.opt_tags_browser_collapse_at)
        self.label2.setBuddy(self.tb_cats_to_partition)
        self.label3.setBuddy(self.tb_hierarchical_cats)
        self.label4.setBuddy(self.tb_search_order)
        self.label_6.setBuddy(self.opt_cover_flow_queue_length)
        self.label_23.setBuddy(self.opt_cover_browser_title_template)
        self.label_24.setBuddy(self.opt_cover_browser_subtitle_field)
        self.label_26.setBuddy(self.opt_books_autoscroll_time)

        self.retranslateUi(Form)
        self.tabWidget.setCurrentIndex(0)
        self.cover_grid_tab.setCurrentIndex(0)
        self.opt_cover_grid_show_title.toggled['bool'].connect(self.opt_field_under_covers_in_grid.setEnabled) # type: ignore
        self.opt_tag_browser_allow_keyboard_focus.toggled['bool'].connect(self.tb_focus_label.setVisible) # type: ignore
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):

        Form.setWindowTitle(_("Form"))
        self.opt_show_layout_buttons.setText(_("Show &layout buttons in the status bar (needs restart)"))
        self.opt_systray_icon.setText(_("Enable s&ystem tray icon (needs restart)"))
        self.change_font_button.setText(_("Change &font (needs restart)"))
        self.icon_theme_button.setText(_("Change &icon theme"))
        self.label_4.setText(_("E&xtra spacing to add between rows in the book list (can be negative):"))
        self.opt_show_splash_screen.setText(_("Show the &splash screen at startup"))
        self.opt_book_list_extra_row_spacing.setSuffix(_(" px"))
        self.label_2.setText(_("&Interface font:"))
        self.label_17.setText(_("&User interface layout (needs restart):"))
        self.opt_booklist_grid.setText(_("Draw a &grid in the book list"))
        self.label_widget_style.setText(_("User interface style (&needs restart):"))
        self.opt_disable_animations.setToolTip(_("Disable all animations. Useful if you have a slow/old computer."))
        self.opt_disable_animations.setText(_("Disable &animations"))
        self.opt_dnd_merge.setText(_("Allow using &drag and drop to merge books"))
        self.opt_row_numbers_in_book_list.setText(_("Show &row numbers in the book list"))
        self.groupBox_2.setTitle(_("Toolbar"))
        self.label_5.setText(_("Icon si&ze:"))
        self.label_8.setText(_("Show &text under icons:"))
        self.opt_wrap_toolbar_text.setText(_("Use t&wo lines for the text under the icons (needs restart)"))
        self.opt_disable_tray_notification.setToolTip(_("Disable popup notifications when calibre completes jobs such a conversion, sending to device etc. The notifications are sent via the operating system notification facility, if available. Note that on Windows, you have to enable the system tray icon for notifications to work."))
        self.opt_disable_tray_notification.setText(_("Disable n&otifications on job completion"))
        self.label_7.setText(_("Choose &language (needs restart):"))
        self.opt_book_list_tooltips.setText(_("Show &tooltips in the book list"))
        self.opt_color_palette_label.setText(_("Color &palette (needs restart):"))
        self.opt_color_palette.setToolTip(_("<p>The colors to use for the calibre interface. By default the system colors are used. You can change this to force a light or dark color scheme. Note that if this is not set to system default then if the system wide color scheme is changed calibre will not follow it.\n"
"\n"
"<p>Also, if you set the calibre <i>User interface style</i> to <i>System default</i>, then this setting will not take effect and system colors will always be used."))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.main_interface_tab), _("&Main interface"))
        self.label_19.setText(_("Control the Cover grid view. You can enable this view by clicking the \"Layout\" button in the bottom right corner of the main calibre window."))
        self.label_14.setText(_("Field to show &under the covers:"))
        self.label_16.setText(_("Spac&ing between covers:"))
        self.opt_cover_grid_spacing.setToolTip(_("The spacing between covers. A value of zero means calculate automatically based on cover size."))
        self.opt_cover_grid_spacing.setSpecialValueText(_("Automatic"))
        self.opt_cover_grid_spacing.setSuffix(_(" cm"))
        self.cg_background_box.setTitle(_("Background for the Cover grid"))
        self.groupBox_4.setTitle(_("Cover size"))
        self.cover_size_label.setText(_("By default, calibre chooses a cover size based on your computer\'s screen size. You can change the cover size here:"))
        self.label_11.setText(_("Cover &width: "))
        self.opt_cover_grid_width.setToolTip(_("The width of displayed covers.\n"
"A value of zero means calculate automatically."))
        self.opt_cover_grid_width.setSpecialValueText(_("Automatic"))
        self.opt_cover_grid_width.setSuffix(_(" cm"))
        self.cover_grid_larger_cover.setToolTip(_("Make the covers larger, maintaining current aspect ratio."))
        self.cover_grid_larger_cover.setText(_("&Larger covers"))
        self.label_12.setText(_("Cover &height: "))
        self.opt_cover_grid_height.setToolTip(_("The height of displayed covers.\n"
"A value of zero means calculate automatically."))
        self.opt_cover_grid_height.setSpecialValueText(_("Automatic"))
        self.opt_cover_grid_height.setSuffix(_(" cm"))
        self.cover_grid_smaller_cover.setToolTip(_("Make the covers smaller, maintaining current aspect ratio."))
        self.cover_grid_smaller_cover.setText(_("&Smaller covers"))
        self.cover_grid_reset_size.setToolTip(_("Reset size to automatic"))
        self.cover_grid_reset_size.setText(_("&Reset size"))
        self.opt_emblem_size.setSuffix(_(" px"))
        self.label_21.setText(_("Size of the emblems (if any) shown &next to the covers: "))
        self.opt_cover_grid_show_title.setText(_("Show a &field (such as title) under the covers"))
        self.label_22.setText(_("&Location of the emblems shown next to the covers:"))
        self.cover_grid_tab.setTabText(self.cover_grid_tab.indexOf(self.tab_5), _("&Layout"))
        self.cover_grid_tab.setTabText(self.cover_grid_tab.indexOf(self.emblems_tab), _("&Emblems"))
        self.groupBox_3.setTitle(_("Caching of covers for improved performance"))
        self.label_13.setText(_("There are two kinds of caches that calibre uses to improve performance when rendering covers in the grid view. A disk cache that is kept on your hard disk and stores the cover thumbnails and an in memory cache used to ensure flicker free rendering of covers. For best results, keep the memory cache small and the disk cache large, unless you have a lot of extra RAM in your computer and don\'t mind it being used by the memory cache."))
        self.opt_cover_grid_disk_cache_size.setSpecialValueText(_("Disable"))
        self.opt_cover_grid_disk_cache_size.setSuffix(_(" MB"))
        self.cover_grid_empty_cache.setText(_("&Empty disk cache"))
        self.cover_grid_open_cache.setText(_("&Open cache folder"))
        self.label_15.setText(_("Number of screenfulls of covers to cache in &memory (keep this small):"))
        self.label_18.setText(_("Maximum amount of &disk space to use for caching thumbnails: "))
        self.opt_cover_grid_cache_size_multiple.setToolTip(_("The maximum number of screenfulls of thumbnails to keep in memory. Increasing this will make rendering faster, at the cost of more memory usage. Note that regardless of this setting, a minimum of one hundred thumbnails are always kept in memory, to ensure flicker free rendering."))
        self.cover_grid_tab.setTabText(self.cover_grid_tab.indexOf(self.tab_6), _("&Performance"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.cover_grid_tab), _("Cover &grid"))
        self.groupBox_5.setTitle(_("Text styling"))
        self.id_links_button.setText(_("Create rules to convert &identifiers into links"))
        self.groupBox3.setToolTip(_("<p>Check the box if you want the category\'s values displayed on separate lines instead of separated by commas</p>"))
        self.groupBox3.setTitle(_("Categories on separate lines"))
        self.groupBox.setTitle(_("Select displayed metadata"))
        self.df_down_button.setToolTip(_("Move down. Keyboard shortcut: Ctrl-Down arrow"))
        self.df_up_button.setToolTip(_("Move up. Keyboard shortcut: Ctrl-Up arrow"))
        self.label_3.setText(_("Note that <b>comments</b> will always be displayed at the end, regardless of the position you assign here."))
        self.opt_bd_show_cover.setText(_("Show &cover"))
        self.opt_bd_overlay_cover_size.setToolTip(_("Show the size of the book\'s cover in pixels"))
        self.opt_bd_overlay_cover_size.setText(_("Show cover &size"))
        self.opt_use_roman_numerals_for_series_number.setText(_("Use &Roman numerals for series"))
        self.label_25.setText(_("Show comments &heading:"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.book_details_tab), _("&Book details"))
        self.edit_metadata_single_label.setText(_("Edit metadata (single) &layout:"))
        self.opt_edit_metadata_single_layout.setToolTip(_("Choose a different layout for the Edit metadata dialog. The compact metadata layout favors editing custom metadata over changing covers and formats."))
        self.groupBox1.setTitle(_("Select the custom columns (for this library) to display in the edit metadata dialogs and their order:"))
        self.em_down_button.setToolTip(_("Move down. Keyboard shortcut: Ctrl-Down arrow"))
        self.em_up_button.setToolTip(_("Move up. Keyboard shortcut: Ctrl-Up arrow"))
        self.em_reset_layout_button.setToolTip(_("Click this button to reset the list to its default order."))
        self.em_reset_layout_button.setText(_("Reset list"))
        self.em_import_layout_button.setToolTip(_("<p>Click this button to set the list to one\n"
"previously exported. This could be useful if you have several libraries with\n"
"similar structure and you want to use the same column order for each one. Columns\n"
"in the imported list that aren\'t in the current library are ignored. Columns in\n"
"the library that are not in the imported list are put at the end and marked\n"
"as displayable.</p>"))
        self.em_import_layout_button.setText(_("Import list"))
        self.em_export_layout_button.setToolTip(_("<p>Click this button to write the current display\n"
"settings to a file. This could be useful if you have several libraries with similar\n"
"structure and you want to use the same column order for each one.</p>"))
        self.em_export_layout_button.setText(_("Export list"))
        self.opt_edit_metadata_ignore_display_order.setToolTip(_("<p>Check this box to make the edit metadata dialogs ignore the\n"
"above specifications, showing all the columns in the default order. This is\n"
"useful for temporarily seeing all your columns in the dialogs without losing\n"
"the display and order specifications.</p>"))
        self.opt_edit_metadata_ignore_display_order.setText(_("Show &all columns in default order when editing metadata"))
        self.opt_edit_metadata_elide_labels.setToolTip(_("If checked then labels wider than the label width\n"
"will be elided, otherwise they will be word wrapped."))
        self.opt_edit_metadata_elide_labels.setText(_("&Elide labels when editing custom columns"))
        self.label_102.setText(_("Elision point:"))
        self.opt_edit_metadata_elision_point.setToolTip(_("Choose where in the label to put the..."))
        self.opt_edit_metadata_templates_only_F2_on_booklist.setToolTip(_("<p>Check this box to disable editing the template for\n"
"a \"Column built from other columns\" in the book list when the column is entered\n"
"using the Tab key. The F2 (Edit) key will still open the template editor.</p>"))
        self.opt_edit_metadata_templates_only_F2_on_booklist.setText(_("&Tab key doesn\'t edit column templates in the book list"))
        self.opt_edit_metadata_single_use_2_cols_for_custom_fields.setText(_("Use &two columns for custom columns in the Default layout"))
        self.label_1021.setText(_("&Bulk edit custom column label length:"))
        self.opt_edit_metadata_bulk_cc_label_length.setToolTip(_("The maximum width of a custom column label for the bulk metadata edit dialog in average characters."))
        self.opt_edit_metadata_bulk_cc_label_length.setSuffix(_(" chars"))
        self.label_1022.setText(_("&Single edit custom column label length:"))
        self.opt_edit_metadata_single_cc_label_length.setToolTip(_("The maximum width of a custom column label for the single metadata edit dialog in average characters."))
        self.opt_edit_metadata_single_cc_label_length.setSuffix(_(" chars"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.edit_metadata_tab), _("Edit &metadata"))
        self.label.setToolTip(_("User categories and Saved searches cannot be moved"))
        self.label.setText(_("Select the categories to display in the Tag browser, and their &order"))
        self.tb_up_button.setToolTip(_("Move up. User categories and Saved searches cannot be moved. Keyboard shortcut: Ctrl-Up arrow"))
        self.tb_down_button.setToolTip(_("Move down. User categories and Saved searches cannot be moved. Keyboard shortcut: Ctrl-Down arrow"))
        self.tb_reset_layout_button.setToolTip(_("Click this button to reset the list to its default order."))
        self.tb_reset_layout_button.setText(_("Reset list"))
        self.tb_import_layout_button.setToolTip(_("<p>Click this button to set the list to one\n"
"previously exported. This could be useful if you have several libraries with\n"
"similar structure and you want to use the same column order for each one. Columns\n"
"in the imported list that aren\'t in the current library are ignored. Columns in\n"
"the library that are not in the imported list are put at the end and marked\n"
"as displayable.</p>"))
        self.tb_import_layout_button.setText(_("Import list"))
        self.tb_export_layout_button.setToolTip(_("<p>Click this button to write the current display\n"
"settings to a file. This could be useful if you have several libraries with similar\n"
"structure and you want to use the same column order for each one.</p>"))
        self.tb_export_layout_button.setText(_("Export list"))
        self.opt_show_avg_rating.setText(_("Show &average ratings"))
        self.opt_tag_browser_show_tooltips.setText(_("Show &tooltips"))
        self.opt_tag_browser_show_counts.setToolTip(_("<p>Show counts for items in the Tag browser. Such as the number of books\n"
"by each author, the number of authors, etc. If you turn it off, you can still\n"
"see the counts by hovering your mouse over any item.</p>"))
        self.opt_tag_browser_show_counts.setText(_("Show &counts"))
        self.opt_tag_browser_old_look.setText(_("Use &alternating row colors"))
        self.opt_tag_browser_hide_empty_categories.setToolTip(_("<p>When checked, calibre will automatically hide any category\n"
"(a column, custom or standard) that has no items to show. For example, some\n"
"categories might not have values when using Virtual libraries. Checking this\n"
"box will cause these empty categories to be hidden.</p>"))
        self.opt_tag_browser_hide_empty_categories.setText(_("Hide empt&y categories (columns)"))
        self.opt_tag_browser_always_autocollapse.setToolTip(_("<p>When checked, Find in the Tag browser will show all items\n"
"that match the search instead of the first one. If Hide empty categories is\n"
"also checked then only categories containing a matched item will be shown.</p>"))
        self.opt_tag_browser_always_autocollapse.setText(_("Find &shows all items that match"))
        self.opt_tag_browser_allow_keyboard_focus.setToolTip(_("<p>When checked, the Tag browser can get keyboard focus, allowing\n"
"use of the keyboard to navigate the tree using the arrow keys. The Enter key simulates\n"
"a click on the selected item. The keyboard shortcut \'Tag browser /\n"
"Give the Tag browser keyboard focus\' changes the keyboard focus without\n"
"using the mouse.</p>"))
        self.opt_tag_browser_allow_keyboard_focus.setText(_("Allow the Tag browser to have keyboard &focus"))
        self.tb_focus_label.setText(_("<p style=\"text-indent: 2em; font-size:smaller\">\n"
"If you enable this option then you should set a keyboard shortcut to\n"
"focus the Tag browser under\n"
"<code>Preferences-&gt;Shortcuts-&gt;Tag browser-&gt;Give\n"
"the Tag browser keyboard focus</code></p>"))
        self.label1.setText(_("Spacing between &items:"))
        self.opt_tag_browser_item_padding.setToolTip(_("<p>The spacing between consecutive items in the Tag browser.\n"
"In units of (ex) which is the approximate height of the letter \'x\' in the\n"
"currently used font.</p>"))
        self.opt_tag_browser_item_padding.setSuffix(_("ex"))
        self.tag_browser_tab.setTabText(self.tag_browser_tab.indexOf(self.tb_tab1), _("Di&splay"))
        self.label_9.setText(_("&Category partitioning method:"))
        self.opt_tags_browser_partition_method.setToolTip(_("<p>Choose how Tag browser subcategories are displayed when\n"
"there are more items than the limit. Select by first\n"
"letter to see an A, B, C list. Choose partitioned to\n"
"have a list of fixed-sized groups. Set to disabled\n"
"if you never want subcategories</p>"))
        self.label_10.setText(_("Combine letters &when fewer items than:"))
        self.opt_tags_browser_collapse_fl_at.setToolTip(_("<p>If collapsing by first letter, combine adjacent letters together if\n"
"there are fewer items under a letter than specified here. If the partition method is\n"
"not set to first letter, this value is ignored. Set to zero to disable.</p>"))
        self.label_101.setText(_("Co&llapse when more items than:"))
        self.opt_tags_browser_collapse_at.setToolTip(_("<p>If a Tag browser category has more than this number of items, it is divided\n"
"up into subcategories. If the partition method is set to disable, this value is ignored.</p>"))
        self.label2.setToolTip(_("<p>Check the box for categories that are to\n"
"be partitioned using the criteria above. Uncheck the box if you don\'t want to\n"
"partition a category even if the number of items is larger than\n"
"the value shown above. This option can be used to\n"
"avoid collapsing hierarchical categories that have only\n"
"a few top-level elements.</p>"))
        self.label2.setText(_("Select categories to &partition:"))
        self.tb_partition_reset_button.setToolTip(_("Click this button to reset the list to its default order."))
        self.tb_partition_reset_button.setText(_("Reset list"))
        self.tb_partition_import_layout_button.setToolTip(_("<p>Click this button to set the list to one\n"
"previously exported. This could be useful if you have several libraries with\n"
"similar structure and you want to use the same for each one.</p>"))
        self.tb_partition_import_layout_button.setText(_("Import list"))
        self.tb_partition_export_layout_button.setToolTip(_("<p>Click this button to write the current display\n"
"settings to a file. This could be useful if you have several libraries with similar\n"
"structure and you want to use the same for each one.</p>"))
        self.tb_partition_export_layout_button.setText(_("Export list"))
        self.tag_browser_tab.setTabText(self.tag_browser_tab.indexOf(self.tb_tab2), _("&Partitioning and collapsing"))
        self.label3.setToolTip(_("<p>Check the box for an item if it is to be displayed as a\n"
"hierarchical tree in the Tag browser. For example, if you check\n"
"\'tags\' then tags of the form \'Mystery.English\'\n"
"and \'Mystery.Thriller\' will be displayed with English and Thriller\n"
"both under \'Mystery\'. If \'tags\' is not checked\n"
"then the tags will be displayed each on their own line.</p>\n"
"<p>The categories \'authors\', \'publisher\', \'news\', \'formats\', and \'rating\'\n"
"cannot be hierarchical.</p>"))
        self.label3.setText(_("Select categories with &hierarchical items:"))
        self.tb_hierarchy_reset_layout_button.setToolTip(_("Click this button to reset the list to its default order."))
        self.tb_hierarchy_reset_layout_button.setText(_("Reset list"))
        self.tb_hierarchy_import_layout_button.setToolTip(_("<p>Click this button to set the list to one\n"
"previously exported. This could be useful if you have several libraries with\n"
"similar structure and you want to use the same for each one.</p>"))
        self.tb_hierarchy_import_layout_button.setText(_("Import list"))
        self.tb_hierarchy_export_layout_button.setToolTip(_("<p>Click this button to write the current display\n"
"settings to a file. This could be useful if you have several libraries with similar\n"
"structure and you want to use the same for each one.</p>"))
        self.tb_hierarchy_export_layout_button.setText(_("Export list"))
        self.label4.setToolTip(_("<p>Set the order of the searches when clicking on an item in\n"
"the Tag browser. The \'or its children\' options are ignored when clicking on\n"
"top-level categories, items that aren\'t in a hierarchical category, and items\n"
"that don\'t have children.</p>"))
        self.label4.setText(_("Set the &order of searches when clicking on items"))
        self.tb_search_order_up_button.setToolTip(_("Move up. Keyboard shortcut: Ctrl-Up arrow"))
        self.tb_search_order_down_button.setToolTip(_("Move down. Keyboard shortcut: Ctrl-Down arrow"))
        self.tb_search_order_reset_button.setToolTip(_("Click this button to reset the list to its default order."))
        self.tb_search_order_reset_button.setText(_("Reset list"))
        self.tag_browser_tab.setTabText(self.tag_browser_tab.indexOf(self.tb_tab3), _("&Hierarchy and searching"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tag_browser_tab), _("&Tag browser"))
        self.opt_cb_fullscreen.setText(_("When showing in a separate window, show it &fullscreen"))
        self.opt_separate_cover_flow.setText(_("Show in a &separate window (needs restart)"))
        self.label_6.setText(_("&Number of covers to show in browse mode (needs restart):"))
        self.cover_browser_title_template_button.setText(_("Template &editor"))
        self.opt_cover_browser_title_template.setToolTip(_("<p>The template used to generate the text below the covers. This template uses\n"
"the same syntax as save templates. Defaults to just the book title.\n"
"Note that this setting is per-library, which means that you have to\n"
"set it again for every different calibre library you use. Use an\n"
"empty template for no text.</p>"))
        self.opt_cover_browser_reflections.setText(_("Show &reflections"))
        self.opt_cb_preserve_aspect_ratio.setToolTip(_("Show covers in their original aspect ratio instead of resizing\n"
"them to all have the same width and height"))
        self.opt_cb_preserve_aspect_ratio.setText(_("Preserve &aspect ratio of covers"))
        self.label_23.setText(_("&Template for caption:"))
        self.label_24.setText(_("Fie&ld for sub-title:"))
        self.fs_help_msg.setText(_("You can press the %s key to toggle full screen mode."))
        self.label_26.setText(_("Show ne&xt cover during auto scroll after:"))
        self.opt_books_autoscroll_time.setSuffix(_(" seconds"))
        self.opt_cb_double_click_to_activate.setText(_("&Double click to view the central book, instead of single click"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.cover_browser_tab), _("Cover &browser"))
        self.opt_qv_respects_vls.setToolTip(_("<p>Check this box to make Quickview show books only in the\n"
"current Virtual library. If unchecked, Quickview ignores Virtual libraries. If\n"
"unchecked then only row changes are taken into account.</p>"))
        self.opt_qv_respects_vls.setText(_("&Apply Virtual libraries"))
        self.opt_qv_follows_column.setToolTip(_("<p>Check this box to make Quickview change the column being examined\n"
"when the column in the book list is changed using the cursor arrow keys</p>"))
        self.opt_qv_follows_column.setText(_("&Change Quickview item when book list column changes"))
        self.opt_qv_retkey_changes_column.setToolTip(_("<p>Pressing Enter in a cell changes both the book and the\n"
"column being examined (the left-hand panel)</p>"))
        self.opt_qv_retkey_changes_column.setText(_("&Pressing Enter changes the examined column"))
        self.opt_qv_dclick_changes_column.setToolTip(_("<p>Double-clicking in a cell changes both the book and the\n"
"column being examined (the left-hand panel)</p>"))
        self.opt_qv_dclick_changes_column.setText(_("&Double click changes examined column"))
        self.groupBox2.setTitle(_("Select columns to display"))
        self.qv_up_button.setToolTip(_("Move up. Keyboard shortcut: Ctrl-Up arrow"))
        self.qv_down_button.setToolTip(_("Move down. Keyboard shortcut: Ctrl-Down arrow"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.quickview_tab), _("&Quickview"))
from calibre.gui2.preferences import ListViewWithMoveByKeyPress, ListWidgetWithMoveByKeyPress
from calibre.gui2.widgets2 import ScrollingTabWidget
