[PATCH] emacs: Add callback functions to crypto sigstatus button.

2011-10-07 Thread Jameson Graef Rollins
On Fri, 07 Oct 2011 09:38:00 +0200, Thomas Schwinge  
wrote:
> Now, what happens on redisplay is that (apparently) all the current state
> is lost: the point jumps back to its original position (the beginning of
> the buffer, for example), messages/parts view toggles are reset, etc.  I
> guess that is just how the refresh function works -- but is it really
> what we want, and how difficult would it be to preserve that state?

Hi, Thomas.  I agree it would be nice to jump back to the same state in
the thread view that you were at previously.  There's not currently any
good way to do that, though, I don't think.  We would have to be
writing/saving a lot more of the current buffer state.  Suggestions and
patches are of course welcome.

jamie.
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: 



[PATCH] emacs: Add callback functions to crypto sigstatus button.

2011-10-07 Thread Thomas Schwinge
Hi!

On Tue, 31 May 2011 10:07:13 -0700, Jameson Graef Rollins  wrote:
> This adds two callback functions to the sigstatus button.  If the sig

First, thanks for this!

> status is "good", then clicking the button displays the output of "gpg
> --list-keys" on the key fingerprint.  If the sigstatus is "bad", then
> clicking the button will retrieve the key from the keyserver, and
> redisplay the current buffer.

Now, what happens on redisplay is that (apparently) all the current state
is lost: the point jumps back to its original position (the beginning of
the buffer, for example), messages/parts view toggles are reset, etc.  I
guess that is just how the refresh function works -- but is it really
what we want, and how difficult would it be to preserve that state?


Gr??e,
 Thomas
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 489 bytes
Desc: not available
URL: 



Re: [PATCH] emacs: Add callback functions to crypto sigstatus button.

2011-10-07 Thread Thomas Schwinge
Hi!

On Tue, 31 May 2011 10:07:13 -0700, Jameson Graef Rollins 
jroll...@finestructure.net wrote:
 This adds two callback functions to the sigstatus button.  If the sig

First, thanks for this!

 status is good, then clicking the button displays the output of gpg
 --list-keys on the key fingerprint.  If the sigstatus is bad, then
 clicking the button will retrieve the key from the keyserver, and
 redisplay the current buffer.

Now, what happens on redisplay is that (apparently) all the current state
is lost: the point jumps back to its original position (the beginning of
the buffer, for example), messages/parts view toggles are reset, etc.  I
guess that is just how the refresh function works -- but is it really
what we want, and how difficult would it be to preserve that state?


Grüße,
 Thomas


pgprHUsMq78kv.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] emacs: Add callback functions to crypto sigstatus button.

2011-10-07 Thread Jameson Graef Rollins
On Fri, 07 Oct 2011 09:38:00 +0200, Thomas Schwinge tho...@schwinge.name 
wrote:
 Now, what happens on redisplay is that (apparently) all the current state
 is lost: the point jumps back to its original position (the beginning of
 the buffer, for example), messages/parts view toggles are reset, etc.  I
 guess that is just how the refresh function works -- but is it really
 what we want, and how difficult would it be to preserve that state?

Hi, Thomas.  I agree it would be nice to jump back to the same state in
the thread view that you were at previously.  There's not currently any
good way to do that, though, I don't think.  We would have to be
writing/saving a lot more of the current buffer state.  Suggestions and
patches are of course welcome.

jamie.


pgpvxmyyu7ht4.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH] emacs: Add callback functions to crypto sigstatus button.

2011-06-15 Thread Jameson Graef Rollins
On Tue, 31 May 2011 10:07:13 -0700, Jameson Graef Rollins  wrote:
> This adds two callback functions to the sigstatus button.  If the sig
> status is "good", then clicking the button displays the output of "gpg
> --list-keys" on the key fingerprint.  If the sigstatus is "bad", then
> clicking the button will retrieve the key from the keyserver, and
> redisplay the current buffer.
> 
> Thanks to David Bremner  for help with this.

I just want to point out for the record that this patch depends on the
patch series starting at:

id:"1306627784-3401-1-git-send-email-jrollins at finestructure.net"

Sorry for the mixup.

jamie.
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: 



Re: [PATCH] emacs: Add callback functions to crypto sigstatus button.

2011-06-15 Thread Jameson Graef Rollins
On Tue, 31 May 2011 10:07:13 -0700, Jameson Graef Rollins 
jroll...@finestructure.net wrote:
 This adds two callback functions to the sigstatus button.  If the sig
 status is good, then clicking the button displays the output of gpg
 --list-keys on the key fingerprint.  If the sigstatus is bad, then
 clicking the button will retrieve the key from the keyserver, and
 redisplay the current buffer.
 
 Thanks to David Bremner brem...@unb.ca for help with this.

