Loading app/imageviewer/buffer.py +8 −8 Original line number Diff line number Diff line Loading @@ -33,6 +33,12 @@ class AppBuffer(Buffer): self.add_widget(ImageViewerWidget(url, QColor(0, 0, 0, 255))) self.buffer_widget.render_image.connect(self.change_title) def load_next_image(self): self.buffer_widget.load_next_image() def load_prev_image(self): self.buffer_widget.load_prev_image() class ImageViewerWidget(QWidget): render_image = QtCore.pyqtSignal(str) Loading @@ -53,7 +59,7 @@ class ImageViewerWidget(QWidget): def load_next_image(self): files = [f for f in os.listdir(self.parent_dir) if os.path.isfile(os.path.join(self.parent_dir, f))] images = list(filter(lambda f: f.endswith(".jpg") or f.endswith(".png"), files)) images = list(filter(lambda f: f.endswith(".jpg") or f.endswith(".jpeg") or f.endswith(".png"), files)) if self.image_name in images: image_index = images.index(self.image_name) if image_index == len(images) - 1: Loading @@ -65,7 +71,7 @@ class ImageViewerWidget(QWidget): def load_prev_image(self): files = [f for f in os.listdir(self.parent_dir) if os.path.isfile(os.path.join(self.parent_dir, f))] images = list(filter(lambda f: f.endswith(".jpg") or f.endswith(".png"), files)) images = list(filter(lambda f: f.endswith(".jpg") or f.endswith(".jpeg") or f.endswith(".png"), files)) if self.image_name in images: image_index = images.index(self.image_name) if image_index == 0: Loading Loading @@ -99,12 +105,6 @@ class ImageViewerWidget(QWidget): painter.end() def keyPressEvent(self, event): if event.key() == Qt.Key_J: self.load_next_image() elif event.key() == Qt.Key_K: self.load_prev_image() if __name__ == "__main__": from PyQt5.QtWidgets import QApplication import sys Loading eaf.el +15 −2 Original line number Diff line number Diff line Loading @@ -191,6 +191,14 @@ by `dired-find-alternate-file'. Otherwise they will be opened normally with `dir :type 'cons :group 'eaf) (defcustom eaf-imageviewer-keybinding '(("j" . "load_next_image") ("k" . "load_prev_image") ) "The keybinding of image viewer." :type 'cons :group 'eaf) (defun eaf-call (method &rest args) (apply 'dbus-call-method :session ; use the session (not system) bus Loading Loading @@ -411,6 +419,11 @@ We need calcuate render allocation to make sure no black border around render co (if function-name-value (eaf-call "execute_function" buffer-id (cdr function-name-value)) (eaf-call "send_key" buffer-id key-desc)))) ((equal buffer-app-name "imageviewer") (let ((function-name-value (assoc key-desc eaf-imageviewer-keybinding))) (if function-name-value (eaf-call "execute_function" buffer-id (cdr function-name-value)) (eaf-call "send_key" buffer-id key-desc)))) (t (eaf-call "send_key" buffer-id key-desc)))) ((string-match "^[CMSs]-.*" key-desc) Loading Loading @@ -648,7 +661,7 @@ When called interactively, URL accepts a file that can be opened by EAF." ;; Split window to show file and previewer. (eaf-split-preview-windows) (setq app-name "markdownpreviewer")) ((member extension-name '("jpg" "png" "bmp")) ((member extension-name '("jpg" "jpeg" "png" "bmp")) (setq app-name "imageviewer")) ((member extension-name '("avi" "rmvb" "ogg" "mp4")) (setq app-name "videoplayer")) Loading Loading @@ -741,7 +754,7 @@ When called interactively, URL accepts a file that can be opened by EAF." (eaf-open (concat "file://" file) "browser")) ((member extension-name '("pdf" "xps" "oxps" "cbz" "epub" "fb2" "fbz")) (eaf-open file "pdfviewer")) ((member extension-name '("jpg" "png" "bmp")) ((member extension-name '("jpg" "jpeg" "png" "bmp")) (eaf-open file "imageviewer")) ((member extension-name '("avi" "rmvb" "ogg" "mp4")) (eaf-open file "videoplayer")) Loading Loading
app/imageviewer/buffer.py +8 −8 Original line number Diff line number Diff line Loading @@ -33,6 +33,12 @@ class AppBuffer(Buffer): self.add_widget(ImageViewerWidget(url, QColor(0, 0, 0, 255))) self.buffer_widget.render_image.connect(self.change_title) def load_next_image(self): self.buffer_widget.load_next_image() def load_prev_image(self): self.buffer_widget.load_prev_image() class ImageViewerWidget(QWidget): render_image = QtCore.pyqtSignal(str) Loading @@ -53,7 +59,7 @@ class ImageViewerWidget(QWidget): def load_next_image(self): files = [f for f in os.listdir(self.parent_dir) if os.path.isfile(os.path.join(self.parent_dir, f))] images = list(filter(lambda f: f.endswith(".jpg") or f.endswith(".png"), files)) images = list(filter(lambda f: f.endswith(".jpg") or f.endswith(".jpeg") or f.endswith(".png"), files)) if self.image_name in images: image_index = images.index(self.image_name) if image_index == len(images) - 1: Loading @@ -65,7 +71,7 @@ class ImageViewerWidget(QWidget): def load_prev_image(self): files = [f for f in os.listdir(self.parent_dir) if os.path.isfile(os.path.join(self.parent_dir, f))] images = list(filter(lambda f: f.endswith(".jpg") or f.endswith(".png"), files)) images = list(filter(lambda f: f.endswith(".jpg") or f.endswith(".jpeg") or f.endswith(".png"), files)) if self.image_name in images: image_index = images.index(self.image_name) if image_index == 0: Loading Loading @@ -99,12 +105,6 @@ class ImageViewerWidget(QWidget): painter.end() def keyPressEvent(self, event): if event.key() == Qt.Key_J: self.load_next_image() elif event.key() == Qt.Key_K: self.load_prev_image() if __name__ == "__main__": from PyQt5.QtWidgets import QApplication import sys Loading
eaf.el +15 −2 Original line number Diff line number Diff line Loading @@ -191,6 +191,14 @@ by `dired-find-alternate-file'. Otherwise they will be opened normally with `dir :type 'cons :group 'eaf) (defcustom eaf-imageviewer-keybinding '(("j" . "load_next_image") ("k" . "load_prev_image") ) "The keybinding of image viewer." :type 'cons :group 'eaf) (defun eaf-call (method &rest args) (apply 'dbus-call-method :session ; use the session (not system) bus Loading Loading @@ -411,6 +419,11 @@ We need calcuate render allocation to make sure no black border around render co (if function-name-value (eaf-call "execute_function" buffer-id (cdr function-name-value)) (eaf-call "send_key" buffer-id key-desc)))) ((equal buffer-app-name "imageviewer") (let ((function-name-value (assoc key-desc eaf-imageviewer-keybinding))) (if function-name-value (eaf-call "execute_function" buffer-id (cdr function-name-value)) (eaf-call "send_key" buffer-id key-desc)))) (t (eaf-call "send_key" buffer-id key-desc)))) ((string-match "^[CMSs]-.*" key-desc) Loading Loading @@ -648,7 +661,7 @@ When called interactively, URL accepts a file that can be opened by EAF." ;; Split window to show file and previewer. (eaf-split-preview-windows) (setq app-name "markdownpreviewer")) ((member extension-name '("jpg" "png" "bmp")) ((member extension-name '("jpg" "jpeg" "png" "bmp")) (setq app-name "imageviewer")) ((member extension-name '("avi" "rmvb" "ogg" "mp4")) (setq app-name "videoplayer")) Loading Loading @@ -741,7 +754,7 @@ When called interactively, URL accepts a file that can be opened by EAF." (eaf-open (concat "file://" file) "browser")) ((member extension-name '("pdf" "xps" "oxps" "cbz" "epub" "fb2" "fbz")) (eaf-open file "pdfviewer")) ((member extension-name '("jpg" "png" "bmp")) ((member extension-name '("jpg" "jpeg" "png" "bmp")) (eaf-open file "imageviewer")) ((member extension-name '("avi" "rmvb" "ogg" "mp4")) (eaf-open file "videoplayer")) Loading