Commit ba8df8ab authored by Andy Stewart's avatar Andy Stewart
Browse files

Fix #103 , add eval_in_emacs signal.

parent 2b7fed57
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -135,6 +135,7 @@ class Buffer(QGraphicsScene):
    close_buffer = QtCore.pyqtSignal(str)
    message_to_emacs = QtCore.pyqtSignal(str)
    set_emacs_var = QtCore.pyqtSignal(str, str)
    eval_in_emacs = QtCore.pyqtSignal(str)

    def __init__(self, buffer_id, url, arguments, fit_to_view, background_color):
        super(QGraphicsScene, self).__init__()
@@ -188,6 +189,7 @@ class Buffer(QGraphicsScene):

        self.buffer_widget.message_to_emacs = self.message_to_emacs
        self.buffer_widget.set_emacs_var = self.set_emacs_var
        self.buffer_widget.eval_in_emacs = self.eval_in_emacs

    def handle_destroy(self):
        self.before_destroy_hook.emit()
+8 −0
Original line number Diff line number Diff line
@@ -649,6 +649,14 @@ Use it as (eaf-bind-key var key eaf-app-keybinding)"
(defun eaf-set-emacs-var (var-name var-value)
  (set (intern var-name) var-value))

(dbus-register-signal
 :session "com.lazycat.eaf" "/com/lazycat/eaf"
 "com.lazycat.eaf" "eval_in_emacs"
 'eaf-eval-in-emacs)

(defun eaf-eval-in-emacs (elisp-code-string)
  (eval (read elisp-code-string)))

(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
@@ -154,6 +154,9 @@ class EAF(dbus.service.Object):
        # Handle set emacs var signal.
        app_buffer.set_emacs_var.connect(self.set_emacs_var)

        # Handle eval form in emacs.
        app_buffer.eval_in_emacs.connect(self.eval_in_emacs)

        # 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
@@ -303,6 +306,10 @@ class EAF(dbus.service.Object):
    def set_emacs_var(self, var_name, var_value):
        pass

    @dbus.service.signal(EAF_DBUS_NAME)
    def eval_in_emacs(self, elisp_code_string):
        pass

    @dbus.service.signal(EAF_DBUS_NAME)
    def get_emacs_var(self):
        pass