Commit 2b7fed57 authored by Andy Stewart's avatar Andy Stewart
Browse files

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

parent 914412f6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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()
+8 −0
Original line number Diff line number Diff line
@@ -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
+7 −0
Original line number Diff line number Diff line
@@ -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