Use C-s and C-r the Emacs-way to search in EAF Browser

master
Matthew 6 years ago
parent d893b9c721
commit f5526b01c9
  1. 1
      core/browser.py
  2. 32
      core/browser_buffer.py
  3. 2
      eaf.el

@ -132,7 +132,6 @@ class BrowserView(QWebEngineView):
self.setZoomFactor(1)
class BrowserPage(QWebEnginePage):
def __init__(self):
QWebEnginePage.__init__(self)

@ -35,6 +35,8 @@ class BrowserBuffer(Buffer):
self.buffer_widget.web_page.windowCloseRequested.connect(self.request_close_buffer)
self.search_term = ""
def get_key_event_widgets(self):
# We need send key event to QWebEngineView's focusProxy widget, not QWebEngineView.
return [self.buffer_widget.focusProxy()]
@ -51,6 +53,32 @@ class BrowserBuffer(Buffer):
else:
self.scroll_down()
def _search_text(self, text, is_backward = False):
if self.search_term != text:
self.search_term = text
if is_backward:
self.buffer_widget.web_page.findText(self.search_term, self.buffer_widget.web_page.FindBackward)
else:
self.buffer_widget.web_page.findText(self.search_term)
def handle_input_message(self, result_type, result_content):
if result_type == "search_text_forward":
self._search_text(str(result_content))
elif result_type == "search_text_backward":
self._search_text(str(result_content), True)
def search_text_forward(self):
if self.search_term == "":
self.send_input_message("EAF Browser - Forward Search Text: ", "search_text_forward")
else:
self._search_text(self.search_term)
def search_text_backward(self):
if self.search_term == "":
self.send_input_message("EAF Browser - Forward Search Text: ", "search_text_backward")
else:
self._search_text(self.search_term, True)
def eval_js(self, js):
self.buffer_widget.web_page.runJavaScript(js)
@ -64,6 +92,10 @@ class BrowserBuffer(Buffer):
self.buffer_widget.clean_cookie()
self.message_to_emacs.emit("EAF Browser - Cleared all cookies.")
def action_quit(self):
if self.search_term != "":
self._search_text("")
def zoom_out(self):
self.buffer_widget.zoom_out()

@ -203,6 +203,8 @@ Try not to modify this alist directly. Use `eaf-setq' to modify instead."
("C--" . "zoom_out")
("C-=" . "zoom_in")
("C-0" . "zoom_reset")
("C-s" . "search_text_forward")
("C-r" . "search_text_backward")
("C-n" . "scroll_up")
("C-p" . "scroll_down")
("C-v" . "scroll_up_page")

Loading…
Cancel
Save