From 901f1b1b747360fd258f180aea025a7a9068230c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 13 Sep 2019 13:52:46 +0530 Subject: [PATCH] Centralize all CSS used by book details --- resources/templates/book_details.css | 6 +++++ src/calibre/gui2/book_details.py | 29 ++++++++--------------- src/calibre/gui2/preferences/look_feel.py | 1 + 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/resources/templates/book_details.css b/resources/templates/book_details.css index a3cda723df..5cabf7dc96 100644 --- a/resources/templates/book_details.css +++ b/resources/templates/book_details.css @@ -1,3 +1,9 @@ +body, td { + background-color: transparent; +} + +body.horizontal table td.title { white-space: nowrap } + a { text-decoration: none; } diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index bf029f767e..1a22001e29 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -9,7 +9,7 @@ from functools import partial from PyQt5.Qt import ( QAction, QApplication, QColor, QEasingCurve, QIcon, QLayout, QMenu, - QMimeData, QPainter, QPalette, QPen, QPixmap, QPropertyAnimation, QRect, QSize, + QMimeData, QPainter, QPen, QPixmap, QPropertyAnimation, QRect, QSize, QSizePolicy, Qt, QUrl, QWidget, pyqtProperty, pyqtSignal ) @@ -99,7 +99,7 @@ def init_manage_action(ac, field, value): return ac -def render_html(mi, css, vertical, widget, all_fields=False, render_data_func=None, pref_name='book_display_fields'): # {{{ +def render_html(mi, vertical, widget, all_fields=False, render_data_func=None, pref_name='book_display_fields'): # {{{ func = render_data_func or render_data try: table, comment_fields = func(mi, all_fields=all_fields, @@ -116,27 +116,14 @@ def render_html(mi, css, vertical, widget, all_fields=False, render_data_func=No ans = unicode_type(col.name()) return ans - c = color_to_string(QApplication.palette().color(QPalette.Normal, - QPalette.WindowText)) templ = '''\ - - - - - + + %%s - '''%(c, css, 'normal' if vertical else 'nowrap') + '''%('vertical' if vertical else 'horizontal') comments = '' if comment_fields: comments = '\n'.join('
%s
' % x for x in comment_fields) @@ -568,6 +555,10 @@ class BookInfo(HTMLDisplay): ac.data = (None, None, None) ac.triggered.connect(self.remove_item_triggered) self.setFocusPolicy(Qt.NoFocus) + self.document().setDefaultStyleSheet(css()) + + def refresh_css(self): + self.document().setDefaultStyleSheet(css(True)) def remove_item_triggered(self): field, value, book_id = self.remove_item_action.data @@ -612,7 +603,7 @@ class BookInfo(HTMLDisplay): self.link_clicked.emit(link) def show_data(self, mi): - html = render_html(mi, css(), self.vertical, self.parent()) + html = render_html(mi, self.vertical, self.parent()) set_html(mi, html, self) def mouseDoubleClickEvent(self, ev): diff --git a/src/calibre/gui2/preferences/look_feel.py b/src/calibre/gui2/preferences/look_feel.py index b523ce842b..9fef7f94d0 100644 --- a/src/calibre/gui2/preferences/look_feel.py +++ b/src/calibre/gui2/preferences/look_feel.py @@ -782,6 +782,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): return rr def refresh_gui(self, gui): + gui.book_details.book_info.refresh_css() m = gui.library_view.model() m.beginResetModel(), m.endResetModel() self.update_font_display()