various cleanup

This commit is contained in:
un-pogaz 2025-01-31 13:17:08 +01:00
parent 4d6066163d
commit d121dde02a
15 changed files with 37 additions and 210 deletions

View File

@ -46,7 +46,6 @@ from calibre.ebooks.metadata.book.render import DEFAULT_AUTHOR_LINK
from calibre.ebooks.metadata.sources.prefs import msprefs
from calibre.gui2 import config, default_author_link, error_dialog, gprefs, icon_resource_manager, open_local_file, qt_app, question_dialog
from calibre.gui2.custom_column_widgets import get_field_list as em_get_field_list
from calibre.gui2.dialogs.quickview import get_qv_field_list
from calibre.gui2.library.alternate_views import CM_TO_INCH, auto_height
from calibre.gui2.preferences import ConfigWidgetBase, Setting, set_help_tips, test_widget
from calibre.gui2.preferences.coloring import EditRules
@ -255,106 +254,6 @@ class EMDisplayedFields(DisplayedFields): # {{{
# }}}
class QVDisplayedFields(DisplayedFields): # {{{
def __init__(self, db, parent=None):
DisplayedFields.__init__(self, db, parent)
def initialize(self, use_defaults=False):
self.beginResetModel()
self.fields = [[x[0], x[1]] for x in
get_qv_field_list(self.db.field_metadata, use_defaults=use_defaults)]
self.endResetModel()
self.changed = True
def commit(self):
if self.changed:
self.db.new_api.set_pref('qv_display_fields', self.fields)
# }}}
class TBDisplayedFields(DisplayedFields): # {{{
# The code in this class depends on the fact that the tag browser is
# initialized before this class is instantiated.
def __init__(self, db, parent=None, category_icons=None):
DisplayedFields.__init__(self, db, parent, category_icons=category_icons)
from calibre.gui2.ui import get_gui
self.gui = get_gui()
def initialize(self, use_defaults=False, pref_data_override=None):
tv = self.gui.tags_view
cat_ord = tv.model().get_ordered_categories(use_defaults=use_defaults,
pref_data_override=pref_data_override)
if use_defaults:
hc = []
self.changed = True
elif pref_data_override:
hc = [k for k,v in pref_data_override if not v]
self.changed = True
else:
hc = tv.hidden_categories
self.beginResetModel()
self.fields = [[x, x not in hc] for x in cat_ord]
self.endResetModel()
def commit(self):
if self.changed:
self.db.prefs.set('tag_browser_hidden_categories', [k for k,v in self.fields if not v])
self.db.prefs.set('tag_browser_category_order', [k for k,v in self.fields])
# }}}
class TBPartitionedFields(DisplayedFields): # {{{
# The code in this class depends on the fact that the tag browser is
# initialized before this class is instantiated.
def __init__(self, db, parent=None, category_icons=None):
DisplayedFields.__init__(self, db, parent, category_icons=category_icons)
from calibre.gui2.ui import get_gui
self.gui = get_gui()
def filter_user_categories(self, tv):
cats = tv.model().categories
answer = {}
filtered = set()
for key,name in cats.items():
if key.startswith('@'):
key = key.partition('.')[0]
name = key[1:]
if key not in filtered:
answer[key] = name
filtered.add(key)
return answer
def initialize(self, use_defaults=False, pref_data_override=None):
tv = self.gui.tags_view
cats = self.filter_user_categories(tv)
ans = []
if use_defaults:
ans = [[k, True] for k in cats.keys()]
self.changed = True
elif pref_data_override:
po = dict(pref_data_override)
ans = [[k, po.get(k, True)] for k in cats.keys()]
self.changed = True
else:
# Check if setting not migrated yet
cats_to_partition = frozenset(self.db.prefs.get('tag_browser_dont_collapse', gprefs.get('tag_browser_dont_collapse')) or ())
for key in cats:
ans.append([key, key not in cats_to_partition])
self.beginResetModel()
self.fields = ans
self.endResetModel()
def commit(self):
if self.changed:
# Migrate to a per-library setting
self.db.prefs.set('tag_browser_dont_collapse', [k for k,v in self.fields if not v])
# }}}
class BDVerticalCats(DisplayedFields): # {{{
def __init__(self, db, parent=None, category_icons=None):
@ -768,7 +667,6 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
self.display_model.restore_defaults()
self.em_display_model.restore_defaults()
self.bd_vertical_cats_model.restore_defaults()
gprefs.set('tb_search_order', gprefs.defaults['tb_search_order'])
self.edit_rules.clear()
self.icon_rules.clear()
self.grid_rules.clear()
@ -864,8 +762,6 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
m.update_db_prefs_cache()
m.beginResetModel(), m.endResetModel()
self.update_font_display()
gui.tags_view.set_look_and_feel()
gui.tags_view.reread_collapse_parameters()
gui.tags_view.model().reset_tag_browser()
gui.library_view.refresh_book_details(force=True)
gui.library_view.refresh_grid()

