[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/hyperdrive 4742b430fa 07/19: Fix: Killing monitor buffer
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/hyperdrive 4742b430fa 07/19: Fix: Killing monitor buffer |
Date: |
Thu, 1 Aug 2024 01:00:11 -0400 (EDT) |
branch: elpa/hyperdrive
commit 4742b430fa87b2891d23c03cf05a5dbfbdeee0d9
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>
Fix: Killing monitor buffer
---
hyperdrive-download-monitor.el | 50 +++++++++++++++++++++++-------------------
1 file changed, 27 insertions(+), 23 deletions(-)
diff --git a/hyperdrive-download-monitor.el b/hyperdrive-download-monitor.el
index 71cedf3941..f00f4b461e 100644
--- a/hyperdrive-download-monitor.el
+++ b/hyperdrive-download-monitor.el
@@ -39,11 +39,13 @@
(cl-defun h/download-monitor
(&key buffer-name path total-size setup-fn canceled-fn
(update-interval 1) (completed-fn
- (lambda ()
- (let ((buffer (current-buffer)))
- (quit-window)
+ (lambda (buffer)
+ (let ((buffer-window (get-buffer-window
buffer)))
+ (when buffer-window
+ (quit-window nil buffer-window))
(kill-buffer buffer)))))
- "Return buffer that monitors the download to PATH."
+ "Return buffer that monitors the download to PATH.
+COMPLETED-FN is called with the monitor buffer as its argument."
(let* ((buffer (generate-new-buffer buffer-name)))
(with-current-buffer buffer
(setf (map-elt h/download-monitor-etc :path) path
@@ -59,25 +61,27 @@
buffer))
(defun h/download-monitor-update (buffer)
- (with-current-buffer buffer
- (pcase-let* (((map :path :total-size :completed-fn)
- h/download-monitor-etc))
- (if (file-exists-p path)
- (let* ((attributes (file-attributes path))
- (current-size (file-attribute-size attributes)))
- (if (= current-size total-size)
- ;; Download complete.
- (funcall (map-elt h/download-monitor-etc :completed-fn))
- ;; Download in progress: update buffer.
- (erase-buffer)
- (insert "Downloading:\n\n"
- "File: " path "\n"
- "Downloaded: " (file-size-human-readable current-size
nil " ")
- " / " (file-size-human-readable total-size) "\n")))
- ;; Download completed or canceled.
- ;; FIXME: We just assume here that it completed and wasn't canceled.
- (when completed-fn
- (funcall completed-fn))))))
+ (let (completedp)
+ (with-current-buffer buffer
+ (pcase-let* (((map :path :total-size) h/download-monitor-etc))
+ (if (file-exists-p path)
+ (let* ((attributes (file-attributes path))
+ (current-size (file-attribute-size attributes)))
+ (if (= current-size total-size)
+ ;; Download complete.
+ (setf completedp t)
+ ;; Download in progress: update buffer.
+ (erase-buffer)
+ (insert "Downloading:\n\n"
+ "File: " path "\n"
+ "Downloaded: " (file-size-human-readable current-size
nil " ")
+ " / " (file-size-human-readable total-size) "\n")))
+ ;; Download completed or canceled.
+ (setf completedp t))))
+ (when completedp
+ ;; FIXME: We just assume here that it completed and wasn't canceled.
+ (when-let ((completed-fn (map-elt h/download-monitor-etc :completed-fn)))
+ (funcall completed-fn buffer)))))
(provide 'hyperdrive-download-monitor)
- [nongnu] elpa/hyperdrive updated (52297ba0bd -> 4c5fc6ca76), ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 472e01a805 01/19: Fix: (h/install) Use temp file in temporary-file-directory, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 95f814ddb7 09/19: Tidy, improve, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 481df10760 05/19: Fix: Timer, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 4af29a6156 06/19: Fix: Completing download, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive a2120e57e9 03/19: Fix: Size, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 53ce1cf3f4 04/19: Fix: Wait for download to start, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 84b59e1f8f 02/19: WIP: hyperdrive-download-monitor, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive c35423cdd4 12/19: Use special-mode, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 015917ecd3 14/19: Fix: (h//download-monitor) Cancel timer if buffer killed, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 4742b430fa 07/19: Fix: Killing monitor buffer,
ELPA Syncer <=
- [nongnu] elpa/hyperdrive 95323b4bf6 08/19: Refactoring, fixes, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 35d04e8cc5 18/19: Fix: Close monitor from ready hook; ensure buffer is live, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 4c5fc6ca76 19/19: Merge: Download monitor fixes/improvements, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 9156b1a7ac 16/19: Fix: Ensure timer before canceling, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 34e27bca27 10/19: Show elapsed time, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 36744a367d 15/19: Add: Restart gateway button in monitor buffer, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 5434098b4a 11/19: Show speed, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive 04caa99d91 13/19: Merge: Download monitor for installing gateway, ELPA Syncer, 2024/08/01
- [nongnu] elpa/hyperdrive fc3b754ca4 17/19: Fix: (hyperdrive-menu) Make install command non-transient, ELPA Syncer, 2024/08/01