From 2e77647feb5c1e50a0fe91d6f1c2587344fe72c0 Mon Sep 17 00:00:00 2001 From: Jaex Date: Wed, 1 Aug 2018 15:23:32 +0300 Subject: [PATCH] Added max item count setting back, show filtered item count on window title --- ShareX.HistoryLib/Forms/ImageHistoryForm.cs | 32 +++++++++++++++++-- ShareX.HistoryLib/Forms/ImageHistoryForm.resx | 15 --------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/ShareX.HistoryLib/Forms/ImageHistoryForm.cs b/ShareX.HistoryLib/Forms/ImageHistoryForm.cs index 2147bb71b..a9f7d7b10 100644 --- a/ShareX.HistoryLib/Forms/ImageHistoryForm.cs +++ b/ShareX.HistoryLib/Forms/ImageHistoryForm.cs @@ -43,6 +43,7 @@ public partial class ImageHistoryForm : Form private HistoryManager history; private HistoryItemManager him; + private string defaultTitle; public ImageHistoryForm(string historyPath, ImageHistorySettings settings, Action uploadFile = null, Action editImage = null) { @@ -59,9 +60,16 @@ public ImageHistoryForm(string historyPath, ImageHistorySettings settings, Actio him = new HistoryItemManager(uploadFile, editImage); him.GetHistoryItems += him_GetHistoryItems; + defaultTitle = Text; + Settings.WindowState.AutoHandleFormState(this); } + private void UpdateTitle(int total, int filtered) + { + Text = $"{defaultTitle} (Total: {total.ToString("N0")} - Filtered: {filtered.ToString("N0")})"; + } + private void RefreshHistoryItems() { SearchText = tstbSearch.Text; @@ -79,13 +87,30 @@ private void RefreshHistoryItems() private IEnumerable GetHistoryItems() { List historyItems = history.GetHistoryItems(); - IEnumerable filteredHistoryItems = historyItems.Where(hi => !string.IsNullOrEmpty(hi.Filepath) && Helpers.IsImageFile(hi.Filepath)).Reverse(); + List filteredHistoryItems = new List(); - if (!string.IsNullOrEmpty(SearchText)) + int itemCount = 0; + + for (int i = historyItems.Count - 1; i >= 0; i--) { - filteredHistoryItems = filteredHistoryItems.Where(hi => Helpers.GetFilenameSafe(hi.Filepath).Contains(SearchText, StringComparison.InvariantCultureIgnoreCase)); + HistoryItem hi = historyItems[i]; + + if (!string.IsNullOrEmpty(hi.Filepath) && Helpers.IsImageFile(hi.Filepath) && + (string.IsNullOrEmpty(SearchText) || Helpers.GetFilenameSafe(hi.Filepath).Contains(SearchText, StringComparison.InvariantCultureIgnoreCase))) + { + filteredHistoryItems.Add(hi); + + itemCount++; + + if (Settings.MaxItemCount > 0 && itemCount >= Settings.MaxItemCount) + { + break; + } + } } + UpdateTitle(historyItems.Count, itemCount); + return filteredHistoryItems; } @@ -155,6 +180,7 @@ private void tsbSettings_Click(object sender, EventArgs e) ilvImages.View = (View)Settings.ViewMode; ilvImages.ThumbnailSize = Settings.ThumbnailSize; + RefreshHistoryItems(); } private void ilvImages_KeyDown(object sender, KeyEventArgs e) diff --git a/ShareX.HistoryLib/Forms/ImageHistoryForm.resx b/ShareX.HistoryLib/Forms/ImageHistoryForm.resx index bb822578b..9d4204526 100644 --- a/ShareX.HistoryLib/Forms/ImageHistoryForm.resx +++ b/ShareX.HistoryLib/Forms/ImageHistoryForm.resx @@ -234,21 +234,6 @@ 6, 25 - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG - YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 - 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw - bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc - VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 - c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 - Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo - mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ - kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D - TgDQASA1MVpwzwAAAABJRU5ErkJggg== - - Magenta