Default EAF app follow current theme mode (light or dark)

master
Andy Stewart 6 years ago
parent a9371fb313
commit 165f43b7c7
  1. 4
      app/airshare/buffer.py
  2. 4
      app/browser/buffer.py
  3. 4
      app/camera/buffer.py
  4. 4
      app/demo/buffer.py
  5. 4
      app/file-receiver/buffer.py
  6. 4
      app/file-sender/buffer.py
  7. 4
      app/image-viewer/buffer.py
  8. 4
      app/js-video-player/buffer.py
  9. 4
      app/markdown-previewer/buffer.py
  10. 4
      app/mermaid/buffer.py
  11. 6
      app/mindmap/buffer.py
  12. 4
      app/org-previewer/buffer.py
  13. 4
      app/pdf-viewer/buffer.py
  14. 4
      app/rss-reader/buffer.py
  15. 4
      app/terminal/buffer.py
  16. 4
      app/video-player/buffer.py
  17. 8
      core/browser.py
  18. 3
      core/buffer.py
  19. 14
      eaf.el
  20. 8
      eaf.py

@ -27,8 +27,8 @@ from core.buffer import Buffer
import qrcode import qrcode
class AppBuffer(Buffer): class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, False, QColor(0, 0, 0, 255)) Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(0, 0, 0, 255))
self.add_widget(AirShareWidget(url, QColor(0, 0, 0, 255))) self.add_widget(AirShareWidget(url, QColor(0, 0, 0, 255)))

@ -26,8 +26,8 @@ from core.utils import touch
import os import os
class AppBuffer(BrowserBuffer): class AppBuffer(BrowserBuffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255)) BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(255, 255, 255, 255))
self.config_dir = config_dir self.config_dir = config_dir

@ -32,8 +32,8 @@ import time
import os import os
class AppBuffer(Buffer): class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, True, QColor(0, 0, 0, 255)) Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, is_dark_mode, True, QColor(0, 0, 0, 255))
self.add_widget(CameraWidget(QColor(0, 0, 0, 255))) self.add_widget(CameraWidget(QColor(0, 0, 0, 255)))
def all_views_hide(self): def all_views_hide(self):

@ -24,8 +24,8 @@ from PyQt5.QtWidgets import QPushButton
from core.buffer import Buffer from core.buffer import Buffer
class AppBuffer(Buffer): class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, True, QColor(0, 0, 0, 255)) Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, is_dark_mode, True, QColor(0, 0, 0, 255))
self.add_widget(QPushButton("Hello, EAF hacker, it's working!!!")) self.add_widget(QPushButton("Hello, EAF hacker, it's working!!!"))
self.buffer_widget.setStyleSheet("font-size: 100px") self.buffer_widget.setStyleSheet("font-size: 100px")

@ -41,8 +41,8 @@ import urllib
from core.buffer import Buffer from core.buffer import Buffer
class AppBuffer(Buffer): class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, argument, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, argument, emacs_var_dict, module_path, is_dark_mode):
Buffer.__init__(self, buffer_id, url, argument, emacs_var_dict, module_path, False, QColor(0, 0, 0, 255)) Buffer.__init__(self, buffer_id, url, argument, emacs_var_dict, module_path, is_dark_mode, False, QColor(0, 0, 0, 255))
self.add_widget(FileUploaderWidget(url, QColor(0, 0, 0, 255))) self.add_widget(FileUploaderWidget(url, QColor(0, 0, 0, 255)))

@ -34,8 +34,8 @@ import threading
import socket import socket
class AppBuffer(Buffer): class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, False, QColor(0, 0, 0, 255)) Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(0, 0, 0, 255))
self.add_widget(FileTransferWidget(url, QColor(0, 0, 0, 255))) self.add_widget(FileTransferWidget(url, QColor(0, 0, 0, 255)))

@ -27,8 +27,8 @@ from pathlib import Path
import os import os
class AppBuffer(BrowserBuffer): class AppBuffer(BrowserBuffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255)) BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(255, 255, 255, 255))
self.load_image(url) self.load_image(url)

