Update browser tab title after title changed.

master
Andy Stewart 8 years ago
parent 505ae617f0
commit edfbae39e4
  1. 7
      app/browser/buffer.py
  2. 6
      core/buffer.py
  3. 17
      core/eaf.py
  4. 17
      eaf.el

@ -31,6 +31,8 @@ class BrowserBuffer(Buffer):
self.buffer_widget = QWebView()
self.buffer_widget.resize(self.width, self.height)
self.buffer_widget.setUrl(QUrl(url))
self.buffer_widget.titleChanged.connect(self.change_title)
print("Create buffer: %s" % buffer_id)
@ -38,4 +40,7 @@ class BrowserBuffer(Buffer):
self.width = width
self.height = height
self.buffer_widget.resize(self.width, self.height)
def change_title(self, title):
self.update_title.emit(self.buffer_id, title)

@ -51,10 +51,14 @@ class postGui(QtCore.QObject):
else:
self._func(*args, **kwargs)
class Buffer(object):
class Buffer(QtCore.QObject):
__metaclass__ = abc.ABCMeta
update_title = QtCore.pyqtSignal(str, str)
def __init__(self, buffer_id, url, width, height, background_color):
super(Buffer, self).__init__()
self.width = width
self.height = height

@ -62,20 +62,20 @@ class EAF(dbus.service.Object):
if url.startswith("/"):
if url.endswith(".jpg") or url.endswith(".png"):
self.buffer_dict[buffer_id] = ImageViewerBuffer(buffer_id, url, emacs_width, emacs_height)
self.create_buffer(buffer_id, ImageViewerBuffer(buffer_id, url, emacs_width, emacs_height))
elif url.endswith(".ogg"):
self.buffer_dict[buffer_id] = VideoPlayerBuffer(buffer_id, url, emacs_width, emacs_height)
self.create_buffer(buffer_id, VideoPlayerBuffer(buffer_id, url, emacs_width, emacs_height))
else:
return "Don't know how to open {0}".format(url)
else:
from urllib.parse import urlparse
result = urlparse(url)
if len(result.scheme) != 0:
self.buffer_dict[buffer_id] = BrowserBuffer(buffer_id, result.geturl(), emacs_width, emacs_height)
self.create_buffer(buffer_id, BrowserBuffer(buffer_id, result.geturl(), emacs_width, emacs_height))
else:
result = urlparse("{0}:{1}".format("http", url))
if result.scheme != "":
self.buffer_dict[buffer_id] = BrowserBuffer(buffer_id, result.geturl(), emacs_width, emacs_height)
self.create_buffer(buffer_id, BrowserBuffer(buffer_id, result.geturl(), emacs_width, emacs_height))
else:
return "{0} is not valid url".format(url)
@ -132,6 +132,15 @@ class EAF(dbus.service.Object):
@dbus.service.signal("com.lazycat.eaf")
def start_finish(self):
pass
@dbus.service.signal("com.lazycat.eaf")
def update_buffer_title(self, buffer_id, title):
pass
def create_buffer(self, buffer_id, app_buffer):
self.buffer_dict[buffer_id] = app_buffer
app_buffer.update_title.connect(self.update_buffer_title)
def send_mouse_event_to_buffer(self, buffer_id, view_width, view_height, view_image_width, view_image_height, event):
print("Send mouse: %s %s" % (buffer_id, event))

@ -310,6 +310,23 @@ We need calcuate render allocation to make sure no black border around render co
"com.lazycat.eaf" "start_finish"
'eaf-start-finish)
(defun eaf-update-buffer-title (bid title)
(catch 'find-buffer
(dolist (window (window-list))
(let ((buffer (window-buffer window)))
(with-current-buffer buffer
(when (and
(string= "eaf-mode" (format "%s" major-mode))
(equal buffer-id bid))
(rename-buffer title)
(throw 'find-buffer t)
))))))
(dbus-register-signal
:session "com.lazycat.eaf" "/com/lazycat/eaf"
"com.lazycat.eaf" "update_buffer_title"
'eaf-update-buffer-title)
(add-hook 'window-configuration-change-hook #'eaf-monitor-configuration-change)
(add-hook 'pre-command-hook #'eaf-monitor-key-event)
(add-hook 'kill-buffer-hook #'eaf-monitor-buffer-kill)

Loading…
Cancel
Save