[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 16681ba91c 3/8: image-dired: Improve performance of marking comma
From: |
Stefan Kangas |
Subject: |
master 16681ba91c 3/8: image-dired: Improve performance of marking commands |
Date: |
Sat, 24 Sep 2022 08:08:18 -0400 (EDT) |
branch: master
commit 16681ba91cbd673b395cacf38f1603520eddba37
Author: Stefan Kangas <stefankangas@gmail.com>
Commit: Stefan Kangas <stefankangas@gmail.com>
image-dired: Improve performance of marking commands
* lisp/image/image-dired.el (image-dired-thumbnail-storage): Mark
(image-dired--thumb-update-mark-at-point): New function.
(image-dired--thumb-update-marks):
(image-dired--do-mark-command): Use it.
(image-dired--thumb-update-marks): Rename from
'image-dired-thumb-update-marks'. Update all callers and make the
old name into an obsolete alias.
---
lisp/image/image-dired.el | 46 +++++++++++++++++++++++++++-------------------
1 file changed, 27 insertions(+), 19 deletions(-)
diff --git a/lisp/image/image-dired.el b/lisp/image/image-dired.el
index d84734f4d4..7c6d910b42 100644
--- a/lisp/image/image-dired.el
+++ b/lisp/image/image-dired.el
@@ -776,18 +776,21 @@ Should be called from commands in
`image-dired-thumbnail-mode'."
,@body))
(user-error "No such buffer: %s" image-dired-thumbnail-buffer)))
-(defmacro image-dired--do-mark-command (maybe-next update &rest body)
- "Helper macro for the mark, unmark and flag commands.
-Run BODY in Dired buffer.
+(defmacro image-dired--do-mark-command (maybe-next update-mark &rest body)
+ "Run BODY in Dired buffer.
+Helper macro for the mark, unmark and flag commands.
+
If MAYBE-NEXT is non-nil, show next image according to
`image-dired-marking-shows-next'.
-If UPDATE is non-nil, call `image-dired-thumb-update-marks' too."
+
+If UPDATE-MARK is non-nil, also update the mark in the thumbnail
+buffer with `image-dired--thumb-update-mark-at-point'."
(declare (indent defun) (debug t))
`(image-dired--with-thumbnail-buffer
(image-dired--on-file-in-dired-buffer
,@body)
- ,(when update
- '(image-dired-thumb-update-marks))
+ ,(when update-mark
+ '(image-dired--thumb-update-mark-at-point))
,(when maybe-next
'(if image-dired-marking-shows-next
(image-dired-display-next-thumbnail-original)
@@ -818,7 +821,7 @@ Also update the marks in the thumbnail buffer."
(image-dired--do-mark-command nil t
(dired-unmark-all-marks))
(image-dired--with-thumbnail-buffer
- (image-dired-thumb-update-marks)))
+ (image-dired--thumb-update-marks)))
(defun image-dired-jump-original-dired-buffer ()
"Jump to the Dired buffer associated with the current image file.
@@ -1287,7 +1290,18 @@ for deletion instead."
(image-dired--on-file-in-dired-buffer
(dired-do-delete)))
-(defun image-dired-thumb-update-marks ()
+(defun image-dired--thumb-update-mark-at-point ()
+ (with-silent-modifications
+ (cond ((image-dired-thumb-file-marked-p)
+ (add-face-text-property (point) (1+ (point))
+ 'image-dired-thumb-mark))
+ ((image-dired-thumb-file-flagged-p)
+ (add-face-text-property (point) (1+ (point))
+ 'image-dired-thumb-flagged))
+ (t (remove-text-properties (point) (1+ (point))
+ '(face image-dired-thumb-mark))))))
+
+(defun image-dired--thumb-update-marks ()
"Update the marks in the thumbnail buffer."
(when image-dired-thumb-visible-marks
(with-current-buffer image-dired-thumbnail-buffer
@@ -1295,15 +1309,7 @@ for deletion instead."
(goto-char (point-min))
(let ((inhibit-read-only t))
(while (not (eobp))
- (with-silent-modifications
- (cond ((image-dired-thumb-file-marked-p)
- (add-face-text-property (point) (1+ (point))
- 'image-dired-thumb-mark))
- ((image-dired-thumb-file-flagged-p)
- (add-face-text-property (point) (1+ (point))
- 'image-dired-thumb-flagged))
- (t (remove-text-properties (point) (1+ (point))
- '(face
image-dired-thumb-mark)))))
+ (image-dired--thumb-update-mark-at-point)
(forward-char 2)))))))
(defun image-dired-mouse-toggle-mark-1 ()
@@ -1334,7 +1340,7 @@ Track this in associated Dired buffer if
(mouse-set-point event)
(goto-char (posn-point (event-end event)))
(image-dired-mouse-toggle-mark-1))
- (image-dired-thumb-update-marks))
+ (image-dired--thumb-update-marks))
;;; bookmark.el support
@@ -1580,7 +1586,7 @@ Dired."
(dired-unmark 1)
(dired-mark 1)))
((eq command 'flag) (dired-flag-file-deletion 1)))
- (image-dired-thumb-update-marks))))))
+ (image-dired--thumb-update-marks))))))
(defun image-dired-display-current-image-full ()
"Display current image in full size."
@@ -1874,6 +1880,8 @@ when using per-directory thumbnail file storage"))
'image-dired--add-to-tag-file-lists "29.1")
(define-obsolete-function-alias 'image-dired-hidden-p
'image-dired--hidden-p "29.1")
+(define-obsolete-function-alias 'image-dired-thumb-update-marks
+ #'image-dired--thumb-update-marks "29.1")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; TEST-SECTION ;;;;;;;;;;;
- master updated (06de788529 -> 5be35812ac), Stefan Kangas, 2022/09/24
- master 16681ba91c 3/8: image-dired: Improve performance of marking commands,
Stefan Kangas <=
- master 0bca1b4d03 7/8: image-dired: Fix C-a/C-e in thumbnail buffer, Stefan Kangas, 2022/09/24
- master 61b877237b 1/8: Add new macro image-dired--with-dired-buffer, Stefan Kangas, 2022/09/24
- master 3d75bab0e5 2/8: image-dired: Mark 'per-directory' as :safe, Stefan Kangas, 2022/09/24
- master 95d4f5d691 4/8: image-dired: Regenerate old thumbnails when needed, Stefan Kangas, 2022/09/24
- master 4b537dd99f 5/8: Move thumbs.el to lisp/obsolete, Stefan Kangas, 2022/09/24
- master 5be35812ac 8/8: image-dired: Prefer command remapping, Stefan Kangas, 2022/09/24
- master 32e736d903 6/8: Make thumbs.el obsolete, Stefan Kangas, 2022/09/24