mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-31 14:33:54 -04:00
Edit book: Reports: Fix sorting by name of CSS rules
This commit is contained in:
parent
ecf422e450
commit
3b094d798c
@ -1018,12 +1018,14 @@ class CSSRulesModel(QAbstractItemModel):
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
def data(self, index, role=Qt.ItemDataRole.DisplayRole):
|
def data(self, index, role=Qt.ItemDataRole.DisplayRole):
|
||||||
|
if index.column() != 0:
|
||||||
|
return
|
||||||
if role == SORT_ROLE:
|
if role == SORT_ROLE:
|
||||||
entry = self.index_to_entry(index)
|
entry = self.index_to_entry(index)
|
||||||
if isinstance(entry, CSSEntry):
|
if isinstance(entry, CSSEntry):
|
||||||
return entry.count if self.sort_on_count else entry.sort_key
|
return entry.count if self.sort_on_count else QByteArray(entry.sort_key)
|
||||||
if isinstance(entry, CSSFileMatch):
|
if isinstance(entry, CSSFileMatch):
|
||||||
return len(entry.locations) if self.sort_on_count else entry.sort_key
|
return len(entry.locations) if self.sort_on_count else QByteArray(entry.sort_key)
|
||||||
if isinstance(entry, MatchLocation):
|
if isinstance(entry, MatchLocation):
|
||||||
return entry.sourceline
|
return entry.sourceline
|
||||||
elif role == Qt.ItemDataRole.DisplayRole:
|
elif role == Qt.ItemDataRole.DisplayRole:
|
||||||
@ -1099,6 +1101,7 @@ class CSSWidget(QWidget):
|
|||||||
e.setClearButtonEnabled(True)
|
e.setClearButtonEnabled(True)
|
||||||
self.model = m = self.MODEL(self)
|
self.model = m = self.MODEL(self)
|
||||||
self.proxy = p = self.PROXY(self)
|
self.proxy = p = self.PROXY(self)
|
||||||
|
m.sort_on_count = self.read_state('sort-on-counts', True)
|
||||||
p.setSourceModel(m)
|
p.setSourceModel(m)
|
||||||
self.view = f = QTreeView(self)
|
self.view = f = QTreeView(self)
|
||||||
f.setAlternatingRowColors(True)
|
f.setAlternatingRowColors(True)
|
||||||
@ -1111,10 +1114,10 @@ class CSSWidget(QWidget):
|
|||||||
l.addLayout(h)
|
l.addLayout(h)
|
||||||
h.addWidget(QLabel(_('Sort by:')))
|
h.addWidget(QLabel(_('Sort by:')))
|
||||||
self.counts_button = b = QRadioButton(_('&Counts'), self)
|
self.counts_button = b = QRadioButton(_('&Counts'), self)
|
||||||
b.setChecked(self.read_state('sort-on-counts', True))
|
b.setChecked(m.sort_on_count)
|
||||||
h.addWidget(b)
|
h.addWidget(b)
|
||||||
self.name_button = b = QRadioButton(_('&Name'), self)
|
self.name_button = b = QRadioButton(_('&Name'), self)
|
||||||
b.setChecked(not self.read_state('sort-on-counts', True))
|
b.setChecked(not m.sort_on_count)
|
||||||
h.addWidget(b)
|
h.addWidget(b)
|
||||||
b.toggled.connect(self.resort)
|
b.toggled.connect(self.resort)
|
||||||
h.addStrut(20)
|
h.addStrut(20)
|
||||||
@ -1241,9 +1244,9 @@ class ClassesModel(CSSRulesModel):
|
|||||||
if role == SORT_ROLE:
|
if role == SORT_ROLE:
|
||||||
entry = self.index_to_entry(index)
|
entry = self.index_to_entry(index)
|
||||||
if isinstance(entry, ClassEntry):
|
if isinstance(entry, ClassEntry):
|
||||||
return entry.num_of_matches if self.sort_on_count else entry.sort_key
|
return entry.num_of_matches if self.sort_on_count else QByteArray(entry.sort_key)
|
||||||
if isinstance(entry, ClassFileMatch):
|
if isinstance(entry, ClassFileMatch):
|
||||||
return len(entry.class_elements) if self.sort_on_count else entry.sort_key
|
return len(entry.class_elements) if self.sort_on_count else QByteArray(entry.sort_key)
|
||||||
if isinstance(entry, ClassElement):
|
if isinstance(entry, ClassElement):
|
||||||
return entry.line_number
|
return entry.line_number
|
||||||
if isinstance(entry, CSSRule):
|
if isinstance(entry, CSSRule):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user