aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Jasper2021-02-24 19:26:37 +0100
committerUlf Jasper2021-02-24 19:26:37 +0100
commit654cb8e6b7fbdca32f07609cafe906e2470cc73d (patch)
tree7e145123f4ea485683a40ac111b83bfd24bb532b
parent1f5ed3edc6244a26697ff5584431ff546aeaf9a4 (diff)
downloademacs-654cb8e6b7fbdca32f07609cafe906e2470cc73d.tar.gz
emacs-654cb8e6b7fbdca32f07609cafe906e2470cc73d.zip
Add options to use feed names from newticker-url-list
* lisp/net/newst-treeview.el (newsticker-treeview-use-feed-name-from-url-list-in-treeview): New. (newsticker-treeview-use-feed-name-from-url-list-in-itemview): New. (newsticker--treeview-item-show): Show feed name from newsticker-url-list if wanted. (newsticker--treeview-propertize-tag): Add argument 'tooltip'. (newsticker--treeview-tree-get-tag): Usefeed name from newsticker-url-list if wanted. (Fixes third issue in Bug#41376.)
-rw-r--r--lisp/net/newst-treeview.el46
1 files changed, 36 insertions, 10 deletions
diff --git a/lisp/net/newst-treeview.el b/lisp/net/newst-treeview.el
index 618a791c575..c0b5e34f681 100644
--- a/lisp/net/newst-treeview.el
+++ b/lisp/net/newst-treeview.el
@@ -119,6 +119,18 @@ applies to newsticker only."
119 :type 'boolean 119 :type 'boolean
120 :group 'newsticker-treeview) 120 :group 'newsticker-treeview)
121 121
122(defcustom newsticker-treeview-use-feed-name-from-url-list-in-treeview
123 t
124 "Use the feed names from 'newsticker-url-list' for display in treeview."
125 :type 'boolean
126 :group 'newsticker-treeview)
127
128(defcustom newsticker-treeview-use-feed-name-from-url-list-in-itemview
129 t
130 "Use feed names from 'newsticker-url-list' in itemview."
131 :type 'boolean
132 :group 'newsticker-treeview)
133
122(defvar newsticker-groups 134(defvar newsticker-groups
123 '("Feeds") 135 '("Feeds")
124 "List of feed groups, used in the treeview frontend. 136 "List of feed groups, used in the treeview frontend.
@@ -738,11 +750,14 @@ for the button."
738 (img (newsticker--image-read feed-name-symbol nil 40))) 750 (img (newsticker--image-read feed-name-symbol nil 40)))
739 (if (and (display-images-p) img) 751 (if (and (display-images-p) img)
740 (newsticker--insert-image img (car item)) 752 (newsticker--insert-image img (car item))
741 (insert (newsticker--real-feed-name feed-name-symbol)))) 753 (insert (if newsticker-treeview-use-feed-name-from-url-list-in-itemview
754 (symbol-name feed-name-symbol)
755 (newsticker--real-feed-name feed-name-symbol)))))
742 (add-text-properties (point-min) (point) 756 (add-text-properties (point-min) (point)
743 (list 'face 'newsticker-feed-face 757 (list 'face 'newsticker-feed-face
744 'mouse-face 'highlight 758 'mouse-face 'highlight
745 'help-echo "Visit in web browser." 759 'help-echo (concat (newsticker--real-feed-name feed-name-symbol)
760 "\nClick to visit in web browser.")
746 :nt-link (newsticker--link item) 761 :nt-link (newsticker--link item)
747 'keymap newsticker--treeview-url-keymap)) 762 'keymap newsticker--treeview-url-keymap))
748 (setq pos (point)) 763 (setq pos (point))
@@ -933,10 +948,10 @@ Optional arguments CHANGED-WIDGET and EVENT are ignored."
933 (newsticker-treeview-mode))) 948 (newsticker-treeview-mode)))
934 949
935(defun newsticker--treeview-propertize-tag (tag &optional num-new nt-id feed 950(defun newsticker--treeview-propertize-tag (tag &optional num-new nt-id feed
936 vfeed) 951 vfeed tooltip)
937 "Return propertized copy of string TAG. 952 "Return propertized copy of string TAG.
938Optional argument NUM-NEW is used for choosing face, other 953Optional argument NUM-NEW is used for choosing face, other
939arguments NT-ID, FEED, and VFEED are added as properties." 954arguments NT-ID, FEED, VFEED and TOOLTIP are added as properties."
940 ;;(message "newsticker--treeview-propertize-tag `%s' %s" feed nt-id) 955 ;;(message "newsticker--treeview-propertize-tag `%s' %s" feed nt-id)
941 (let ((face 'newsticker-treeview-face) 956 (let ((face 'newsticker-treeview-face)
942 (map (make-sparse-keymap))) 957 (map (make-sparse-keymap)))
@@ -950,14 +965,14 @@ arguments NT-ID, FEED, and VFEED are added as properties."
950 :nt-id nt-id 965 :nt-id nt-id
951 :nt-feed feed 966 :nt-feed feed
952 :nt-vfeed vfeed 967 :nt-vfeed vfeed
953 'help-echo tag 968 'help-echo tooltip
954 'mouse-face 'highlight))) 969 'mouse-face 'highlight)))
955 970
956(defun newsticker--treeview-tree-get-tag (feed-name vfeed-name 971(defun newsticker--treeview-tree-get-tag (feed-name vfeed-name
957 &optional nt-id) 972 &optional nt-id)
958 "Return a tag string for either FEED-NAME or, if it is nil, for VFEED-NAME. 973 "Return a tag string for either FEED-NAME or, if it is nil, for VFEED-NAME.
959Optional argument NT-ID is added to the tag's properties." 974Optional argument NT-ID is added to the tag's properties."
960 (let (tag (num-new 0)) 975 (let (tag tooltip (num-new 0))
961 (cond (vfeed-name 976 (cond (vfeed-name
962 (cond ((string= vfeed-name "new") 977 (cond ((string= vfeed-name "new")
963 (setq num-new (newsticker--stat-num-items-total 'new)) 978 (setq num-new (newsticker--stat-num-items-total 'new))
@@ -970,18 +985,29 @@ Optional argument NT-ID is added to the tag's properties."
970 (setq tag (format "Obsolete items (%d)" num-new))) 985 (setq tag (format "Obsolete items (%d)" num-new)))
971 ((string= vfeed-name "all") 986 ((string= vfeed-name "all")
972 (setq num-new (newsticker--stat-num-items-total)) 987 (setq num-new (newsticker--stat-num-items-total))
973 (setq tag (format "All items (%d)" num-new))))) 988 (setq tag (format "All items (%d)" num-new))))
989 (setq tooltip tag))
974 (feed-name 990 (feed-name
975 (setq num-new (newsticker--stat-num-items-for-group 991 (setq num-new (newsticker--stat-num-items-for-group
976 (intern feed-name) 'new 'immortal)) 992 (intern feed-name) 'new 'immortal))
977 (setq tag 993 (setq tag
978 (format "%s (%d)" 994 (format "%s (%d)"
979 (newsticker--real-feed-name (intern feed-name)) 995 (if newsticker-treeview-use-feed-name-from-url-list-in-itemview
980 num-new)))) 996 feed-name
997 (newsticker--real-feed-name (intern feed-name)))
998 num-new))
999 (setq tooltip
1000 (if (newsticker--group-get-group feed-name)
1001 tag
1002 (format "%s (%d)\n%s"
1003 feed-name
1004 num-new
1005 (newsticker--real-feed-name (intern feed-name)))))))
981 (if tag 1006 (if tag
982 (newsticker--treeview-propertize-tag tag num-new 1007 (newsticker--treeview-propertize-tag tag num-new
983 nt-id 1008 nt-id
984 feed-name vfeed-name)))) 1009 feed-name vfeed-name
1010 tooltip))))
985 1011
986(defun newsticker--stat-num-items-for-group (feed-name-symbol &rest ages) 1012(defun newsticker--stat-num-items-for-group (feed-name-symbol &rest ages)
987 "Count number of items in feed FEED-NAME-SYMBOL that have an age matching AGES." 1013 "Count number of items in feed FEED-NAME-SYMBOL that have an age matching AGES."