diff --git a/app/rss-reader/buffer.py b/app/rss-reader/buffer.py index 59c5f89..9121c34 100644 --- a/app/rss-reader/buffer.py +++ b/app/rss-reader/buffer.py @@ -35,6 +35,11 @@ class AppBuffer(Buffer): self.add_widget(RSSReaderWidget(config_dir)) + self.buffer_widget.browser.message_to_emacs = self.message_to_emacs + self.buffer_widget.browser.set_emacs_var = self.set_emacs_var + self.buffer_widget.browser.eval_in_emacs = self.eval_in_emacs + self.buffer_widget.browser.send_input_message = self.send_input_message + def handle_input_message(self, result_type, result_content): if result_type == "add_subscription": self.buffer_widget.add_subscription(result_content) @@ -90,6 +95,37 @@ class AppBuffer(Buffer): def scroll_to_bottom(self): self.buffer_widget.browser.scroll_to_bottom() + def handle_input_message(self, result_type, result_content): + if result_type == "search_text_forward": + self.buffer_widget.browser._search_text(str(result_content)) + elif result_type == "search_text_backward": + self.buffer_widget.browser._search_text(str(result_content), True) + elif result_type == "jump_link": + self.buffer_widget.browser.jump_to_link(str(result_content)) + elif result_type == "jump_link_new_buffer": + self.buffer_widget.browser.jump_to_link(str(result_content), "true") + + def cancel_input_message(self, result_type): + if result_type == "jump_link" or result_type == "jump_link_new_buffer": + self.buffer_widget.browser.cleanup_links() + + def action_quit(self): + self.buffer_widget.browser.search_quit() + + def open_link(self): + self.buffer_widget.browser.open_link() + self.send_input_message("Open Link: ", "jump_link"); + + def open_link_new_buffer(self): + self.buffer_widget.browser.open_link_new_buffer() + self.send_input_message("Open Link in New Buffer: ", "jump_link_new_buffer"); + + def search_text_forward(self): + self.buffer_widget.browser.search_text_forward() + + def search_text_backward(self): + self.buffer_widget.browser.search_text_backward() + class RSSReaderWidget(QWidget): def __init__(self, config_dir): diff --git a/eaf.el b/eaf.el index 699f245..0920d1a 100644 --- a/eaf.el +++ b/eaf.el @@ -293,6 +293,10 @@ Try not to modify this alist directly. Use `eaf-setq' to modify instead." ("k" . "prev_article") ("J" . "last_article") ("K" . "first_article") + ("M-s" . "open_link") + ("M-S" . "open_link_new_buffer") + ("C-s" . "search_text_forward") + ("C-r" . "search_text_backward") ("C-n" . "scroll_up") ("C-p" . "scroll_down") ("C-v" . "scroll_up_page") diff --git a/eaf.py b/eaf.py index 991d2d4..af872cd 100755 --- a/eaf.py +++ b/eaf.py @@ -161,6 +161,8 @@ class EAF(dbus.service.Object): # Add create new window callback if module is browser if module_path == "app.browser.buffer": app_buffer.buffer_widget.create_new_browser_window_callback = self.create_new_browser_window + elif module_path == "app.rss-reader.buffer": + app_buffer.buffer_widget.browser.create_new_browser_window_callback = self.create_new_browser_window # Restore buffer session. self.restore_buffer_session(app_buffer)