mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Nicer styling for the ToC panel in the ebook viewer
This commit is contained in:
parent
260e5a9e08
commit
9e51ab957c
@ -24,7 +24,7 @@
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QTreeView" name="toc"/>
|
||||
<widget class="TOCView" name="toc"/>
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
@ -322,6 +322,11 @@
|
||||
<header>calibre/gui2/viewer/documentview.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>TOCView</class>
|
||||
<extends>QTreeView</extends>
|
||||
<header>calibre/gui2/viewer/toc.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
<include location="../../../../resources/images.qrc"/>
|
||||
|
@ -9,10 +9,41 @@ __docformat__ = 'restructuredtext en'
|
||||
|
||||
import re
|
||||
from PyQt4.Qt import (QStandardItem, QStandardItemModel, Qt, QFont,
|
||||
QApplication)
|
||||
QTreeView)
|
||||
|
||||
from calibre.ebooks.metadata.toc import TOC as MTOC
|
||||
|
||||
class TOCView(QTreeView):
|
||||
|
||||
def __init__(self, *args):
|
||||
QTreeView.__init__(self, *args)
|
||||
self.setAttribute(Qt.WA_OpaquePaintEvent, False)
|
||||
self.setStyleSheet('''
|
||||
QTreeView {
|
||||
background-color: palette(window);
|
||||
color: palette(text);
|
||||
}
|
||||
QTreeView::item {
|
||||
border: none;
|
||||
padding-top:0.5ex;
|
||||
padding-bottom:0.5ex;
|
||||
}
|
||||
|
||||
QTreeView::item:hover {
|
||||
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1);
|
||||
border: 1px solid #bfcde4;
|
||||
}
|
||||
QHeaderView::section {
|
||||
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
|
||||
stop:0 #616161, stop: 0.5 #505050,
|
||||
stop: 0.6 #434343, stop:1 #656565);
|
||||
color: white;
|
||||
padding-left: 4px;
|
||||
border: 1px solid #6c6c6c;
|
||||
font-weight: bold;
|
||||
}
|
||||
''')
|
||||
|
||||
class TOCItem(QStandardItem):
|
||||
|
||||
def __init__(self, spine, toc, depth, all_items, parent=None):
|
||||
@ -25,9 +56,6 @@ class TOCItem(QStandardItem):
|
||||
self.abspath = toc.abspath
|
||||
self.fragment = toc.fragment
|
||||
all_items.append(self)
|
||||
p = QApplication.palette()
|
||||
self.base = p.base()
|
||||
self.alternate_base = p.alternateBase()
|
||||
self.bold_font = QFont(self.font())
|
||||
self.bold_font.setBold(True)
|
||||
self.normal_font = self.font()
|
||||
@ -105,8 +133,6 @@ class TOCItem(QStandardItem):
|
||||
self.is_being_viewed = is_being_viewed
|
||||
if changed:
|
||||
self.setFont(self.bold_font if is_being_viewed else self.normal_font)
|
||||
self.setBackground(self.alternate_base if is_being_viewed else
|
||||
self.base)
|
||||
|
||||
def __repr__(self):
|
||||
return 'TOC Item: %s %s#%s'%(self.title, self.abspath, self.fragment)
|
||||
|
Loading…
x
Reference in New Issue
Block a user