From 2a9600edd45cc0887368a89fc4fa1e2e3baee12c Mon Sep 17 00:00:00 2001 From: Jaex Date: Wed, 16 Mar 2022 22:40:15 +0300 Subject: [PATCH] Filter image files --- ShareX.HelpersLib/Forms/ImageViewer.cs | 33 ++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/ShareX.HelpersLib/Forms/ImageViewer.cs b/ShareX.HelpersLib/Forms/ImageViewer.cs index 5e0d364bf..667ab30b9 100644 --- a/ShareX.HelpersLib/Forms/ImageViewer.cs +++ b/ShareX.HelpersLib/Forms/ImageViewer.cs @@ -24,6 +24,7 @@ You should have received a copy of the GNU General Public License #endregion License Information (GPL v3) using System; +using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; @@ -52,6 +53,7 @@ private ImageViewer(string[] images, int currentImageIndex = 0) Images = images; CurrentImageIndex = currentImageIndex; + FilterImageFiles(); LoadCurrentImage(); } @@ -95,6 +97,37 @@ private void NavigateImage(int position) } } + private void FilterImageFiles() + { + List filteredImages = new List(); + + for (int i = 0; i < Images.Length; i++) + { + string imageFilePath = Images[i]; + + bool isImageFile = !string.IsNullOrEmpty(imageFilePath) && Helpers.IsImageFile(imageFilePath); + + if (i == CurrentImageIndex) + { + if (isImageFile) + { + CurrentImageIndex = filteredImages.Count; + } + else + { + CurrentImageIndex = 0; + } + } + + if (isImageFile) + { + filteredImages.Add(imageFilePath); + } + } + + Images = filteredImages.ToArray(); + } + private void UpdateIndexLabel() { if (!SupportsImageNavigation || Images.Length < 2) return;