@ -32,8 +32,8 @@ class AppBuffer(BrowserBuffer):
export_org_json = QtCore.pyqtSignal(str, str) export_org_json = QtCore.pyqtSignal(str, str)
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255)) BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(255, 255, 255, 255))
self.url = url self.url = url
index_file = "file://" + (os.path.join(os.path.dirname(__file__), "index.html")) index_file = "file://" + (os.path.join(os.path.dirname(__file__), "index.html"))

@ -28,8 +28,8 @@ import subprocess
import threading import threading
class AppBuffer(BrowserBuffer): class AppBuffer(BrowserBuffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255)) BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(255, 255, 255, 255))
# Get free port to render markdown. # Get free port to render markdown.
self.port = get_free_port() self.port = get_free_port()

@ -36,8 +36,8 @@ class AppBuffer(BrowserBuffer):
update_content = QtCore.pyqtSignal() update_content = QtCore.pyqtSignal()
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255)) BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(255, 255, 255, 255))
self.url = url self.url = url
self.render() self.render()

@ -32,8 +32,8 @@ class AppBuffer(BrowserBuffer):
export_org_json = QtCore.pyqtSignal(str, str) export_org_json = QtCore.pyqtSignal(str, str)
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255)) BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(255, 255, 255, 255))
self.url = url self.url = url
index_file = "file://" + (os.path.join(os.path.dirname(__file__), "index.html")) index_file = "file://" + (os.path.join(os.path.dirname(__file__), "index.html"))
@ -72,7 +72,7 @@ class AppBuffer(BrowserBuffer):
self.buffer_widget.eval_js("init_root_node();") self.buffer_widget.eval_js("init_root_node();")
color = "#FFFFFF" color = "#FFFFFF"
if self.emacs_var_dict["eaf-mindmap-dark-mode"] == "true": if self.emacs_var_dict["eaf-mindmap-dark-mode"] == "true" or (self.emacs_var_dict["eaf-mindmap-dark-mode"] == "" and self.is_dark_mode):
color = "#242525" color = "#242525"
self.buffer_widget.eval_js("init_background('{}');".format(color)) self.buffer_widget.eval_js("init_background('{}');".format(color))

@ -25,8 +25,8 @@ from core.browser import BrowserBuffer
import os import os
class AppBuffer(BrowserBuffer): class AppBuffer(BrowserBuffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255)) BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(255, 255, 255, 255))
self.url = url self.url = url

@ -34,8 +34,8 @@ import os
import hashlib import hashlib
class AppBuffer(Buffer): class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, False, QColor(0, 0, 0, 255)) Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(0, 0, 0, 255))
self.delete_temp_file = arguments == "temp_pdf_file" self.delete_temp_file = arguments == "temp_pdf_file"
self.add_widget(PdfViewerWidget(url, config_dir, QColor(0, 0, 0, 255), buffer_id, emacs_var_dict)) self.add_widget(PdfViewerWidget(url, config_dir, QColor(0, 0, 0, 255), buffer_id, emacs_var_dict))

@ -31,8 +31,8 @@ import json
import os import os
class AppBuffer(Buffer): class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, True, QColor(0, 0, 0, 255)) Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, is_dark_mode, True, QColor(0, 0, 0, 255))
self.add_widget(RSSReaderWidget(config_dir)) self.add_widget(RSSReaderWidget(config_dir))

@ -30,8 +30,8 @@ import threading
import getpass import getpass
class AppBuffer(BrowserBuffer): class AppBuffer(BrowserBuffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255)) BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode, False, QColor(255, 255, 255, 255))
# Get free port to render markdown. # Get free port to render markdown.
self.port = get_free_port() self.port = get_free_port()

