Fix #1928570 [[Enhancement - Edit book] Add a clear button inside the Search in preview field](https://bugs.launchpad.net/calibre/+bug/1928570)

This commit is contained in:
Kovid Goyal 2021-05-16 13:23:09 +05:30
parent d6530933d9
commit ebd5711134
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -9,12 +9,14 @@ import time
from collections import defaultdict from collections import defaultdict
from functools import partial from functools import partial
from qt.core import ( from qt.core import (
QApplication, QByteArray, QHBoxLayout, QIcon, QLabel, QMenu, QSize, QSizePolicy, QAction, QApplication, QByteArray, QHBoxLayout, QIcon, QLabel, QMenu, QSize,
QStackedLayout, Qt, QTimer, QToolBar, QUrl, QVBoxLayout, QWidget, pyqtSignal QSizePolicy, QStackedLayout, Qt, QTimer, QToolBar, QUrl, QVBoxLayout, QWidget,
pyqtSignal
) )
from qt.webengine import QWebEngineUrlSchemeHandler, QWebEngineUrlRequestJob, QWebEngineUrlRequestInfo
from qt.webengine import ( from qt.webengine import (
QWebEnginePage, QWebEngineProfile, QWebEngineScript, QWebEngineView, QWebEngineSettings, QWebEngineContextMenuData QWebEngineContextMenuData, QWebEnginePage, QWebEngineProfile, QWebEngineScript,
QWebEngineSettings, QWebEngineUrlRequestInfo, QWebEngineUrlRequestJob,
QWebEngineUrlSchemeHandler, QWebEngineView
) )
from threading import Thread from threading import Thread
@ -25,7 +27,8 @@ from calibre.constants import (
from calibre.ebooks.oeb.base import OEB_DOCS, XHTML_MIME, serialize from calibre.ebooks.oeb.base import OEB_DOCS, XHTML_MIME, serialize
from calibre.ebooks.oeb.polish.parsing import parse from calibre.ebooks.oeb.polish.parsing import parse
from calibre.gui2 import ( from calibre.gui2 import (
NO_URL_FORMATTING, error_dialog, is_dark_theme, safe_open_url NO_URL_FORMATTING, QT_HIDDEN_CLEAR_ACTION, error_dialog, is_dark_theme,
safe_open_url
) )
from calibre.gui2.palette import dark_color, dark_link_color, dark_text_color from calibre.gui2.palette import dark_color, dark_link_color, dark_text_color
from calibre.gui2.tweak_book import TOP, actions, current_container, editors, tprefs from calibre.gui2.tweak_book import TOP, actions, current_container, editors, tprefs
@ -570,6 +573,10 @@ class Preview(QWidget):
self.current_sync_request = None self.current_sync_request = None
self.search = HistoryLineEdit2(self) self.search = HistoryLineEdit2(self)
self.search.setClearButtonEnabled(True)
ac = self.search.findChild(QAction, QT_HIDDEN_CLEAR_ACTION)
if ac is not None:
ac.triggered.connect(self.clear_clicked)
self.search.initialize('tweak_book_preview_search') self.search.initialize('tweak_book_preview_search')
self.search.setPlaceholderText(_('Search in preview')) self.search.setPlaceholderText(_('Search in preview'))
self.search.returnPressed.connect(self.find_next) self.search.returnPressed.connect(self.find_next)
@ -580,6 +587,9 @@ class Preview(QWidget):
ac.triggered.connect(getattr(self, 'find_' + d)) ac.triggered.connect(getattr(self, 'find_' + d))
self.bar.addAction(ac) self.bar.addAction(ac)
def clear_clicked(self):
self.view._page.findText('')
def find(self, direction): def find(self, direction):
text = unicode_type(self.search.text()) text = unicode_type(self.search.text())
self.view._page.findText(text, ( self.view._page.findText(text, (