mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
Viewer search panel: Show more result context in a tooltip when hovering over a search result. Fixes #1899834 [[Enhancement - Viewer] Show the entire paragraph as you hover over a search result in the Search panel](https://bugs.launchpad.net/calibre/+bug/1899834)
This commit is contained in:
parent
384e3a02be
commit
20c64aeae2
@ -3,14 +3,14 @@
|
|||||||
# License: GPL v3 Copyright: 2020, Kovid Goyal <kovid at kovidgoyal.net>
|
# License: GPL v3 Copyright: 2020, Kovid Goyal <kovid at kovidgoyal.net>
|
||||||
|
|
||||||
import json
|
import json
|
||||||
from collections import Counter, OrderedDict
|
|
||||||
from threading import Thread
|
|
||||||
|
|
||||||
import regex
|
import regex
|
||||||
|
from collections import Counter, OrderedDict
|
||||||
from PyQt5.Qt import (
|
from PyQt5.Qt import (
|
||||||
QCheckBox, QComboBox, QFont, QHBoxLayout, QIcon, QLabel, Qt, QToolButton,
|
QCheckBox, QComboBox, QFont, QHBoxLayout, QIcon, QLabel, Qt, QToolButton,
|
||||||
QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal
|
QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal
|
||||||
)
|
)
|
||||||
|
from threading import Thread
|
||||||
|
from html import escape
|
||||||
|
|
||||||
from calibre.ebooks.conversion.search_replace import REGEX_FLAGS
|
from calibre.ebooks.conversion.search_replace import REGEX_FLAGS
|
||||||
from calibre.gui2 import warning_dialog
|
from calibre.gui2 import warning_dialog
|
||||||
@ -282,7 +282,7 @@ def toc_nodes_for_search_result(sr):
|
|||||||
return tuple(tmap.toc_nodes_for_offset(sr.offset))
|
return tuple(tmap.toc_nodes_for_offset(sr.offset))
|
||||||
|
|
||||||
|
|
||||||
def search_in_name(name, search_query, ctx_size=50):
|
def search_in_name(name, search_query, ctx_size=75):
|
||||||
raw = searchable_text_for_name(name)[0]
|
raw = searchable_text_for_name(name)[0]
|
||||||
for match in search_query.regex.finditer(raw):
|
for match in search_query.regex.finditer(raw):
|
||||||
start, end = match.span()
|
start, end = match.span()
|
||||||
@ -479,6 +479,9 @@ class Results(QTreeWidget): # {{{
|
|||||||
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemNeverHasChildren)
|
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemNeverHasChildren)
|
||||||
item.setData(0, Qt.UserRole, result)
|
item.setData(0, Qt.UserRole, result)
|
||||||
item.setData(0, Qt.UserRole + 1, len(self.search_results))
|
item.setData(0, Qt.UserRole + 1, len(self.search_results))
|
||||||
|
if isinstance(result, SearchResult):
|
||||||
|
tt = '<p>' + escape(result.before, False) + '<b>' + escape(result.text, False) + '</b>' + escape(result.after, False)
|
||||||
|
item.setData(0, Qt.ToolTipRole, tt)
|
||||||
item.setIcon(0, self.blank_icon)
|
item.setIcon(0, self.blank_icon)
|
||||||
self.item_map[len(self.search_results)] = item
|
self.item_map[len(self.search_results)] = item
|
||||||
self.search_results.append(result)
|
self.search_results.append(result)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user