aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustav Hållberg <gustav@gmail.com>2010-04-23 12:09:31 +0200
committerGustav Hållberg <gustav@gmail.com>2010-04-30 00:28:34 +0200
commitf9533abf9cc6124174d4f401de63153ab7d2bccf (patch)
tree126f40125c3a9820e07ff54cc7f0644ebd11f223
parent1b47104494b3f0371ece396a00bda59adbd3ffd9 (diff)
downloadstgit-f9533abf9cc6124174d4f401de63153ab7d2bccf.tar.gz
stgit.el: Add visual feedback (a message) when toggling view flags
Signed-off-by: Gustav Hållberg <gustav@gmail.com>
-rw-r--r--contrib/stgit.el33
1 files changed, 25 insertions, 8 deletions
diff --git a/contrib/stgit.el b/contrib/stgit.el
index 11f370e..906a75f 100644
--- a/contrib/stgit.el
+++ b/contrib/stgit.el
@@ -603,14 +603,20 @@ using (make-hash-table :test 'equal)."
(stgit-run-silent "branch"))
0 -1))
-(defun stgit-reload ()
- "Update the contents of the StGit buffer."
+(defun stgit-reload (&optional description)
+ "Update the contents of the StGit buffer.
+
+If DESCRIPTION is non-nil, it is displayed as a status message
+during the operation."
(interactive)
(stgit-assert-mode)
+ (when description
+ (message "%s..." description))
(let ((inhibit-read-only t)
(curline (line-number-at-pos))
(curpatch (stgit-patch-name-at-point))
- (curfile (stgit-patched-file-at-point)))
+ (curfile (stgit-patched-file-at-point))
+ (stgit-inhibit-messages description))
(ewoc-filter stgit-ewoc #'(lambda (x) nil))
(ewoc-set-hf stgit-ewoc
(concat "Branch: "
@@ -629,8 +635,10 @@ using (make-hash-table :test 'equal)."
(and curfile (stgit-file->file curfile))))
(goto-char (point-min))
(forward-line (1- curline))
- (move-to-column (stgit-goal-column))))
- (stgit-refresh-git-status))
+ (move-to-column (stgit-goal-column)))
+ (stgit-refresh-git-status))
+ (when description
+ (message "%s...done" description)))
(defconst stgit-file-status-code-strings
(mapcar (lambda (arg)
@@ -2563,7 +2571,7 @@ See also `stgit-show-worktree-mode'.")
(defvar stgit-committed-count nil
"The number of recent commits to show.")
-(defmacro stgit-define-toggle-view (sym help)
+(defmacro stgit-define-toggle-view (sym desc help)
(declare (indent 1))
(let* ((name (symbol-name sym))
(fun (intern (concat "stgit-toggle-" name)))
@@ -2577,9 +2585,10 @@ See also `stgit-show-worktree-mode'.")
(setq ,flag (if arg
(> (prefix-numeric-value arg) 0)
(not ,flag)))
- (stgit-reload))))
+ (stgit-reload (format "%s %s" (if ,flag "Showing" "Hiding") ,desc)))))
(stgit-define-toggle-view worktree
+ "work tree and index"
"Toggle the visibility of the work tree.
With ARG, show the work tree if ARG is positive.
@@ -2589,6 +2598,7 @@ Its initial setting is controlled by `stgit-default-show-worktree'.
work tree will show up.")
(stgit-define-toggle-view ignored
+ "ignored files"
"Toggle the visibility of files ignored by git in the work
tree. With ARG, show these files if ARG is positive.
@@ -2597,6 +2607,7 @@ Its initial setting is controlled by `stgit-default-show-ignored'.
Use \\[stgit-toggle-worktree] to show the work tree.")
(stgit-define-toggle-view unknown
+ "unknown files"
"Toggle the visibility of files not registered with git in the
work tree. With ARG, show these files if ARG is positive.
@@ -2605,12 +2616,14 @@ Its initial setting is controlled by `stgit-default-show-unknown'.
Use \\[stgit-toggle-worktree] to show the work tree.")
(stgit-define-toggle-view patch-names
+ "patch names"
"Toggle the visibility of patch names. With ARG, show patch names
if ARG is positive.
The initial setting is controlled by `stgit-default-show-patch-names'.")
(stgit-define-toggle-view svn
+ "subversion revisions"
"Toggle showing subversion information from git svn. With ARG,
show svn information if ARG is positive.
@@ -2629,6 +2642,10 @@ The initial setting is controlled by `stgit-default-show-committed'."
(let ((n (prefix-numeric-value arg)))
(setq stgit-show-committed (> n 0))
(setq stgit-committed-count n)))
- (stgit-reload))
+ (stgit-reload (format "%s historical commits"
+ (if (and stgit-show-committed
+ (> stgit-committed-count 0))
+ "Showing"
+ "Hiding"))))
(provide 'stgit)