emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r115667: eww: minor code fixes and toolbar support


From: Teodor Zlatanov
Subject: [Emacs-diffs] trunk r115667: eww: minor code fixes and toolbar support
Date: Sat, 21 Dec 2013 20:12:18 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 115667
revision-id: address@hidden
parent: address@hidden
author: RĂ¼diger Sonderfeld <address@hidden>
committer: Ted Zlatanov <address@hidden>
branch nick: quickfixes
timestamp: Sat 2013-12-21 15:13:09 -0500
message:
  eww: minor code fixes and toolbar support
  
  * net/eww.el (eww-back-url, eww-forward-url, eww-next-url)
  (eww-previous-url, eww-up-url, eww-top-url, eww-add-bookmark)
  (eww-bookmark-prepare, eww-bookmark-kill, eww-bookmark-yank)
  (eww-bookmark-browse, eww-next-bookmark, eww-previous-bookmark):
  Use `user-error'.
  (eww-bookmark-mode-map): Add menu.
  (eww-render, eww-mode): Use `setq-local'.
  (eww-tool-bar-map): New variable.
  (eww-mode): Set `tool-bar-map'.
  (eww-view-source): Check for `html-mode' with `fboundp'.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/net/eww.el                eww.el-20130610114603-80ap3gwnw4x4m5ix-1
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-12-21 17:54:16 +0000
+++ b/lisp/ChangeLog    2013-12-21 20:13:09 +0000
@@ -1,3 +1,16 @@
+2013-12-21  RĂ¼diger Sonderfeld  <address@hidden>
+
+       * net/eww.el (eww-back-url, eww-forward-url, eww-next-url)
+       (eww-previous-url, eww-up-url, eww-top-url, eww-add-bookmark)
+       (eww-bookmark-prepare, eww-bookmark-kill, eww-bookmark-yank)
+       (eww-bookmark-browse, eww-next-bookmark, eww-previous-bookmark):
+       Use `user-error'.
+       (eww-bookmark-mode-map): Add menu.
+       (eww-render, eww-mode): Use `setq-local'.
+       (eww-tool-bar-map): New variable.
+       (eww-mode): Set `tool-bar-map'.
+       (eww-view-source): Check for `html-mode' with `fboundp'.
+
 2013-12-21  Lars Magne Ingebrigtsen  <address@hidden>
 
        * net/shr.el (shr--extract-best-source): Don't bug out on audio

=== modified file 'lisp/net/eww.el'
--- a/lisp/net/eww.el   2013-12-19 16:25:25 +0000
+++ b/lisp/net/eww.el   2013-12-21 20:13:09 +0000
@@ -171,12 +171,12 @@
   (let ((redirect (plist-get status :redirect)))
     (when redirect
       (setq url redirect)))
