unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#25764: 26.0.50; Make some usability improvements to sieve-script management
@ 2017-02-16 21:13 Eric Abrahamsen
  2019-06-24 23:03 ` Lars Ingebrigtsen
  2019-07-08 20:42 ` Basil L. Contovounesios
  0 siblings, 2 replies; 10+ messages in thread
From: Eric Abrahamsen @ 2017-02-16 21:13 UTC (permalink / raw)
  To: 25764

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


The attached patch makes some usability improvements to the sieve script
management files: exposing more user commands in menus and help, and
using the buffer-modified mark to give the user a better sense of what's
going on.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Small-improvements-to-sieve-script-usability.patch --]
[-- Type: text/x-diff, Size: 3796 bytes --]

From e7c62b1bb8212034cba5502a7dec2c2786f4159f Mon Sep 17 00:00:00 2001
From: Eric Abrahamsen <eric@ericabrahamsen.net>
Date: Thu, 16 Feb 2017 12:57:53 -0800
Subject: [PATCH] Small improvements to sieve script usability

* lisp/net/sieve-mode.el (sieve-mode-menu): Add
  `sieve-upload-and-kill' to the mode menu.

* lisp/net/sieve.el (sieve-manage-mode-menu): Add `sieve-manage-quit'
  to the mode menu.
  (sieve-help): Mention quitting in mode help.
  (sieve-manage-mode): Directly derive from special-mode.
  (sieve-edit-script): Start off with unmodified buffer.
  (sieve-upload): Set buffer unmodified after successful upload.

Changes are aimed at 1) increasing discoverability of commands and 2)
using buffer modification to help users understand what's happening.
---
 lisp/net/sieve-mode.el |  1 +
 lisp/net/sieve.el      | 22 ++++++++++++----------
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/lisp/net/sieve-mode.el b/lisp/net/sieve-mode.el
index 87bb3a245b..cc5fb389e2 100644
--- a/lisp/net/sieve-mode.el
+++ b/lisp/net/sieve-mode.el
@@ -158,6 +158,7 @@ sieve-mode-map
   "Sieve Menu."
   '("Sieve"
     ["Upload script" sieve-upload t]
+    ["Upload script and kill" sieve-upload-and-kill t]
     ["Manage scripts on server" sieve-manage t]))
 
 ;; Code for Sieve editing mode.
diff --git a/lisp/net/sieve.el b/lisp/net/sieve.el
index 665a0a8e15..46cea316e3 100644
--- a/lisp/net/sieve.el
+++ b/lisp/net/sieve.el
@@ -137,16 +137,15 @@ sieve-manage-mode-map
   '("Manage Sieve"
     ["Edit script" sieve-edit-script t]
     ["Activate script" sieve-activate t]
-    ["Deactivate script" sieve-deactivate t]))
+    ["Deactivate script" sieve-deactivate t]
+    ["Quit and close connection" sieve-manage-quit t]))
 
-(define-derived-mode sieve-manage-mode fundamental-mode "Sieve-manage"
+(define-derived-mode sieve-manage-mode special-mode "Sieve-manage"
   "Mode used for sieve script management."
   (buffer-disable-undo (current-buffer))
   (setq truncate-lines t)
   (easy-menu-add sieve-manage-mode-menu sieve-manage-mode-map))
 
-(put 'sieve-manage-mode 'mode-class 'special)
-
 ;; Commands used in sieve-manage mode:
 
 (defun sieve-manage-quit ()
@@ -215,6 +214,7 @@ sieve-edit-script
     (sieve-mode)
     (setq sieve-buffer-script-name name)
     (goto-char (point-min))
+    (set-buffer-modified-p nil)
     (message
      (substitute-command-keys
       "Press \\[sieve-upload] to upload script to server."))))
@@ -257,7 +257,7 @@ sieve-help
       ;; would need minor-mode for log-edit-mode
       (describe-function 'sieve-mode)
     (message "%s" (substitute-command-keys
-	      "`\\[sieve-edit-script]':edit `\\[sieve-activate]':activate `\\[sieve-deactivate]':deactivate `\\[sieve-remove]':remove"))))
+	      "`\\[sieve-edit-script]':edit `\\[sieve-activate]':activate `\\[sieve-deactivate]':deactivate `\\[sieve-remove]':remove `\\[sieve-manage-quit]':quit"))))
 
 ;; Create buffer:
 
@@ -350,11 +350,13 @@ sieve-upload
       (with-current-buffer (get-buffer sieve-buffer)
 	(setq err (sieve-manage-putscript
                    (or name sieve-buffer-script-name (buffer-name))
-                   script sieve-manage-buffer))
-	(if (sieve-manage-ok-p err)
-	    (message (substitute-command-keys
-		      "Sieve upload done.  Use \\[sieve-manage] to manage scripts."))
-	  (message "Sieve upload failed: %s" (nth 2 err)))))))
+                   script sieve-manage-buffer)))
+      (if (sieve-manage-ok-p err)
+          (progn
+            (message (substitute-command-keys
+                      "Sieve upload done.  Use \\[sieve-manage] to manage scripts."))
+            (set-buffer-modified-p nil))
+        (message "Sieve upload failed: %s" (nth 2 err))))))
 
 ;;;###autoload
 (defun sieve-upload-and-bury (&optional name)
-- 
2.11.1


[-- Attachment #3: Type: text/plain, Size: 240 bytes --]



In GNU Emacs 26.0.50.26 (x86_64-unknown-linux-gnu, GTK+ Version 3.22.7)
 of 2017-02-14 built on clem
Repository revision: 71b90192dab8de9825904faaabbaf9548d3db2ab
Windowing system distributor 'The X.Org Foundation', version 11.0.11901000

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

end of thread, other threads:[~2019-07-09  1:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-16 21:13 bug#25764: 26.0.50; Make some usability improvements to sieve-script management Eric Abrahamsen
2019-06-24 23:03 ` Lars Ingebrigtsen
2019-07-08 17:55   ` Eric Abrahamsen
2019-07-08 20:42 ` Basil L. Contovounesios
2019-07-08 22:09   ` Lars Ingebrigtsen
2019-07-08 23:51   ` Eric Abrahamsen
2019-07-08 23:55     ` Lars Ingebrigtsen
2019-07-09  0:12       ` Eric Abrahamsen
2019-07-09  0:50         ` Basil L. Contovounesios
2019-07-09  1:06           ` Eric Abrahamsen

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

	https://git.savannah.gnu.org/cgit/emacs.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).