unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* Opening the merge window for 0.3
@ 2010-04-16 20:32 Carl Worth
  2010-04-22  1:11 ` Update on 0.3 progress Carl Worth
  0 siblings, 1 reply; 23+ messages in thread
From: Carl Worth @ 2010-04-16 20:32 UTC (permalink / raw)
  To: Notmuch list

[-- Attachment #1: Type: text/plain, Size: 1114 bytes --]

I'm officially opening the merge window for the upcoming 0.3 release
(about a week from now).

I know that I want to merge David Edmunson's rewrite of the emacs
interface to be built on top of --format=json and add a ton of features,
(better attachment handling, notmuch-hello, etc.). I think that's more
than enough to justify a new release right there.

But if you have other things you'd like to see in this release, please
send a message to the list, (either as a new message or a reply to a
previous post where the feature/bug-fix was originally proposed). Please
don't send feature requests as replies to this message.

The best merge requests will be things that have existing, tested
patches already.

I know that some of the most desired features right now are folder:
searching and maildir-flag synchronization. Unfortunately, I think both
of these will be postponed until the 0.4 release, but I could be wrong.

-Carl

PS. I still never sent a list of the features which were proposed for
the 0.2 release but postponed. I'll assemble that list soon with my
comments on where each of the features stand.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread
* [PATCH] emacs: Add notmuch-hello.el, a friendly frontend to notmuch
@ 2010-04-12 10:13 David Edmondson
  2010-04-13  4:58 ` Xavier Maillard
  2010-04-13 10:25 ` Michal Sojka
  0 siblings, 2 replies; 23+ messages in thread
From: David Edmondson @ 2010-04-12 10:13 UTC (permalink / raw)
  To: notmuch

commit e55dc251b9e8001fe16873fadac565563e606d69
Author: David Edmondson <dme@dme.org>
Date:   Mon Apr 12 11:12:23 2010 +0100

    emacs: Add notmuch-hello.el, a friendly frontend to notmuch

	New      emacs/notmuch-hello.el
diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
new file mode 100644
index 0000000..279c424
--- /dev/null
+++ b/emacs/notmuch-hello.el
@@ -0,0 +1,122 @@
+;; notmuch-hello.el --- welcome to notmuch, a frontend
+;;
+;; Copyright © David Edmondson
+;;
+;; This file is part of Notmuch.
+;;
+;; Notmuch is free software: you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; Notmuch is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with Notmuch.  If not, see <http://www.gnu.org/licenses/>.
+;;
+;; Authors: David Edmondson <dme@dme.org>
+
+(require 'widget)
+
+(require 'notmuch-lib)
+
+(defvar notmuch-hello-searches-to-save 10)
+(defvar notmuch-hello-search-width 60)
+
+(defvar notmuch-hello-recent-searches nil)
+
+(defun notmuch-hello-save-search (search)
+  (if (not (memq search notmuch-hello-recent-searches))
+      (push search notmuch-hello-recent-searches))
+  (if (> (length notmuch-hello-recent-searches)
+	 notmuch-hello-searches-to-save)
+      (setq notmuch-hello-recent-searches (butlast notmuch-hello-recent-searches))))
+
+(defun notmuch-hello-trim (search)
+  "Trim whitespace."
+  (if (string-match "^[[:space:]]*\\(.*[^[:space:]]\\)[[:space:]]*$" search)
+      (match-string 1 search)
+    search))
+
+(defun notmuch-hello-search (search)
+  (let ((search (notmuch-hello-trim search)))
+    (notmuch-hello-save-search search)
+    (notmuch-search search)))
+
+(defun notmuch-hello ()
+  (interactive)
+
+  (switch-to-buffer "*notmuch-hello*")
+  (kill-all-local-variables)
+  (let ((inhibit-read-only t))
+    (erase-buffer))
+
+  (let ((all (overlay-lists)))
+    ;; Delete all the overlays.
+    (mapcar 'delete-overlay (car all))
+    (mapcar 'delete-overlay (cdr all)))
+
+  (widget-insert "\nWelcome to notmuch.\n\n")
+  (let ((start (point)))
+    (widget-insert "Search: ")
+    (widget-create 'editable-field
+		   :size notmuch-hello-search-width
+		   :action (lambda (widget &rest ignore)
+			     (let ((search (widget-value widget)))
+			       (notmuch-hello-search search))))
+    (widget-insert "\n")
+    (indent-rigidly start (point) 4))
+
+  (when notmuch-hello-recent-searches
+    (widget-insert "\nRecent searches:\n\n")
+    (let ((start (point)))
+      (mapcar '(lambda (search)
+		 (widget-create 'editable-field
+				:size notmuch-hello-search-width
+				:action (lambda (widget &rest ignore)
+					  (let ((search (widget-value widget)))
+					    (notmuch-hello-search search)))
+				search)
+		 (widget-insert "\n"))
+	      notmuch-hello-recent-searches)
+      (indent-rigidly start (point) 4)))
+
+  (widget-insert "\nFolders:\n\n")
+  (let ((start (point)))
+    (mapcar '(lambda (folder)
+	       (let ((w (widget-create 'push-button
+				       :notify (lambda (widget &rest ignore)
+						 (notmuch-search (widget-get widget :notmuch-search-terms)))
+				       "open")))
+		 (widget-put w :notmuch-search-terms (cdr folder)))
+	       (widget-insert (format " %6s %s\n" (notmuch-folder-count (cdr folder)) (car folder))))
+	    notmuch-folders)
+    (indent-rigidly start (point) 4))
+
+  (widget-insert "\nAll tags:\n\n")
+  (let ((start (point)))
+    (mapcar '(lambda (tag)
+	       (let ((w (widget-create 'push-button
+				       :notify (lambda (widget &rest ignore)
+						 (notmuch-search (widget-get widget :notmuch-search-terms)))
+				       "open")))
+		 (widget-put w :notmuch-search-terms (concat "tag:" tag)))
+	       (widget-insert (format " %6s %s\n" (notmuch-folder-count
+						   (concat "tag:" tag))
+				      tag)))
+	    (process-lines notmuch-command "search-tags"))
+    (indent-rigidly start (point) 4))
+
+  (use-local-map widget-keymap)
+  (local-set-key "=" 'notmuch-hello)
+  (local-set-key "q" '(lambda () (interactive) (kill-buffer (current-buffer))))
+
+  (widget-setup)
+
+  ;; Always put point inside the `search' widget, which we know is
+  ;; first.
+  (goto-char (point-min))
+  (widget-forward 1))