@ -27,8 +27,8 @@ from PyQt5.QtWidgets import QWidget, QGraphicsScene, QGraphicsView, QVBoxLayout
from core.buffer import Buffer from core.buffer import Buffer
class AppBuffer(Buffer): class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, True, QColor(0, 0, 0, 255)) Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, is_dark_mode, True, QColor(0, 0, 0, 255))
self.add_widget(VideoPlayerWidget()) self.add_widget(VideoPlayerWidget())
self.buffer_widget.play(url) self.buffer_widget.play(url)

@ -369,8 +369,8 @@ class BrowserBuffer(Buffer):
enter_fullscreen_request = QtCore.pyqtSignal() enter_fullscreen_request = QtCore.pyqtSignal()
exit_fullscreen_request = QtCore.pyqtSignal() exit_fullscreen_request = QtCore.pyqtSignal()
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, fit_to_view, background_color): def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, is_dark_mode, fit_to_view, background_color):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, fit_to_view, background_color) Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, is_dark_mode, fit_to_view, background_color)
self.add_widget(BrowserView(config_dir)) self.add_widget(BrowserView(config_dir))
@ -472,7 +472,9 @@ class BrowserBuffer(Buffer):
def dark_mode_is_enable(self): def dark_mode_is_enable(self):
module_name = self.module_path.split(".")[1] module_name = self.module_path.split(".")[1]
return self.emacs_var_dict["eaf-browser-dark-mode"] == "true" and module_name in ["browser"] and self.url != "devtools://devtools/bundled/devtools_app.html" return (self.emacs_var_dict["eaf-browser-dark-mode"] == "true" or (self.emacs_var_dict["eaf-browser-dark-mode"] == "" and self.is_dark_mode)) \
and module_name in ["browser"] \
and self.url != "devtools://devtools/bundled/devtools_app.html"
def init_background_color(self): def init_background_color(self):
if self.dark_mode_is_enable(): if self.dark_mode_is_enable():

@ -160,7 +160,7 @@ class Buffer(QGraphicsScene):
goto_right_tab = QtCore.pyqtSignal() goto_right_tab = QtCore.pyqtSignal()
aspect_ratio_change = QtCore.pyqtSignal() aspect_ratio_change = QtCore.pyqtSignal()
def __init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, fit_to_view, background_color): def __init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, is_dark_mode, fit_to_view, background_color):
super(QGraphicsScene, self).__init__() super(QGraphicsScene, self).__init__()
self.buffer_id = buffer_id self.buffer_id = buffer_id
@ -171,6 +171,7 @@ class Buffer(QGraphicsScene):
self.fit_to_view = fit_to_view self.fit_to_view = fit_to_view
self.background_color = background_color self.background_color = background_color
self.setBackgroundBrush(QBrush(self.background_color)) self.setBackgroundBrush(QBrush(self.background_color))
self.is_dark_mode = is_dark_mode
self.buffer_widget = None self.buffer_widget = None

