aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Malabarba2015-05-21 09:58:45 +0100
committerArtur Malabarba2015-05-21 09:59:45 +0100
commit60c1ea3d209308b08bc66585044cae8d1df56def (patch)
tree65293b8ecd1c90809afd01e7e62175ee526d5cdd
parent35514815fa34a5ecf14ffd9f96d8b9ddb905e142 (diff)
downloademacs-60c1ea3d209308b08bc66585044cae8d1df56def.tar.gz
emacs-60c1ea3d209308b08bc66585044cae8d1df56def.zip
* lisp/emacs-lisp/package.el: Mode-line progress report
(package-menu--transaction-status): New variable. (package-menu-mode, package-menu--perform-transaction): Use it.
-rw-r--r--lisp/emacs-lisp/package.el42
1 files changed, 29 insertions, 13 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 95882ee3069..444adf0d127 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -2400,12 +2400,17 @@ will be deleted."
2400(defvar package-menu--new-package-list nil 2400(defvar package-menu--new-package-list nil
2401 "List of newly-available packages since `list-packages' was last called.") 2401 "List of newly-available packages since `list-packages' was last called.")
2402 2402
2403(defvar package-menu--transaction-status nil
2404 "Mode-line status of ongoing package transaction.")
2405
2403(define-derived-mode package-menu-mode tabulated-list-mode "Package Menu" 2406(define-derived-mode package-menu-mode tabulated-list-mode "Package Menu"
2404 "Major mode for browsing a list of packages. 2407 "Major mode for browsing a list of packages.
2405Letters do not insert themselves; instead, they are commands. 2408Letters do not insert themselves; instead, they are commands.
2406\\<package-menu-mode-map> 2409\\<package-menu-mode-map>
2407\\{package-menu-mode-map}" 2410\\{package-menu-mode-map}"
2408 (setq mode-line-process '(package--downloads-in-progress ":Loading")) 2411 (setq mode-line-process '((package--downloads-in-progress ":Loading")
2412 (package-menu--transaction-status
2413 package-menu--transaction-status)))
2409 (setq tabulated-list-format 2414 (setq tabulated-list-format
2410 `[("Package" 18 package-menu--name-predicate) 2415 `[("Package" 18 package-menu--name-predicate)
2411 ("Version" 13 nil) 2416 ("Version" 13 nil)
@@ -2929,20 +2934,31 @@ objects removed."
2929(defun package-menu--perform-transaction (install-list delete-list) 2934(defun package-menu--perform-transaction (install-list delete-list)
2930 "Install packages in INSTALL-LIST and delete DELETE-LIST." 2935 "Install packages in INSTALL-LIST and delete DELETE-LIST."
2931 (if install-list 2936 (if install-list
2932 (dolist (pkg install-list) 2937 (let ((status-format (format ":Installing %%d/%d"
2933 (package-install 2938 (length install-list)))
2934 ;; Don't mark as selected if it's a new version of an 2939 (i 0)
2935 ;; installed package. 2940 (package-menu--transaction-status))
2936 pkg (and (not (package-installed-p pkg)) 2941 (dolist (pkg install-list)
2937 (package-installed-p 2942 (setq package-menu--transaction-status
2938 (package-desc-name pkg))))) 2943 (format status-format (cl-incf i)))
2944 (force-mode-line-update)
2945 (redisplay 'force)
2946 (package-install
2947 ;; Don't mark as selected if it's a new version of an
2948 ;; installed package.
2949 pkg (and (not (package-installed-p pkg))
2950 (package-installed-p
2951 (package-desc-name pkg))))))
2939 ;; Once there are no more packages to install, proceed to 2952 ;; Once there are no more packages to install, proceed to
2940 ;; deletion. 2953 ;; deletion.
2941 (dolist (elt (package--sort-by-dependence delete-list)) 2954 (let ((package-menu--transaction-status ":Deleting"))
2942 (condition-case-unless-debug err 2955 (force-mode-line-update)
2943 (let ((inhibit-message t)) 2956 (redisplay 'force)
2944 (package-delete elt)) 2957 (dolist (elt (package--sort-by-dependence delete-list))
2945 (error (message (cadr err))))))) 2958 (condition-case-unless-debug err
2959 (let ((inhibit-message t))
2960 (package-delete elt))
2961 (error (message (cadr err))))))))
2946 2962
2947(defun package-menu-execute (&optional noquery) 2963(defun package-menu-execute (&optional noquery)
2948 "Perform marked Package Menu actions. 2964 "Perform marked Package Menu actions.