dme.
-- 
David Edmondson, http://dme.org

^ permalink raw reply related	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2010-04-26 18:38 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-16 20:32 Opening the merge window for 0.3 Carl Worth
2010-04-22  1:11 ` Update on 0.3 progress Carl Worth
2010-04-22  2:49   ` Dirk Hohndel
2010-04-22  6:10   ` Jesse Rosenthal
2010-04-22  8:27   ` [PATCH] emacs: Add notmuch-hello.el, a friendly frontend to notmuch David Edmondson
2010-04-23 20:13     ` Carl Worth
2010-04-23 22:49       ` Carl Worth
2010-04-24 12:31       ` Ideas for making notmuch-hello easier to navigate Carl Worth
2010-04-26  9:25       ` [PATCH 1/3] emacs: Adapt the logo background colour to that of the frame David Edmondson
2010-04-26  9:25       ` [PATCH 2/3] emacs: Remove the accelerator keys from the hello buffer David Edmondson
2010-04-26  9:25       ` [PATCH 3/3] emacs: Add a search to the 'recent searches' list once only David Edmondson
2010-04-26  9:36       ` [PATCH] emacs: Add notmuch-hello.el, a friendly frontend to notmuch David Edmondson
2010-04-26 14:59         ` Carl Worth
2010-04-26 17:16           ` Carl Worth
2010-04-26 17:38             ` Jameson Rollins
2010-04-26 18:03               ` David Edmondson
2010-04-26 18:38                 ` Carl Worth
2010-04-26 15:07       ` David Edmondson
  -- strict thread matches above, loose matches on Subject: below --
2010-04-12 10:13 David Edmondson
2010-04-13  4:58 ` Xavier Maillard
2010-04-13  6:54   ` David Edmondson
2010-04-13 10:25 ` Michal Sojka
2010-04-13 10:33   ` David Edmondson

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).