aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtur Malabarba <bruce.connor.am@gmail.com>2015-02-12 13:42:38 -0200
committerArtur Malabarba <bruce.connor.am@gmail.com>2015-02-12 14:10:15 -0200
commita7c70149cfbfc24791d7966b0bef8a3a691e45f4 (patch)
tree2de786cb7a51a3acc775b6a5f1615d48cf7fe09f
parentf413f02c27f464b37f18ffbd6ea416c76f6ed138 (diff)
Define tabs with sx-question-list--make-pager and obsolete some old ones
-rw-r--r--sx-tab.el212
1 files changed, 93 insertions, 119 deletions
diff --git a/sx-tab.el b/sx-tab.el
index 8f67253..40cead8 100644
--- a/sx-tab.el
+++ b/sx-tab.el
@@ -144,167 +144,141 @@ to use instead."
(add-to-list 'sx-tab--list ,tab)))))
-;;; FrontPage
-(sx-tab--define "FrontPage"
- (lambda (page)
- (sx-question-get-questions
- sx-question-list--site page '((sort . activity)))))
+;;; Entry commands
+(sx-tab--define "All-Questions"
+ (sx-question-list--make-pager 'questions)
+ nil nil nil
+ (setq sx-question-list--order-methods
+ sx-tab--order-methods))
;;;###autoload
-(autoload 'sx-tab-frontpage
+(autoload 'sx-tab-all-questions
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
-
-;;; Newest
-(sx-tab--define "Newest"
- (lambda (page)
- (sx-question-get-questions
- sx-question-list--site page '((sort . creation)))))
+(sx-tab--define "Unanswered"
+ (sx-question-list--make-pager 'questions 'unanswered))
;;;###autoload
-(autoload 'sx-tab-newest
+(autoload 'sx-tab-unanswered
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
-
-
-;;; TopVoted
-(sx-tab--define "TopVoted"
- (lambda (page)
- (sx-question-get-questions
- sx-question-list--site page '((sort . votes)))))
+(sx-tab--define "Unanswered-My-Tags"
+ (sx-question-list--make-pager 'questions 'unanswered/my-tags))
;;;###autoload
-(autoload 'sx-tab-topvoted
+(autoload 'sx-tab-unanswered-my-tags
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
-
-
-;;; Hot
-(sx-tab--define "Hot"
- (lambda (page)
- (sx-question-get-questions
- sx-question-list--site page '((sort . hot)))))
+(sx-tab--define "Featured"
+ (sx-question-list--make-pager 'questions 'featured))
;;;###autoload
-(autoload 'sx-tab-hot
+(autoload 'sx-tab-featured
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
-
-
-;;; Week
-(sx-tab--define "Week"
- (lambda (page)
- (sx-question-get-questions
- sx-question-list--site page '((sort . week)))))
+(sx-tab--define "Starred"
+ (sx-question-list--make-pager 'me 'favorites))
;;;###autoload
-(autoload 'sx-tab-week
+(autoload 'sx-tab-featured
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
+
+;;; Inter-modes navigation
+(defun sx-tab-meta-or-main ()
+ "Switch to the meta version of a main site, or vice-versa.
+Inside a question, go to the frontpage of the site this question
+belongs to."
+ (interactive)
+ (if (and (derived-mode-p 'sx-question-list-mode)
+ sx-question-list--site)
+ (sx-question-list-switch-site
+ (if (string-match "\\`meta\\." sx-question-list--site)
+ (replace-match "" :fixedcase nil sx-question-list--site)
+ (concat "meta." sx-question-list--site)))
+ (sx-tab-all-questions nil (sx--site (sx--data-here 'question)))))
-;;; Month
-(sx-tab--define "Month"
- (lambda (page)
- (sx-question-get-questions
- sx-question-list--site page '((sort . month)))))
+;;; Obsolete tabs
+(defconst sx-tab--basic-question-pager
+ (sx-question-list--make-pager 'questions))
+
+(sx-tab--define "FrontPage"
+ sx-tab--basic-question-pager
+ nil nil "All-Questions"
+ (setq sx-question-list--order 'activity)
+ (setq sx-question-list--order-methods
+ sx-tab--order-methods))
;;;###autoload
-(autoload 'sx-tab-month
+(autoload 'sx-tab-frontpage
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
-
-;;; Unanswered
-(sx-tab--define "Unanswered"
- (lambda (page)
- (sx-question-get-questions
- sx-question-list--site page nil 'unanswered)))
+(sx-tab--define "Newest"
+ sx-tab--basic-question-pager
+ nil nil "All-Questions"
+ (setq sx-question-list--order 'creation)
+ (setq sx-question-list--order-methods
+ sx-tab--order-methods))
;;;###autoload
-(autoload 'sx-tab-unanswered
+(autoload 'sx-tab-newest
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
-
-;;; Unanswered My-tags
-(sx-tab--define "Unanswered-my-tags"
- (lambda (page)
- (sx-question-get-questions
- sx-question-list--site page nil 'unanswered/my-tags)))
+(sx-tab--define "TopVoted"
+ sx-tab--basic-question-pager
+ nil nil "All-Questions"
+ (setq sx-question-list--order 'votes)
+ (setq sx-question-list--order-methods
+ sx-tab--order-methods))
;;;###autoload
-(autoload 'sx-tab-unanswered-my-tags
+(autoload 'sx-tab-topvoted
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
-
-;;; Featured
-(sx-tab--define "Featured"
- (lambda (page)
- (sx-question-get-questions
- sx-question-list--site page nil 'featured)))
+(sx-tab--define "Hot"
+ sx-tab--basic-question-pager
+ nil nil "All-Questions"
+ (setq sx-question-list--order 'hot)
+ (setq sx-question-list--order-methods
+ sx-tab--order-methods))
;;;###autoload
-(autoload 'sx-tab-featured
+(autoload 'sx-tab-hot
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
-
-;;; Starred
-(sx-tab--define "Starred"
- (lambda (page)
- (sx-method-call 'me
- :page page
- :site sx-question-list--site
- :auth t
- :submethod 'favorites
- :filter sx-browse-filter)))
+(sx-tab--define "Week"
+ sx-tab--basic-question-pager
+ nil nil "All-Questions"
+ (setq sx-question-list--order 'week)
+ (setq sx-question-list--order-methods
+ sx-tab--order-methods))
;;;###autoload
-(autoload 'sx-tab-featured
+(autoload 'sx-tab-week
(expand-file-name
- "sx-tab"
- (when load-file-name
- (file-name-directory load-file-name)))
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
nil t)
-
-;;; Inter-modes navigation
-(defun sx-tab-meta-or-main ()
- "Switch to the meta version of a main site, or vice-versa.
-Inside a question, go to the frontpage of the site this question
-belongs to."
- (interactive)
- (if (and (derived-mode-p 'sx-question-list-mode)
- sx-question-list--site)
- (sx-question-list-switch-site
- (if (string-match "\\`meta\\." sx-question-list--site)
- (replace-match "" :fixedcase nil sx-question-list--site)
- (concat "meta." sx-question-list--site)))
- (sx-tab-frontpage nil (sx--site (sx--data-here 'question)))))
+(sx-tab--define "Month"
+ sx-tab--basic-question-pager
+ nil nil "All-Questions"
+ (setq sx-question-list--order 'month)
+ (setq sx-question-list--order-methods
+ sx-tab--order-methods))
+;;;###autoload
+(autoload 'sx-tab-month
+ (expand-file-name
+ "sx-tab" (when load-file-name (file-name-directory load-file-name)))
+ nil t)
(provide 'sx-tab)
;;; sx-tab.el ends here