I just want to point out for the record that this patch depends on the
patch series starting at:

id:1306627784-3401-1-git-send-email-jroll...@finestructure.net

Sorry for the mixup.

jamie.


pgpKBynYT4xk0.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH] emacs: Add callback functions to crypto sigstatus button.

2011-05-31 Thread Jameson Graef Rollins
This adds two callback functions to the sigstatus button.  If the sig
status is "good", then clicking the button displays the output of "gpg
--list-keys" on the key fingerprint.  If the sigstatus is "bad", then
clicking the button will retrieve the key from the keyserver, and
redisplay the current buffer.

Thanks to David Bremner  for help with this.
---
 emacs/notmuch-crypto.el |   52 +-
 1 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el
index f03266f..096dc5e 100644
--- a/emacs/notmuch-crypto.el
+++ b/emacs/notmuch-crypto.el
@@ -70,20 +70,26 @@ search."
   (let* ((status (plist-get sigstatus :status))
 (help-msg nil)
 (label "Signature not processed")
-(face 'notmuch-crypto-signature-unknown))
+(face 'notmuch-crypto-signature-unknown)
+(button-action '(lambda (button) (message (button-get button 
'help-echo)
 (cond
  ((string= status "good")
-  ; if userid present, userid has full or greater validity
-  (if (plist-member sigstatus :userid)
- (let ((userid (plist-get sigstatus :userid)))
-   (setq label (concat "Good signature by: " userid))
-   (setq face 'notmuch-crypto-signature-good))
-   (let ((fingerprint (concat "0x" (plist-get sigstatus :fingerprint
- (setq label (concat "Good signature by key: " fingerprint))
- (setq face 'notmuch-crypto-signature-good-key
+  (let ((fingerprint (concat "0x" (plist-get sigstatus :fingerprint
+   ;; if userid present, userid has full or greater validity
+   (if (plist-member sigstatus :userid)
+   (let ((userid (plist-get sigstatus :userid)))
+ (setq label (concat "Good signature by: " userid))
+ (setq face 'notmuch-crypto-signature-good))
+ (progn
+   (setq label (concat "Good signature by key: " fingerprint))
+   (setq face 'notmuch-crypto-signature-good-key)))
+   (setq button-action 'notmuch-crypto-sigstatus-good-callback)
+   (setq help-msg (concat "Click to list key ID 0x" fingerprint "."
  ((string= status "error")
   (let ((keyid (concat "0x" (plist-get sigstatus :keyid
-   (setq label (concat "Unknown key ID " keyid " or unsupported 
algorithm"
+   (setq label (concat "Unknown key ID " keyid " or unsupported 
algorithm"))
+   (setq button-action 'notmuch-crypto-sigstatus-error-callback)
+   (setq help-msg (concat "Click to retreive key ID " keyid " from 
keyserver and redisplay."
  ((string= status "bad")
   (let ((keyid (concat "0x" (plist-get sigstatus :keyid
(setq label (concat "Bad signature (claimed key ID " keyid ")"))
@@ -97,10 +103,36 @@ search."
  'help-echo help-msg
  'face face
  'mouse-face face
+ 'action button-action
  :notmuch-sigstatus sigstatus
  :notmuch-from from)
 (insert "\n")))

+(declare-function notmuch-show-refresh-view "notmuch-show" ( 
crypto-switch))
+
+(defun notmuch-crypto-sigstatus-good-callback (button)
+  (let* ((sigstatus (button-get button :notmuch-sigstatus))
+(fingerprint (concat "0x" (plist-get sigstatus :fingerprint)))
+(buffer (get-buffer-create "*notmuch-crypto-gpg-out*"))
+(window (display-buffer buffer t nil)))
+(with-selected-window window
+  (with-current-buffer buffer
+   (call-process "gpg" nil t t "--list-keys" fingerprint))
+  (recenter -1
+
+(defun notmuch-crypto-sigstatus-error-callback (button)
+  (let* ((sigstatus (button-get button :notmuch-sigstatus))
+(keyid (concat "0x" (plist-get sigstatus :keyid)))
+(buffer (get-buffer-create "*notmuch-crypto-gpg-out*"))
+(window (display-buffer buffer t nil)))
+(with-selected-window window
+  (with-current-buffer buffer
+   (call-process "gpg" nil t t "--recv-keys" keyid)
+   (insert "\n")
+   (call-process "gpg" nil t t "--list-keys" keyid))
+  (recenter -1))
+(notmuch-show-refresh-view)))
+
 (defun notmuch-crypto-insert-encstatus-button (encstatus)
   (let* ((status (plist-get encstatus :status))
 (help-msg nil)
-- 
1.7.4.4



[PATCH] emacs: Add callback functions to crypto sigstatus button.

2011-05-31 Thread Jameson Graef Rollins
This adds two callback functions to the sigstatus button.  If the sig
status is good, then clicking the button displays the output of gpg
--list-keys on the key fingerprint.  If the sigstatus is bad, then
clicking the button will retrieve the key from the keyserver, and
redisplay the current buffer.

Thanks to David Bremner brem...@unb.ca for help with this.
---
 emacs/notmuch-crypto.el |   52 +-
 1 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el
index f03266f..096dc5e 100644
--- a/emacs/notmuch-crypto.el
+++ b/emacs/notmuch-crypto.el
@@ -70,20 +70,26 @@ search.
   (let* ((status (plist-get sigstatus :status))
 (help-msg nil)
 (label Signature not processed)
-(face 'notmuch-crypto-signature-unknown))
+(face 'notmuch-crypto-signature-unknown)
+(button-action '(lambda (button) (message (button-get button 
'help-echo)
 (cond
  ((string= status good)
-  ; if userid present, userid has full or greater validity
-  (if (plist-member sigstatus :userid)
- (let ((userid (plist-get sigstatus :userid)))
-   (setq label (concat Good signature by:  userid))
-   (setq face 'notmuch-crypto-signature-good))
-   (let ((fingerprint (concat 0x (plist-get sigstatus :fingerprint
- (setq label (concat Good signature by key:  fingerprint))
- (setq face 'notmuch-crypto-signature-good-key
+  (let ((fingerprint (concat 0x (plist-get sigstatus :fingerprint
+   ;; if userid present, userid has full or greater validity
+   (if (plist-member sigstatus :userid)
+   (let ((userid (plist-get sigstatus :userid)))
+ (setq label (concat Good signature by:  userid))
+ (setq face 'notmuch-crypto-signature-good))
+ (progn
+   (setq label (concat Good signature by key:  fingerprint))
+   (setq face 'notmuch-crypto-signature-good-key)))
+   (setq button-action 'notmuch-crypto-sigstatus-good-callback)
+   (setq help-msg (concat Click to list key ID 0x fingerprint .
  ((string= status error)
   (let ((keyid (concat 0x (plist-get sigstatus :keyid
-   (setq label (concat Unknown key ID  keyid  or unsupported 
algorithm
+   (setq label (concat Unknown key ID  keyid  or unsupported 
algorithm))
+   (setq button-action 'notmuch-crypto-sigstatus-error-callback)
+   (setq help-msg (concat Click to retreive key ID  keyid  from 
keyserver and redisplay.
  ((string= status bad)
   (let ((keyid (concat 0x (plist-get sigstatus :keyid
(setq label (concat Bad signature (claimed key ID  keyid )))
@@ -97,10 +103,36 @@ search.
  'help-echo help-msg
  'face face
  'mouse-face face
+ 'action button-action
  :notmuch-sigstatus sigstatus
  :notmuch-from from)
 (insert \n)))
 
+(declare-function notmuch-show-refresh-view notmuch-show (optional 
crypto-switch))
+
+(defun notmuch-crypto-sigstatus-good-callback (button)
+  (let* ((sigstatus (button-get button :notmuch-sigstatus))
+(fingerprint (concat 0x (plist-get sigstatus :fingerprint)))
+(buffer (get-buffer-create *notmuch-crypto-gpg-out*))
+(window (display-buffer buffer t nil)))
+(with-selected-window window
+  (with-current-buffer buffer
+   (call-process gpg nil t t --list-keys fingerprint))
+  (recenter -1
+
+(defun notmuch-crypto-sigstatus-error-callback (button)
+  (let* ((sigstatus (button-get button :notmuch-sigstatus))
+(keyid (concat 0x (plist-get sigstatus :keyid)))
+(buffer (get-buffer-create *notmuch-crypto-gpg-out*))
+(window (display-buffer buffer t nil)))
+(with-selected-window window
+  (with-current-buffer buffer
+   (call-process gpg nil t t --recv-keys keyid)
+   (insert \n)
+   (call-process gpg nil t t --list-keys keyid))
+  (recenter -1))
+(notmuch-show-refresh-view)))
+
 (defun notmuch-crypto-insert-encstatus-button (encstatus)
   (let* ((status (plist-get encstatus :status))
 (help-msg nil)
-- 
1.7.4.4

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch