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
class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, False, QColor(0, 0, 0, 255))
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, is_dark_mode, False, 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
class AppBuffer(BrowserBuffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255))
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, is_dark_mode, False, QColor(255, 255, 255, 255))
self.config_dir = config_dir

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

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

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

@ -34,8 +34,8 @@ import threading
import socket
class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, False, QColor(0, 0, 0, 255))
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, is_dark_mode, False, 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
class AppBuffer(BrowserBuffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255))
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, is_dark_mode, False, QColor(255, 255, 255, 255))
self.load_image(url)

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

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

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

@ -32,8 +32,8 @@ class AppBuffer(BrowserBuffer):
export_org_json = QtCore.pyqtSignal(str, str)
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path):
BrowserBuffer.__init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path, False, QColor(255, 255, 255, 255))
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, is_dark_mode, False, QColor(255, 255, 255, 255))
self.url = url
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();")
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"
self.buffer_widget.eval_js("init_background('{}');".format(color))

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

@ -34,8 +34,8 @@ import os
import hashlib
class AppBuffer(Buffer):
def __init__(self, buffer_id, url, config_dir, arguments, emacs_var_dict, module_path):
Buffer.__init__(self, buffer_id, url, arguments, emacs_var_dict, module_path, False, QColor(0, 0, 0, 255))
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, is_dark_mode, False, QColor(0, 0, 0, 255))
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))

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

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

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

@ -369,8 +369,8 @@ class BrowserBuffer(Buffer):
enter_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):
Buffer.__init__(self, buffer_id, url, 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, is_dark_mode, fit_to_view, background_color)
self.add_widget(BrowserView(config_dir))
@ -472,7 +472,9 @@ class BrowserBuffer(Buffer):
def dark_mode_is_enable(self):
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):
if self.dark_mode_is_enable():

@ -160,7 +160,7 @@ class Buffer(QGraphicsScene):
goto_right_tab = 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__()
self.buffer_id = buffer_id
@ -171,6 +171,7 @@ class Buffer(QGraphicsScene):
self.fit_to_view = fit_to_view
self.background_color = background_color
self.setBackgroundBrush(QBrush(self.background_color))
self.is_dark_mode = is_dark_mode
self.buffer_widget = None

@ -240,14 +240,14 @@ It must defined at `eaf-browser-search-engines'."
(eaf-browser-remember-history . "true")
(eaf-browser-default-zoom . "1.0")
(eaf-browser-blank-page-url . "https://www.google.com")
(eaf-browser-dark-mode . "false")
(eaf-browser-scroll-behavior . "auto")
(eaf-browser-download-path . "~/Downloads")
(eaf-browser-aria2-proxy-host . "")
(eaf-browser-aria2-proxy-port . "")
(eaf-marker-letters . "ASDFHJKLWEOPCNM")
(eaf-mindmap-dark-mode . "false")
(eaf-browser-dark-mode . "")
(eaf-mindmap-dark-mode . "")
(eaf-mindmap-save-path . "~/Documents")
(eaf-marker-letters . "ASDFHJKLWEOPCNM")
)
"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)
(eaf-get-render-size)
(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)))
(setq eaf-process
(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.")))
(defun eaf-is-dark-theme ()
(if (eq (frame-parameter nil 'background-mode) 'light)
"false"
"true"))
(dbus-register-signal
:session "com.lazycat.eaf" "/com/lazycat/eaf"
"com.lazycat.eaf" "edit_focus_text"

@ -39,14 +39,14 @@ EAF_OBJECT_NAME = "/com/lazycat/eaf"
class EAF(dbus.service.Object):
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__(
self,
dbus.service.BusName(EAF_DBUS_NAME, bus=dbus.SessionBus()),
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_height = int(emacs_height)
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)
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.
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.
self.buffer_dict[buffer_id] = app_buffer

Loading…
Cancel
Save