Merge branch 'error_line_numbers' of https://github.com/salty-horse/calibre

This commit is contained in:
Kovid Goyal 2023-11-11 15:20:57 +05:30
commit 5457ae4b9f
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -43,6 +43,14 @@ def prefix_for_level(level):
text += ': '
return text
def build_error_message(error, with_level=False, with_line_numbers=False):
prefix = ''
filename = error.name
if with_level:
prefix = prefix_for_level(error.level)
if with_line_numbers and error.line:
filename = f'{filename}:{error.line}'
return f'{prefix}{error.msg}\xa0\xa0\xa0\xa0[{filename}]'
class Delegate(QStyledItemDelegate):
@ -99,8 +107,8 @@ class Check(QSplitter):
def copy_to_clipboard(self):
items = []
for item in (self.items.item(i) for i in range(self.items.count())):
msg = str(item.text())
msg = prefix_for_level(item.data(Qt.ItemDataRole.UserRole).level) + msg
err = item.data(Qt.ItemDataRole.UserRole)
msg = build_error_message(err, with_level=True, with_line_numbers=True)
items.append(msg)
if items:
QApplication.clipboard().setText('\n'.join(items))
@ -214,7 +222,7 @@ class Check(QSplitter):
self.hide_busy()
for err in sorted(errors, key=lambda e:(100 - e.level, e.name)):
i = QListWidgetItem(f'{err.msg}\xa0\xa0\xa0\xa0[{err.name}]', self.items)
i = QListWidgetItem(build_error_message(err), self.items)
i.setData(Qt.ItemDataRole.UserRole, err)
i.setIcon(icon_for_level(err.level))
if errors: