diff options
| author | Ulf Jasper | 2009-12-04 19:27:42 +0000 |
|---|---|---|
| committer | Ulf Jasper | 2009-12-04 19:27:42 +0000 |
| commit | 0c74a3010d0df673d26eeed71ebd11944140df85 (patch) | |
| tree | a98da8d90cce993889cf84de38f7384cd8045b8d | |
| parent | 9eaeec5ba8423afe84671c54b80cc9a6f496f377 (diff) | |
| download | emacs-0c74a3010d0df673d26eeed71ebd11944140df85.tar.gz emacs-0c74a3010d0df673d26eeed71ebd11944140df85.zip | |
Newsticker fixes/changes.
| -rw-r--r-- | lisp/ChangeLog | 20 | ||||
| -rw-r--r-- | lisp/net/newst-backend.el | 3 | ||||
| -rw-r--r-- | lisp/net/newst-treeview.el | 96 |
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 @@ | |||
| 1 | 2009-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 | |||
| 1 | 2009-12-04 Sam Steingold <sds@gnu.org> | 21 | 2009-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. |
| 1194 | Note: does not update the layout." | 1216 | Note: 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. |
| 1308 | Will move to next feed until an item is found. Will not move if | 1335 | Will move to next feed until an item is found. Will not move if |
| 1309 | optional argument CURRENT-ITEM-COUNTS is t and current item is | 1336 | optional argument CURRENT-ITEM-COUNTS is t and current item is |
| 1310 | new or immortal." | 1337 | new or immortal. Will not move from virtual to ordinary feed |
| 1338 | tree 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") |