From d9c0a03eecd10e4a9fc0ef840b1762508b3e6ff8 Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Sat, 1 Feb 2020 17:24:12 +0800 Subject: [PATCH] Browser: add new commands, insert_or_goto_left_tab and insert_or_goto_right_tab --- core/browser.py | 12 ++++++++++++ core/buffer.py | 2 ++ eaf.el | 22 ++++++++++++++++++++++ eaf.py | 10 ++++++++++ 4 files changed, 46 insertions(+) diff --git a/core/browser.py b/core/browser.py index c84ac8c..62ce7ad 100644 --- a/core/browser.py +++ b/core/browser.py @@ -658,5 +658,17 @@ class BrowserBuffer(Buffer): else: self.request_close_buffer() + def insert_or_goto_left_tab(self): + if self.is_focus(): + self.fake_key_event(self.current_event_string) + else: + self.goto_left_tab.emit() + + def insert_or_goto_right_tab(self): + if self.is_focus(): + self.fake_key_event(self.current_event_string) + else: + self.goto_right_tab.emit() + def clear_focus(self): self.buffer_widget.clear_focus() diff --git a/core/buffer.py b/core/buffer.py index a7686ab..601cb8b 100755 --- a/core/buffer.py +++ b/core/buffer.py @@ -157,6 +157,8 @@ class Buffer(QGraphicsScene): message_to_emacs = QtCore.pyqtSignal(str) set_emacs_var = QtCore.pyqtSignal(str, str) eval_in_emacs = QtCore.pyqtSignal(str) + goto_left_tab = QtCore.pyqtSignal() + goto_right_tab = QtCore.pyqtSignal() def __init__(self, buffer_id, url, arguments, emacs_var_dict, fit_to_view, background_color): super(QGraphicsScene, self).__init__() diff --git a/eaf.el b/eaf.el index 185f636..d64f821 100644 --- a/eaf.el +++ b/eaf.el @@ -238,6 +238,8 @@ Try not to modify this alist directly. Use `eaf-setq' to modify instead." ("M->" . "scroll_to_bottom") ("M-t" . "new_blank_page") ("SPC" . "insert_or_scroll_up_page") + ("J" . "insert_or_goto_left_tab") + ("K" . "insert_or_goto_right_tab") ("j" . "insert_or_scroll_up") ("k" . "insert_or_scroll_down") ("h" . "insert_or_scroll_left") @@ -1090,6 +1092,26 @@ If URL is an invalid URL, it will use `eaf-browser-default-search-engine' to sea "com.lazycat.eaf" "open_url_in_background_tab" #'eaf-open-browser-in-background) +(dbus-register-signal + :session "com.lazycat.eaf" "/com/lazycat/eaf" + "com.lazycat.eaf" "goto_left_tab" + #'eaf-goto-left-tab) + +(defun eaf-goto-left-tab () + (interactive) + (when (ignore-errors (require 'awesome-tab)) + (awesome-tab-backward-tab))) + +(dbus-register-signal + :session "com.lazycat.eaf" "/com/lazycat/eaf" + "com.lazycat.eaf" "goto_right_tab" + #'eaf-goto-right-tab) + +(defun eaf-goto-right-tab () + (interactive) + (when (ignore-errors (require 'awesome-tab)) + (awesome-tab-forward-tab))) + ;;;###autoload (defun eaf-open-browser-in-background (url &optional arguments) (let ((save-buffer (current-buffer))) diff --git a/eaf.py b/eaf.py index 4e195c8..89c7da6 100755 --- a/eaf.py +++ b/eaf.py @@ -156,6 +156,8 @@ class EAF(dbus.service.Object): app_buffer.translate_text.connect(self.translate_text) app_buffer.open_url_in_new_tab.connect(self.open_url_in_new_tab) app_buffer.open_url_in_background_tab.connect(self.open_url_in_background_tab) + app_buffer.goto_left_tab.connect(self.goto_left_tab) + app_buffer.goto_right_tab.connect(self.goto_right_tab) # Send message to emacs. app_buffer.input_message.connect(self.input_message) @@ -338,6 +340,14 @@ class EAF(dbus.service.Object): def open_url_in_background_tab(self, url): pass + @dbus.service.signal(EAF_DBUS_NAME) + def goto_left_tab(self): + pass + + @dbus.service.signal(EAF_DBUS_NAME) + def goto_right_tab(self): + pass + @dbus.service.signal(EAF_DBUS_NAME) def translate_text(self, text): pass