Fix #101 , add set_emacs_var interface use for pass data from Python to Elisp

master
Andy Stewart 6 years ago
parent 914412f67c
commit 2b7fed5732
  1. 2
      core/buffer.py
  2. 8
      eaf.el
  3. 7
      eaf.py

@ -134,6 +134,7 @@ class Buffer(QGraphicsScene):
input_message = QtCore.pyqtSignal(str, str, str)
close_buffer = QtCore.pyqtSignal(str)
message_to_emacs = QtCore.pyqtSignal(str)
set_emacs_var = QtCore.pyqtSignal(str, str)
def __init__(self, buffer_id, url, arguments, fit_to_view, background_color):
super(QGraphicsScene, self).__init__()
@ -186,6 +187,7 @@ class Buffer(QGraphicsScene):
self.buffer_widget.installEventFilter(self)
self.buffer_widget.message_to_emacs = self.message_to_emacs
self.buffer_widget.set_emacs_var = self.set_emacs_var
def handle_destroy(self):
self.before_destroy_hook.emit()

@ -641,6 +641,14 @@ Use it as (eaf-bind-key var key eaf-app-keybinding)"
"com.lazycat.eaf" "create_new_browser_buffer"
'eaf-create-new-browser-buffer)
(dbus-register-signal
:session "com.lazycat.eaf" "/com/lazycat/eaf"
"com.lazycat.eaf" "set_emacs_var"
'eaf-set-emacs-var)
(defun eaf-set-emacs-var (var-name var-value)
(set (intern var-name) var-value))
(defun eaf-create-new-browser-buffer (new-window-buffer-id)
(let ((eaf-buffer (generate-new-buffer (concat "Browser Popup Window " new-window-buffer-id))))
(with-current-buffer eaf-buffer

@ -151,6 +151,9 @@ class EAF(dbus.service.Object):
# Handle message to emacs.
app_buffer.message_to_emacs.connect(self.message_to_emacs)
# Handle set emacs var signal.
app_buffer.set_emacs_var.connect(self.set_emacs_var)
# 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
@ -296,6 +299,10 @@ class EAF(dbus.service.Object):
def message_to_emacs(self, message):
pass
@dbus.service.signal(EAF_DBUS_NAME)
def set_emacs_var(self, var_name, var_value):
pass
@dbus.service.signal(EAF_DBUS_NAME)
def get_emacs_var(self):
pass

Loading…
Cancel
Save