View File

@ -1366,11 +1366,6 @@ columns". Editing with mouse clicks and the Tab key will be disabled.</p
<extends>QListView</extends>
<header>calibre/gui2/preferences.h</header>
</customwidget>
<customwidget>
<class>ListWidgetWithMoveByKeyPress</class>
<extends>QListWidget</extends>
<header>calibre/gui2/preferences.h</header>
</customwidget>
<customwidget>
<class>ScrollingTabWidget</class>
<extends>QTabWidget</extends>
@ -1378,39 +1373,39 @@ columns&quot;. Editing with mouse clicks and the Tab key will be disabled.&lt;/p
<container>1</container>
</customwidget>
<customwidget>
<class>ConfigWidget</class>
<class>ConfigWidgetBase</class>
<extends>QWidget</extends>
<header>calibre/gui2/preferences/look_feel.h</header>
<header>calibre/gui2/preferences/look_feel_tabs.h</header>
</customwidget>
<customwidget>
<class>TbDisplayTab</class>
<extends>ConfigWidget</extends>
<header>calibre/gui2/preferences/look_feel_tabs.tb_display.h</header>
<extends>ConfigWidgetBase</extends>
<header>calibre/gui2/preferences/look_feel_tabs/tb_display.h</header>
</customwidget>
<customwidget>
<class>TbPartitioningTab</class>
<extends>ConfigWidget</extends>
<header>calibre/gui2/preferences/look_feel_tabs.tb_partitioning.h</header>
<extends>ConfigWidgetBase</extends>
<header>calibre/gui2/preferences/look_feel_tabs/tb_partitioning.h</header>
</customwidget>
<customwidget>
<class>TbIconRulesTab</class>
<extends>ConfigWidget</extends>
<header>calibre/gui2/preferences/look_feel_tabs.tb_icon_rules.h</header>
<extends>ConfigWidgetBase</extends>
<header>calibre/gui2/preferences/look_feel_tabs/tb_icon_rules.h</header>
</customwidget>
<customwidget>
<class>TbHierarchyTab</class>
<extends>ConfigWidget</extends>
<header>calibre/gui2/preferences/look_feel_tabs.tb_hierarchy.h</header>
<extends>ConfigWidgetBase</extends>
<header>calibre/gui2/preferences/look_feel_tabs/tb_hierarchy.h</header>
</customwidget>
<customwidget>
<class>CoverView</class>
<extends>ConfigWidget</extends>
<header>calibre/gui2/preferences/look_feel_tabs.cover_view.h</header>
<extends>ConfigWidgetBase</extends>
<header>calibre/gui2/preferences/look_feel_tabs/cover_view.h</header>
</customwidget>
<customwidget>
<class>QuickviewTab</class>
<extends>ConfigWidget</extends>
<header>calibre/gui2/preferences/look_feel_tabs.quickview.h</header>
<extends>ConfigWidgetBase</extends>
<header>calibre/gui2/preferences/look_feel_tabs/quickview.h</header>
</customwidget>
</customwidgets>
<resources>

View File

@ -13,7 +13,7 @@ from calibre.gui2 import choose_files, choose_save_file, error_dialog
from calibre.gui2.book_details import get_field_list
class DisplayedFields(QAbstractListModel): # {{{
class DisplayedFields(QAbstractListModel):
def __init__(self, db, parent=None, pref_name=None, category_icons=None):
self.pref_name = pref_name or 'book_display_fields'
@ -154,5 +154,3 @@ def move_field_down(widget, model):
sm = widget.selectionModel()
sm.select(idx, QItemSelectionModel.SelectionFlag.ClearAndSelect)
widget.setCurrentIndex(idx)
# }}}

View File

