aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Jasper2009-12-04 19:27:42 +0000
committerUlf Jasper2009-12-04 19:27:42 +0000
commit0c74a3010d0df673d26eeed71ebd11944140df85 (patch)
treea98da8d90cce993889cf84de38f7384cd8045b8d
parent9eaeec5ba8423afe84671c54b80cc9a6f496f377 (diff)
downloademacs-0c74a3010d0df673d26eeed71ebd11944140df85.tar.gz
emacs-0c74a3010d0df673d26eeed71ebd11944140df85.zip
Newsticker fixes/changes.
-rw-r--r--lisp/ChangeLog20
-rw-r--r--lisp/net/newst-backend.el3
-rw-r--r--lisp/net/newst-treeview.el96
3 files changed, 98 insertions, 21 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 37051d58a7f..cfcb63c4116 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,23 @@
12009-12-04 Ulf Jasper <ulf.jasper@web.de>
2
3 * net/newst-treeview.el
4 (newsticker--treeview-list-highlight-start): Restored call to
5 save-excursion: Selected item was stuck.
6 (newsticker--treeview-list-select): New.
7 (newsticker--treeview-item-show-text)
8 (newsticker--treeview-item-show)
9 (newsticker--treeview-item-update): Use new
10 newsticker-treeview-item-mode.
11 (newsticker-treeview-update): Keep current item.
12 (newsticker-treeview-next-new-or-immortal-item): Doc change.
13 (newsticker--treeview-first-feed): Doc change.
14 (newsticker-treeview-list-menu)
15 (newsticker-treeview-item-menu): Added menu entries.
16 (newsticker-treeview-item-mode): New.
17
18 * net/newst-backend.el (newsticker-customize): delete other
19 windows.
20
12009-12-04 Sam Steingold <sds@gnu.org> 212009-12-04 Sam Steingold <sds@gnu.org>
2 22
3 * log-view.el (log-view-mode-map): "q" calls quit-window, 23 * log-view.el (log-view-mode-map): "q" calls quit-window,
diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el
index 8c47314367c..24c4c89fb84 100644
--- a/lisp/net/newst-backend.el
+++ b/lisp/net/newst-backend.el
@@ -7,7 +7,7 @@
7;; Filename: newst-backend.el 7;; Filename: newst-backend.el
8;; URL: http://www.nongnu.org/newsticker 8;; URL: http://www.nongnu.org/newsticker
9;; Keywords: News, RSS, Atom 9;; Keywords: News, RSS, Atom
10;; Time-stamp: "23. Januar 2009, 19:39:22 (ulf)" 10;; Time-stamp: "4. Dezember 2009, 20:08:17 (ulf)"
11 11
12;; ====================================================================== 12;; ======================================================================
13 13
@@ -717,6 +717,7 @@ If URL is nil it is searched at point."
717(defun newsticker-customize () 717(defun newsticker-customize ()
718 "Open the newsticker customization group." 718 "Open the newsticker customization group."
719 (interactive) 719 (interactive)
720 (delete-other-windows)
720 (customize-group "newsticker")) 721 (customize-group "newsticker"))
721 722
722;; ====================================================================== 723;; ======================================================================
diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el
index 01b08c2d66f..cc70dfc6347 100644
--- a/lisp/net/newst-treeview.el
+++ b/lisp/net/newst-treeview.el
@@ -7,7 +7,7 @@
7;; URL: http://www.nongnu.org/newsticker 7;; URL: http://www.nongnu.org/newsticker
8;; Created: 2007 8;; Created: 2007
9;; Keywords: News, RSS, Atom 9;; Keywords: News, RSS, Atom
10;; Time-stamp: "15. April 2009, 19:51:17 (ulf)" 10;; Time-stamp: "4. Dezember 2009, 20:07:40 (ulf)"
11 11
12;; ====================================================================== 12;; ======================================================================
13 13
@@ -597,8 +597,9 @@ The sort function is chosen according to the value of
597(defun newsticker--treeview-list-highlight-start () 597(defun newsticker--treeview-list-highlight-start ()
598 "Return position of selection in treeview list buffer." 598 "Return position of selection in treeview list buffer."
599 (with-current-buffer (newsticker--treeview-list-buffer) 599 (with-current-buffer (newsticker--treeview-list-buffer)
600 (goto-char (point-min)) 600 (save-excursion
601 (next-single-property-change (point) :nt-selected))) 601 (goto-char (point-min))
602 (next-single-property-change (point) :nt-selected))))
602 603
603(defun newsticker--treeview-list-update (clear-buffer) 604(defun newsticker--treeview-list-update (clear-buffer)
604 "Update the faces and highlight in the treeview list buffer. 605 "Update the faces and highlight in the treeview list buffer.
@@ -665,6 +666,27 @@ for the button."
665 'face face 666 'face face
666 'keymap newsticker-treeview-list-sort-button-map))) 667 'keymap newsticker-treeview-list-sort-button-map)))
667 668
669(defun newsticker--treeview-list-select (item)
670 "Select ITEM in treeview's list buffer."
671 (newsticker--treeview-list-clear-highlight)
672 (let (pos num-lines)
673 (save-current-buffer
674 (set-buffer (newsticker--treeview-list-buffer))
675 (goto-char (point-min))
676 (catch 'found
677 (while t
678 (let ((it (get-text-property (point) :nt-item)))
679 (when (eq it item)
680 (newsticker--treeview-list-update-highlight)
681 (newsticker--treeview-list-update-faces)
682 (newsticker--treeview-item-show
683 item (get-text-property (point) :nt-feed))
684 (throw 'found t)))
685 (forward-line 1)
686 (when (eobp)
687 (goto-char (point-min))
688 (throw 'found nil)))))))
689
668;; ====================================================================== 690;; ======================================================================
669;;; item window 691;;; item window
670;; ====================================================================== 692;; ======================================================================
@@ -682,7 +704,7 @@ for the button."
682 (insert "\n\n" description) 704 (insert "\n\n" description)
683 (when newsticker-justification 705 (when newsticker-justification
684 (fill-region (point-min) (point-max) newsticker-justification)) 706 (fill-region (point-min) (point-max) newsticker-justification))
685 (newsticker-treeview-mode) 707 (newsticker-treeview-item-mode)
686 (goto-char (point-min))))) 708 (goto-char (point-min)))))
687 709
688(defun newsticker--treeview-item-show (item feed-name-symbol) 710(defun newsticker--treeview-item-show (item feed-name-symbol)
@@ -716,7 +738,7 @@ for the button."
716 (not is-rendered-HTML)) 738 (not is-rendered-HTML))
717 (fill-region marker1 marker2 newsticker-justification)) 739 (fill-region marker1 marker2 newsticker-justification))
718 740
719 (newsticker-treeview-mode) 741 (newsticker-treeview-item-mode)
720 (goto-char (point-min)) 742 (goto-char (point-min))
721 ;; insert logo at top 743 ;; insert logo at top
722 (let* ((newsticker-enable-logo-manipulations nil) 744 (let* ((newsticker-enable-logo-manipulations nil)
@@ -787,7 +809,7 @@ for the button."
787 (set-buffer (newsticker--treeview-item-buffer)) 809 (set-buffer (newsticker--treeview-item-buffer))
788 (let ((inhibit-read-only t)) 810 (let ((inhibit-read-only t))
789 (erase-buffer)) 811 (erase-buffer))
790 (newsticker-treeview-mode))) 812 (newsticker-treeview-item-mode)))
791 813
792;; ====================================================================== 814;; ======================================================================
793;;; Tree window 815;;; Tree window
@@ -1193,17 +1215,22 @@ Arguments IGNORE are ignored."
1193 "Update all treeview buffers and windows. 1215 "Update all treeview buffers and windows.
1194Note: does not update the layout." 1216Note: does not update the layout."
1195 (interactive) 1217 (interactive)
1196 (newsticker--group-manage-orphan-feeds) 1218 (let ((cur-item (newsticker--treeview-get-selected-item)))
1197 (newsticker--treeview-list-update t) 1219 (newsticker--group-manage-orphan-feeds)
1198 (newsticker--treeview-item-update) 1220 (newsticker--treeview-list-update t)
1199 (newsticker--treeview-tree-update-tags) 1221 (newsticker--treeview-item-update)
1200 (cond (newsticker--treeview-current-feed 1222 (newsticker--treeview-tree-update-tags)
1201 (newsticker--treeview-list-items newsticker--treeview-current-feed)) 1223 (cond (newsticker--treeview-current-feed
1202 (newsticker--treeview-current-vfeed 1224 (newsticker--treeview-list-items newsticker--treeview-current-feed))
1203 (newsticker--treeview-list-items-with-age 1225 (newsticker--treeview-current-vfeed
1204 (intern newsticker--treeview-current-vfeed)))) 1226 (newsticker--treeview-list-items-with-age
1205 (newsticker--treeview-tree-update-highlight) 1227 (intern newsticker--treeview-current-vfeed))))
1206 (newsticker--treeview-list-update-highlight)) 1228 (newsticker--treeview-tree-update-highlight)
1229 (newsticker--treeview-list-update-highlight)
1230 (let ((cur-feed (or newsticker--treeview-current-feed
1231 newsticker--treeview-current-vfeed)))
1232 (if (and cur-feed cur-item)
1233 (newsticker--treeview-list-select cur-item)))))
1207 1234
1208(defun newsticker-treeview-quit () 1235(defun newsticker-treeview-quit ()
1209 "Quit newsticker treeview." 1236 "Quit newsticker treeview."
@@ -1307,7 +1334,8 @@ Note: does not update the layout."
1307 "Move to next new or immortal item. 1334 "Move to next new or immortal item.
1308Will move to next feed until an item is found. Will not move if 1335Will move to next feed until an item is found. Will not move if
1309optional argument CURRENT-ITEM-COUNTS is t and current item is 1336optional argument CURRENT-ITEM-COUNTS is t and current item is
1310new or immortal." 1337new or immortal. Will not move from virtual to ordinary feed
1338tree or vice versa if optional argument DONT-WRAP-TREES is non-nil."
1311 (interactive) 1339 (interactive)
1312 (newsticker--treeview-restore-layout) 1340 (newsticker--treeview-restore-layout)
1313 (newsticker--treeview-list-clear-highlight) 1341 (newsticker--treeview-list-clear-highlight)
@@ -1531,7 +1559,7 @@ is activated."
1531 (widget-apply-action node))))) 1559 (widget-apply-action node)))))
1532 1560
1533(defun newsticker--treeview-first-feed () 1561(defun newsticker--treeview-first-feed ()
1534 "Jump to the depth-first feed in the newsticker-groups tree." 1562 "Jump to the depth-first feed in the `newsticker-groups' tree."
1535 (newsticker-treeview-jump 1563 (newsticker-treeview-jump
1536 (car (reverse (newsticker--group-get-feeds newsticker-groups t))))) 1564 (car (reverse (newsticker--group-get-feeds newsticker-groups t)))))
1537 1565
@@ -1863,8 +1891,31 @@ Remove obsolete feeds as well."
1863 (define-key menu [newsticker-treeview-mark-list-items-old] 1891 (define-key menu [newsticker-treeview-mark-list-items-old]
1864 (list 'menu-item "Mark all items old" 1892 (list 'menu-item "Mark all items old"
1865 'newsticker-treeview-mark-list-items-old)) 1893 'newsticker-treeview-mark-list-items-old))
1894 (define-key menu [newsticker-treeview-mark-item-old]
1895 (list 'menu-item "Mark current item old"
1896 'newsticker-treeview-mark-item-old))
1897 (define-key menu [newsticker-treeview-toggle-item-immortal]
1898 (list 'menu-item "Mark current item immortal (toggle)"
1899 'newsticker-treeview-toggle-item-immortal))
1900 (define-key menu [newsticker-treeview-get-news]
1901 (list 'menu-item "Get news for current feed"
1902 'newsticker-treeview-get-news))
1866 menu) 1903 menu)
1867 "Map for newsticker tree menu.") 1904 "Map for newsticker list menu.")
1905
1906(defvar newsticker-treeview-item-menu
1907 (let ((menu (make-sparse-keymap "Newsticker Item")))
1908 (define-key menu [newsticker-treeview-mark-item-old]
1909 (list 'menu-item "Mark current item old"
1910 'newsticker-treeview-mark-item-old))
1911 (define-key menu [newsticker-treeview-toggle-item-immortal]
1912 (list 'menu-item "Mark current item immortal (toggle)"
1913 'newsticker-treeview-toggle-item-immortal))
1914 (define-key menu [newsticker-treeview-get-news]
1915 (list 'menu-item "Get news for current feed"
1916 'newsticker-treeview-get-news))
1917 menu)
1918 "Map for newsticker item menu.")
1868 1919
1869(defvar newsticker-treeview-mode-map 1920(defvar newsticker-treeview-mode-map
1870 (let ((map (make-sparse-keymap 'newsticker-treeview-mode-map))) 1921 (let ((map (make-sparse-keymap 'newsticker-treeview-mode-map)))
@@ -1929,6 +1980,11 @@ Remove obsolete feeds as well."
1929 (define-key newsticker-treeview-list-mode-map [down-mouse-3] 1980 (define-key newsticker-treeview-list-mode-map [down-mouse-3]
1930 newsticker-treeview-list-menu)) 1981 newsticker-treeview-list-menu))
1931 1982
1983(define-derived-mode newsticker-treeview-item-mode newsticker-treeview-mode
1984 "Item"
1985 (define-key newsticker-treeview-item-mode-map [down-mouse-3]
1986 newsticker-treeview-item-menu))
1987
1932(defun newsticker-treeview-tree-click (event) 1988(defun newsticker-treeview-tree-click (event)
1933 "Handle click EVENT on a tag in the newsticker tree." 1989 "Handle click EVENT on a tag in the newsticker tree."
1934 (interactive "e") 1990 (interactive "e")