-  (set (make-local-variable 'eww-next-url) nil)
-  (set (make-local-variable 'eww-previous-url) nil)
-  (set (make-local-variable 'eww-up-url) nil)
-  (set (make-local-variable 'eww-home-url) nil)
-  (set (make-local-variable 'eww-start-url) nil)
-  (set (make-local-variable 'eww-contents-url) nil)
+  (setq-local eww-next-url nil)
+  (setq-local eww-previous-url nil)
+  (setq-local eww-up-url nil)
+  (setq-local eww-home-url nil)
+  (setq-local eww-start-url nil)
+  (setq-local eww-contents-url nil)
   (let* ((headers (eww-parse-headers))
         (content-type
          (mail-header-parse-content-type
@@ -388,7 +388,7 @@
       (delete-region (point-min) (point-max))
       (insert (or eww-current-source "no source"))
       (goto-char (point-min))
-      (when (featurep 'html-mode)
+      (when (fboundp 'html-mode)
         (html-mode)))
     (view-buffer buf)))
 
@@ -438,18 +438,35 @@
        ["List cookies" url-cookie-list t]))
     map))
 
+(defvar eww-tool-bar-map
+  (let ((map (make-sparse-keymap)))
+    (dolist (tool-bar-item
+             '((eww-quit . "close")
+               (eww-reload . "refresh")
+               (eww-back-url . "left-arrow")
+               (eww-forward-url . "right-arrow")
+               (eww-view-source . "show")
+               (eww-copy-page-url . "copy")
+               (eww-add-bookmark . "bookmark_add"))) ;; ...
+      (tool-bar-local-item-from-menu
+       (car tool-bar-item) (cdr tool-bar-item) map eww-mode-map))
+    map)
+  "Tool bar for `eww-mode'.")
+
 (define-derived-mode eww-mode nil "eww"
   "Mode for browsing the web.
 
 \\{eww-mode-map}"
   ;; FIXME?  This seems a strange default.
-  (set (make-local-variable 'eww-current-url) 'author)
-  (set (make-local-variable 'eww-current-dom) nil)
-  (set (make-local-variable 'eww-current-source) nil)
-  (set (make-local-variable 'browse-url-browser-function) 'eww-browse-url)
-  (set (make-local-variable 'after-change-functions) 'eww-process-text-input)
-  (set (make-local-variable 'eww-history) nil)
-  (set (make-local-variable 'eww-history-position) 0)
+  (setq-local eww-current-url 'author)
+  (setq-local eww-current-dom nil)
+  (setq-local eww-current-source nil)
+  (setq-local browse-url-browser-function 'eww-browse-url)
+  (setq-local after-change-functions 'eww-process-text-input)
+  (setq-local eww-history nil)
+  (setq-local eww-history-position 0)
+  (when (boundp 'tool-bar-map)
+   (setq-local tool-bar-map eww-tool-bar-map))
   (buffer-disable-undo)
   ;;(setq buffer-read-only t)
   )
@@ -474,7 +491,7 @@
   "Go to the previously displayed page."
   (interactive)
   (when (>= eww-history-position (length eww-history))
-    (error "No previous page"))
+    (user-error "No previous page"))
   (eww-save-history)
   (setq eww-history-position (+ eww-history-position 2))
   (eww-restore-history (elt eww-history (1- eww-history-position))))
@@ -483,7 +500,7 @@
   "Go to the next displayed page."
   (interactive)
   (when (zerop eww-history-position)
-    (error "No next page"))
+    (user-error "No next page"))
   (eww-save-history)
   (eww-restore-history (elt eww-history (1- eww-history-position))))
 
@@ -505,7 +522,7 @@
   (interactive)
   (if eww-next-url
       (eww-browse-url (shr-expand-url eww-next-url eww-current-url))
-    (error "No `next' on this page")))
+    (user-error "No `next' on this page")))
 
 (defun eww-previous-url ()
   "Go to the page marked `previous'.
@@ -514,7 +531,7 @@
   (interactive)
   (if eww-previous-url
       (eww-browse-url (shr-expand-url eww-previous-url eww-current-url))
-    (error "No `previous' on this page")))
+    (user-error "No `previous' on this page")))
 
 (defun eww-up-url ()
   "Go to the page marked `up'.
@@ -523,7 +540,7 @@
   (interactive)
   (if eww-up-url
       (eww-browse-url (shr-expand-url eww-up-url eww-current-url))
-    (error "No `up' on this page")))
+    (user-error "No `up' on this page")))
 
 (defun eww-top-url ()
   "Go to the page marked `top'.
@@ -535,7 +552,7 @@
                      eww-home-url)))
     (if best-url
        (eww-browse-url (shr-expand-url best-url eww-current-url))
-      (error "No `top' for this page"))))
+      (user-error "No `top' for this page"))))
 
 (defun eww-reload ()
   "Reload the current page."
@@ -1073,7 +1090,7 @@
   (dolist (bookmark eww-bookmarks)
     (when (equal eww-current-url
                 (plist-get bookmark :url))
-      (error "Already bookmarked")))
+      (user-error "Already bookmarked")))
   (if (y-or-n-p "bookmark this page? ")
       (progn
        (let ((title (replace-regexp-in-string "[\n\t\r]" " " 
eww-current-title)))
@@ -1106,8 +1123,8 @@
 
 (defun eww-bookmark-prepare ()
   (eww-read-bookmarks)
-  (when (null eww-bookmarks)
-    (error "No bookmarks are defined"))
+  (unless eww-bookmarks
+    (user-error "No bookmarks are defined"))
   (set-buffer (get-buffer-create "*eww bookmarks*"))
   (eww-bookmark-mode)
   (let ((format "%-40s %s")
@@ -1135,7 +1152,7 @@
         (bookmark (get-text-property start 'eww-bookmark))
         (inhibit-read-only t))
     (unless bookmark
-      (error "No bookmark on the current line"))
+      (user-error "No bookmark on the current line"))
     (forward-line 1)
     (push (buffer-substring start (point)) eww-bookmark-kill-ring)
     (delete-region start (point))
@@ -1146,7 +1163,7 @@
   "Yank a previously killed bookmark to the current line."
   (interactive)
   (unless eww-bookmark-kill-ring
-    (error "No previously killed bookmark"))
+    (user-error "No previously killed bookmark"))
   (beginning-of-line)
   (let ((inhibit-read-only t)
        (start (point))
@@ -1170,7 +1187,7 @@
   (interactive)
   (let ((bookmark (get-text-property (line-beginning-position) 'eww-bookmark)))
     (unless bookmark
-      (error "No bookmark on the current line"))
+      (user-error "No bookmark on the current line"))
     ;; We wish to leave this window, but if it's the only window here,
     ;; just let it remain.
     (ignore-errors
@@ -1192,7 +1209,7 @@
       (setq bookmark (get-text-property (line-beginning-position)
                                        'eww-bookmark))
       (unless bookmark
-       (error "No next bookmark")))
+       (user-error "No next bookmark")))
     (eww-browse-url (plist-get bookmark :url))))
 
 (defun eww-previous-bookmark ()
@@ -1211,7 +1228,7 @@
       (when (eolp)
        (forward-line -1))
       (if (bobp)
-         (error "No previous bookmark")
+         (user-error "No previous bookmark")
        (forward-line -1))
       (setq bookmark (get-text-property (line-beginning-position)
                                        'eww-bookmark)))
@@ -1224,6 +1241,17 @@
     (define-key map [(control k)] 'eww-bookmark-kill)
     (define-key map [(control y)] 'eww-bookmark-yank)
     (define-key map "\r" 'eww-bookmark-browse)
+
+    (easy-menu-define nil map
+      "Menu for `eww-bookmark-mode-map'."
+      '("Eww Bookmark"
+        ["Exit" eww-bookmark-quit t]
+        ["Browse" eww-bookmark-browse
+         :active (get-text-property (line-beginning-position) 'eww-bookmark)]
+        ["Kill" eww-bookmark-kill
+         :active (get-text-property (line-beginning-position) 'eww-bookmark)]
+        ["Yank" eww-bookmark-yank
+         :active eww-bookmark-kill-ring]))
     map))
 
 (define-derived-mode eww-bookmark-mode nil "eww bookmarks"


reply via email to

[Prev in Thread] Current Thread [Next in Thread]