@ -10,7 +10,7 @@ from qt.core import QKeySequence
from calibre.gui2 import config, gprefs
from calibre.gui2.dialogs.template_dialog import TemplateDialog
from calibre.gui2.preferences import ConfigWidgetBase, LazyConfigWidgetBase, set_help_tips
from calibre.gui2.preferences import LazyConfigWidgetBase, set_help_tips
from calibre.gui2.preferences.look_feel_tabs.cover_view_ui import Ui_Form
@ -41,8 +41,6 @@ class CoverView(LazyConfigWidgetBase, Ui_Form):
self.fs_help_msg.setText(self.fs_help_msg.text()%(
QKeySequence(QKeySequence.StandardKey.FullScreen).toString(QKeySequence.SequenceFormat.NativeText)))
def lazy_initialize(self):
ConfigWidgetBase.initialize(self)
set_help_tips(self.opt_cover_browser_narrow_view_position, _(
'This option controls the position of the cover browser when using the Narrow user '
'interface layout. "Automatic" will place the cover browser on top or on the right '
@ -64,12 +62,6 @@ class CoverView(LazyConfigWidgetBase, Ui_Form):
if t.exec():
self.opt_cover_browser_title_template.setText(t.rule[1])
def commit(self):
return ConfigWidgetBase.commit(self)
def restore_defaults(self):
ConfigWidgetBase.restore_defaults(self)
def refresh_gui(self, gui):
gui.cover_flow.setShowReflections(gprefs['cover_browser_reflections'])
gui.cover_flow.setPreserveAspectRatio(gprefs['cb_preserve_aspect_ratio'])

View File

@ -2,13 +2,6 @@
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="cover_browser_tab">
<attribute name="icon">
<iconset resource="../../../../resources/images.qrc">
<normaloff>:/images/cover_flow.png</normaloff>:/images/cover_flow.png</iconset>
</attribute>
<attribute name="title">
<string>Cover &amp;browser</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_cover_browser">
<property name="leftMargin">
<number>0</number>

View File

@ -10,12 +10,12 @@ from functools import partial
from calibre.gui2 import gprefs
from calibre.gui2.actions.show_quickview import get_quickview_action_plugin
from calibre.gui2.dialogs.quickview import get_qv_field_list
from calibre.gui2.preferences import ConfigWidgetBase, LazyConfigWidgetBase
from calibre.gui2.preferences import LazyConfigWidgetBase
from calibre.gui2.preferences.look_feel_tabs import DisplayedFields, move_field_down, move_field_up
from calibre.gui2.preferences.look_feel_tabs.quickview_ui import Ui_Form
class QVDisplayedFields(DisplayedFields): # {{{
class QVDisplayedFields(DisplayedFields):
def __init__(self, db, parent=None):
DisplayedFields.__init__(self, db, parent)
@ -31,8 +31,6 @@ class QVDisplayedFields(DisplayedFields): # {{{
if self.changed:
self.db.new_api.set_pref('qv_display_fields', self.fields)
# }}}
class QuickviewTab(LazyConfigWidgetBase, Ui_Form):
@ -59,7 +57,7 @@ class QuickviewTab(LazyConfigWidgetBase, Ui_Form):
self.qv_display_model.initialize()
def restore_defaults(self):
ConfigWidgetBase.restore_defaults(self)
LazyConfigWidgetBase.restore_defaults(self)
self.qv_display_model.restore_defaults()
def refresh_gui(self, gui):
@ -67,7 +65,6 @@ class QuickviewTab(LazyConfigWidgetBase, Ui_Form):
if qv:
qv.refill_quickview()
def commit(self, *args):
rr = ConfigWidgetBase.commit(self, *args)
def commit(self):
self.qv_display_model.commit()
return rr
return LazyConfigWidgetBase.commit(self)

View File

@ -2,10 +2,6 @@
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="cover_browser_tab">
<attribute name="icon">
<iconset resource="../../../../resources/images.qrc">
<normaloff>:/images/cover_flow.png</normaloff>:/images/cover_flow.png</iconset>
</attribute>
<layout class="QGridLayout" name="gridLayout_122">
<item row="1" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout_122">

View File

@ -9,12 +9,12 @@ from functools import partial
from calibre.db.categories import is_standard_category
from calibre.gui2 import config, gprefs
from calibre.gui2.preferences import ConfigWidgetBase, LazyConfigWidgetBase
from calibre.gui2.preferences import LazyConfigWidgetBase
from calibre.gui2.preferences.look_feel_tabs import DisplayedFields, export_layout, import_layout, move_field_down, move_field_up, reset_layout
from calibre.gui2.preferences.look_feel_tabs.tb_display_ui import Ui_Form
class TBDisplayedFields(DisplayedFields): # {{{
class TBDisplayedFields(DisplayedFields):
# The code in this class depends on the fact that the tag browser is
# initialized before this class is instantiated.
@ -44,7 +44,6 @@ class TBDisplayedFields(DisplayedFields): # {{{
if self.changed:
self.db.prefs.set('tag_browser_hidden_categories', [k for k,v in self.fields if not v])
self.db.prefs.set('tag_browser_category_order', [k for k,v in self.fields])
# }}}
class TbDisplayTab(LazyConfigWidgetBase, Ui_Form):
@ -104,9 +103,12 @@ class TbDisplayTab(LazyConfigWidgetBase, Ui_Form):
move_field_up(self.tb_display_order, model)
def restore_defaults(self):
ConfigWidgetBase.restore_defaults(self)
LazyConfigWidgetBase.restore_defaults(self)
self.tb_display_model.restore_defaults()
def commit(self):
self.tb_display_model.commit()
return ConfigWidgetBase.commit(self)
return LazyConfigWidgetBase.commit(self)
def refresh_gui(self, gui):
gui.tags_view.set_look_and_feel()

View File

@ -2,17 +2,6 @@
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1096</width>
<height>791</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="verticalLayout_42">
<item row="0" column="0">
<widget class="QLabel" name="label">

View File

@ -16,7 +16,7 @@ from calibre.gui2.preferences.look_feel_tabs import DisplayedFields
from calibre.gui2.preferences.look_feel_tabs.tb_hierarchy_ui import Ui_Form
class TBHierarchicalFields(DisplayedFields): # {{{
class TBHierarchicalFields(DisplayedFields):
# The code in this class depends on the fact that the tag browser is
# initialized before this class is instantiated.
@ -51,7 +51,6 @@ class TBHierarchicalFields(DisplayedFields): # {{{
def commit(self):
if self.changed:
self.db.prefs.set('categories_using_hierarchy', [k for k,v in self.fields if v])
# }}}
class TbHierarchyTab(LazyConfigWidgetBase, Ui_Form):
@ -175,3 +174,4 @@ class TbHierarchyTab(LazyConfigWidgetBase, Ui_Form):
def commit(self):
self.tb_search_order_commit()
self.tb_hierarchical_cats_model.commit()
return LazyConfigWidgetBase.commit(self)

View File

@ -2,17 +2,6 @@
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1035</width>
<height>547</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">

View File

@ -2,17 +2,6 @@
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1035</width>
<height>547</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout">
<item>
<layout class="QHBoxLayout">

View File

@ -9,12 +9,12 @@ __docformat__ = 'restructuredtext en'
from functools import partial
from calibre.gui2 import gprefs
from calibre.gui2.preferences import ConfigWidgetBase, LazyConfigWidgetBase
from calibre.gui2.preferences import LazyConfigWidgetBase
from calibre.gui2.preferences.look_feel_tabs import DisplayedFields, export_layout, import_layout, reset_layout
from calibre.gui2.preferences.look_feel_tabs.tb_partitioning_ui import Ui_Form
class TBPartitionedFields(DisplayedFields): # {{{
class TBPartitionedFields(DisplayedFields):
# The code in this class depends on the fact that the tag browser is
# initialized before this class is instantiated.
@ -60,7 +60,6 @@ class TBPartitionedFields(DisplayedFields): # {{{
if self.changed:
# Migrate to a per-library setting
self.db.prefs.set('tag_browser_dont_collapse', [k for k,v in self.fields if not v])
# }}}
class TbPartitioningTab(LazyConfigWidgetBase, Ui_Form):
@ -92,4 +91,7 @@ class TbPartitioningTab(LazyConfigWidgetBase, Ui_Form):
def commit(self):
self.tb_categories_to_part_model.commit()
return ConfigWidgetBase.commit(self)
return LazyConfigWidgetBase.commit(self)
def refresh_gui(self, gui):
gui.tags_view.reread_collapse_parameters()

View File

@ -2,17 +2,6 @@
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1035</width>
<height>547</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QGridLayout" name="gridLayout_10">

View File

@ -397,7 +397,7 @@ class Preferences(QDialog):
def commit(self, *args):
# Commit the child widgets first in case the main widget uses the information
must_restart = bool(self.showing_widget.do_on_child_tabs('commit')) | self.showing_widget.commit()
must_restart = bool(self.showing_widget.do_on_child_tabs('commit')) | bool(self.showing_widget.commit())
rc = self.showing_widget.restart_critical
self.committed = True
do_restart = False