summaryrefslogtreecommitdiff
path: root/lisp/net
diff options
context:
space:
mode:
authorUlf Jasper <ulf.jasper@web.de>2009-12-04 19:27:42 +0000
committerUlf Jasper <ulf.jasper@web.de>2009-12-04 19:27:42 +0000
commit9df60b1bdf0c5b8493330c2636ef166aaf5d35b0 (patch)
tree93e7e9cce4d42e11b6e1e092f01e70cc4c5cc04a /lisp/net
parent2dffaec1da3eb46c5f274fd876e4603eda7bc5b5 (diff)
downloademacs-9df60b1bdf0c5b8493330c2636ef166aaf5d35b0.tar.gz
Newsticker fixes/changes.
Diffstat (limited to 'lisp/net')
-rw-r--r--lisp/net/newst-backend.el3
-rw-r--r--lisp/net/newst-treeview.el96
2 files changed, 78 insertions, 21 deletions
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 @@
;; Filename: newst-backend.el
;; URL: http://www.nongnu.org/newsticker
;; Keywords: News, RSS, Atom
-;; Time-stamp: "23. Januar 2009, 19:39:22 (ulf)"
+;; Time-stamp: "4. Dezember 2009, 20:08:17 (ulf)"
;; ======================================================================
@@ -717,6 +717,7 @@ If URL is nil it is searched at point."
(defun newsticker-customize ()
"Open the newsticker customization group."
(interactive)
+ (delete-other-windows)
(customize-group "newsticker"))
;; ======================================================================
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 @@
;; URL: http://www.nongnu.org/newsticker
;; Created: 2007
;; Keywords: News, RSS, Atom
-;; Time-stamp: "15. April 2009, 19:51:17 (ulf)"
+;; Time-stamp: "4. Dezember 2009, 20:07:40 (ulf)"
;; ======================================================================
@@ -597,8 +597,9 @@ The sort function is chosen according to the value of
(defun newsticker--treeview-list-highlight-start ()
"Return position of selection in treeview list buffer."
(with-current-buffer (newsticker--treeview-list-buffer)
- (goto-char (point-min))
- (next-single-property-change (point) :nt-selected)))
+ (save-excursion
+ (goto-char (point-min))
+ (next-single-property-change (point) :nt-selected))))
(defun newsticker--treeview-list-update (clear-buffer)
"Update the faces and highlight in the treeview list buffer.
@@ -665,6 +666,27 @@ for the button."
'face face
'keymap newsticker-treeview-list-sort-button-map)))
+(defun newsticker--treeview-list-select (item)
+ "Select ITEM in treeview's list buffer."
+ (newsticker--treeview-list-clear-highlight)
+ (let (pos num-lines)
+ (save-current-buffer
+ (set-buffer (newsticker--treeview-list-buffer))
+ (goto-char (point-min))
+ (catch 'found
+ (while t
+ (let ((it (get-text-property (point) :nt-item)))
+ (when (eq it item)
+ (newsticker--treeview-list-update-highlight)
+ (newsticker--treeview-list-update-faces)
+ (newsticker--treeview-item-show
+ item (get-text-property (point) :nt-feed))
+ (throw 'found t)))
+ (forward-line 1)
+ (when (eobp)
+ (goto-char (point-min))
+ (throw 'found nil)))))))
+
;; ======================================================================
;;; item window
;; ======================================================================
@@ -682,7 +704,7 @@ for the button."
(insert "\n\n" description)
(when newsticker-justification
(fill-region (point-min) (point-max) newsticker-justification))
- (newsticker-treeview-mode)
+ (newsticker-treeview-item-mode)
(goto-char (point-min)))))
(defun newsticker--treeview-item-show (item feed-name-symbol)
@@ -716,7 +738,7 @@ for the button."
(not is-rendered-HTML))
(fill-region marker1 marker2 newsticker-justification))
- (newsticker-treeview-mode)
+ (newsticker-treeview-item-mode)
(goto-char (point-min))
;; insert logo at top
(let* ((newsticker-enable-logo-manipulations nil)
@@ -787,7 +809,7 @@ for the button."
(set-buffer (newsticker--treeview-item-buffer))
(let ((inhibit-read-only t))
(erase-buffer))
- (newsticker-treeview-mode)))
+ (newsticker-treeview-item-mode)))
;; ======================================================================
;;; Tree window
@@ -1193,17 +1215,22 @@ Arguments IGNORE are ignored."
"Update all treeview buffers and windows.
Note: does not update the layout."
(interactive)
- (newsticker--group-manage-orphan-feeds)
- (newsticker--treeview-list-update t)
- (newsticker--treeview-item-update)
- (newsticker--treeview-tree-update-tags)
- (cond (newsticker--treeview-current-feed
- (newsticker--treeview-list-items newsticker--treeview-current-feed))
- (newsticker--treeview-current-vfeed
- (newsticker--treeview-list-items-with-age
- (intern newsticker--treeview-current-vfeed))))
- (newsticker--treeview-tree-update-highlight)
- (newsticker--treeview-list-update-highlight))
+ (let ((cur-item (newsticker--treeview-get-selected-item)))
+ (newsticker--group-manage-orphan-feeds)
+ (newsticker--treeview-list-update t)
+ (newsticker--treeview-item-update)
+ (newsticker--treeview-tree-update-tags)
+ (cond (newsticker--treeview-current-feed
+ (newsticker--treeview-list-items newsticker--treeview-current-feed))
+ (newsticker--treeview-current-vfeed
+ (newsticker--treeview-list-items-with-age
+ (intern newsticker--treeview-current-vfeed))))
+ (newsticker--treeview-tree-update-highlight)
+ (newsticker--treeview-list-update-highlight)
+ (let ((cur-feed (or newsticker--treeview-current-feed
+ newsticker--treeview-current-vfeed)))
+ (if (and cur-feed cur-item)
+ (newsticker--treeview-list-select cur-item)))))
(defun newsticker-treeview-quit ()
"Quit newsticker treeview."
@@ -1307,7 +1334,8 @@ Note: does not update the layout."
"Move to next new or immortal item.
Will move to next feed until an item is found. Will not move if
optional argument CURRENT-ITEM-COUNTS is t and current item is
-new or immortal."
+new or immortal. Will not move from virtual to ordinary feed
+tree or vice versa if optional argument DONT-WRAP-TREES is non-nil."
(interactive)
(newsticker--treeview-restore-layout)
(newsticker--treeview-list-clear-highlight)
@@ -1531,7 +1559,7 @@ is activated."
(widget-apply-action node)))))
(defun newsticker--treeview-first-feed ()
- "Jump to the depth-first feed in the newsticker-groups tree."
+ "Jump to the depth-first feed in the `newsticker-groups' tree."
(newsticker-treeview-jump
(car (reverse (newsticker--group-get-feeds newsticker-groups t)))))
@@ -1863,8 +1891,31 @@ Remove obsolete feeds as well."
(define-key menu [newsticker-treeview-mark-list-items-old]
(list 'menu-item "Mark all items old"
'newsticker-treeview-mark-list-items-old))
+ (define-key menu [newsticker-treeview-mark-item-old]
+ (list 'menu-item "Mark current item old"
+ 'newsticker-treeview-mark-item-old))
+ (define-key menu [newsticker-treeview-toggle-item-immortal]
+ (list 'menu-item "Mark current item immortal (toggle)"
+ 'newsticker-treeview-toggle-item-immortal))
+ (define-key menu [newsticker-treeview-get-news]
+ (list 'menu-item "Get news for current feed"
+ 'newsticker-treeview-get-news))
menu)
- "Map for newsticker tree menu.")
+ "Map for newsticker list menu.")
+
+(defvar newsticker-treeview-item-menu
+ (let ((menu (make-sparse-keymap "Newsticker Item")))
+ (define-key menu [newsticker-treeview-mark-item-old]
+ (list 'menu-item "Mark current item old"
+ 'newsticker-treeview-mark-item-old))
+ (define-key menu [newsticker-treeview-toggle-item-immortal]
+ (list 'menu-item "Mark current item immortal (toggle)"
+ 'newsticker-treeview-toggle-item-immortal))
+ (define-key menu [newsticker-treeview-get-news]
+ (list 'menu-item "Get news for current feed"
+ 'newsticker-treeview-get-news))
+ menu)
+ "Map for newsticker item menu.")
(defvar newsticker-treeview-mode-map
(let ((map (make-sparse-keymap 'newsticker-treeview-mode-map)))
@@ -1929,6 +1980,11 @@ Remove obsolete feeds as well."
(define-key newsticker-treeview-list-mode-map [down-mouse-3]
newsticker-treeview-list-menu))
+(define-derived-mode newsticker-treeview-item-mode newsticker-treeview-mode
+ "Item"
+ (define-key newsticker-treeview-item-mode-map [down-mouse-3]
+ newsticker-treeview-item-menu))
+
(defun newsticker-treeview-tree-click (event)
"Handle click EVENT on a tag in the newsticker tree."
(interactive "e")