@ -240,14 +240,14 @@ It must defined at `eaf-browser-search-engines'."
(eaf-browser-remember-history . "true") (eaf-browser-remember-history . "true")
(eaf-browser-default-zoom . "1.0") (eaf-browser-default-zoom . "1.0")
(eaf-browser-blank-page-url . "https://www.google.com") (eaf-browser-blank-page-url . "https://www.google.com")
(eaf-browser-dark-mode . "false")
(eaf-browser-scroll-behavior . "auto") (eaf-browser-scroll-behavior . "auto")
(eaf-browser-download-path . "~/Downloads") (eaf-browser-download-path . "~/Downloads")
(eaf-browser-aria2-proxy-host . "") (eaf-browser-aria2-proxy-host . "")
(eaf-browser-aria2-proxy-port . "") (eaf-browser-aria2-proxy-port . "")
(eaf-marker-letters . "ASDFHJKLWEOPCNM") (eaf-browser-dark-mode . "")
(eaf-mindmap-dark-mode . "false") (eaf-mindmap-dark-mode . "")
(eaf-mindmap-save-path . "~/Documents") (eaf-mindmap-save-path . "~/Documents")
(eaf-marker-letters . "ASDFHJKLWEOPCNM")
) )
"The alist storing user-defined variables that's shared with EAF Python side. "The alist storing user-defined variables that's shared with EAF Python side.
@ -791,7 +791,8 @@ For now only EAF browser app is supported."
(list eaf-python-file) (list eaf-python-file)
(eaf-get-render-size) (eaf-get-render-size)
(list eaf-proxy-host eaf-proxy-port eaf-proxy-type eaf-config-location) (list eaf-proxy-host eaf-proxy-port eaf-proxy-type eaf-config-location)
(list (eaf-serialization-var-list)))) (list (eaf-serialization-var-list))
(list (eaf-is-dark-theme))))
(gdb-args (list "-batch" "-ex" "run" "-ex" "bt" "--args" eaf-python-command))) (gdb-args (list "-batch" "-ex" "run" "-ex" "bt" "--args" eaf-python-command)))
(setq eaf-process (setq eaf-process
(if eaf-enable-debug (if eaf-enable-debug
@ -1775,6 +1776,11 @@ Make sure that your smartphone is connected to the same WiFi network as this com
))))) )))))
(message "Please install libreoffice to convert office file to pdf."))) (message "Please install libreoffice to convert office file to pdf.")))
(defun eaf-is-dark-theme ()
(if (eq (frame-parameter nil 'background-mode) 'light)
"false"
"true"))
(dbus-register-signal (dbus-register-signal
:session "com.lazycat.eaf" "/com/lazycat/eaf" :session "com.lazycat.eaf" "/com/lazycat/eaf"
"com.lazycat.eaf" "edit_focus_text" "com.lazycat.eaf" "edit_focus_text"

@ -39,14 +39,14 @@ EAF_OBJECT_NAME = "/com/lazycat/eaf"
class EAF(dbus.service.Object): class EAF(dbus.service.Object):
def __init__(self, args): def __init__(self, args):
global emacs_width, emacs_height, eaf_config_dir, proxy_string global emacs_width, emacs_height, eaf_config_dir, proxy_string, is_dark_mode
dbus.service.Object.__init__( dbus.service.Object.__init__(
self, self,
dbus.service.BusName(EAF_DBUS_NAME, bus=dbus.SessionBus()), dbus.service.BusName(EAF_DBUS_NAME, bus=dbus.SessionBus()),
EAF_OBJECT_NAME) EAF_OBJECT_NAME)
(emacs_width, emacs_height, proxy_host, proxy_port, proxy_type, config_dir, var_dict_string) = args (emacs_width, emacs_height, proxy_host, proxy_port, proxy_type, config_dir, var_dict_string, is_dark_mode) = args
emacs_width = int(emacs_width) emacs_width = int(emacs_width)
emacs_height = int(emacs_height) emacs_height = int(emacs_height)
eaf_config_dir = os.path.expanduser(config_dir) eaf_config_dir = os.path.expanduser(config_dir)
@ -139,11 +139,11 @@ class EAF(dbus.service.Object):
return "EAF: Something went wrong when trying to import {0}".format(module_path) return "EAF: Something went wrong when trying to import {0}".format(module_path)
def create_buffer(self, buffer_id, url, module_path, arguments): def create_buffer(self, buffer_id, url, module_path, arguments):
global emacs_width, emacs_height, eaf_config_dir, proxy_string global emacs_width, emacs_height, eaf_config_dir, proxy_string, is_dark_mode
# Create application buffer. # Create application buffer.
module = importlib.import_module(module_path) module = importlib.import_module(module_path)
app_buffer = module.AppBuffer(buffer_id, url, eaf_config_dir, arguments, self.emacs_var_dict, module_path) app_buffer = module.AppBuffer(buffer_id, url, eaf_config_dir, arguments, self.emacs_var_dict, module_path, bool(is_dark_mode))
# Add buffer to buffer dict. # Add buffer to buffer dict.
self.buffer_dict[buffer_id] = app_buffer self.buffer_dict[buffer_id] = app_buffer

Loading…
Cancel
Save