Added auto complete support to history & image history window search box

This commit is contained in:
Jaex 2024-01-29 05:41:06 +03:00
parent 1fd1c46148
commit e9116fafd0
5 changed files with 290 additions and 84 deletions

View File

@ -159,6 +159,8 @@
//
// tstbSearch
//
this.tstbSearch.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.tstbSearch.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
this.tstbSearch.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
resources.ApplyResources(this.tstbSearch, "tstbSearch");
this.tstbSearch.Name = "tstbSearch";

View File

@ -122,18 +122,20 @@ namespace ShareX.HistoryLib
{
allHistoryItems = await GetHistoryItems(mockData);
ApplyFilterSimple();
cbTypeFilterSelection.Items.Clear();
cbHostFilterSelection.Items.Clear();
tstbSearch.AutoCompleteCustomSource.Clear();
if (allHistoryItems.Length > 0)
{
allTypeNames = allHistoryItems.Select(x => x.Type).Distinct().Where(x => !string.IsNullOrEmpty(x)).ToArray();
allTypeNames = allHistoryItems.Select(x => x.Type).Where(x => !string.IsNullOrWhiteSpace(x)).Distinct().ToArray();
cbTypeFilterSelection.Items.AddRange(allTypeNames.Select(x => typeNamesLocaleLookup.TryGetValue(x, out string value) ? value : x).ToArray());
cbHostFilterSelection.Items.AddRange(allHistoryItems.Select(x => x.Host).Distinct().Where(x => !string.IsNullOrEmpty(x)).ToArray());
cbHostFilterSelection.Items.AddRange(allHistoryItems.Select(x => x.Host).Where(x => !string.IsNullOrWhiteSpace(x)).Distinct().ToArray());
tstbSearch.AutoCompleteCustomSource.AddRange(allHistoryItems.Select(x => x.TagsProcessName).Where(x => !string.IsNullOrWhiteSpace(x)).Distinct().ToArray());
}
ApplyFilterSimple();
ResetFilters();
}

View File

@ -129,31 +129,6 @@
<data name="&gt;&gt;tscHistory.BottomToolStripPanel.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="chIcon.Text" xml:space="preserve">
<value />
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="chIcon.Width" type="System.Int32, mscorlib">
<value>24</value>
</data>
<data name="chDateTime.Text" xml:space="preserve">
<value>Date</value>
</data>
<data name="chDateTime.Width" type="System.Int32, mscorlib">
<value>115</value>
</data>
<data name="chFilename.Text" xml:space="preserve">
<value>Filename</value>
</data>
<data name="chFilename.Width" type="System.Int32, mscorlib">
<value>170</value>
</data>
<data name="chURL.Text" xml:space="preserve">
<value>URL</value>
</data>
<data name="chURL.Width" type="System.Int32, mscorlib">
<value>230</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="lvHistory.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -165,6 +140,7 @@
<data name="lvHistory.Size" type="System.Drawing.Size, System.Drawing">
<value>550, 636</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="lvHistory.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
@ -172,7 +148,7 @@
<value>lvHistory</value>
</data>
<data name="&gt;&gt;lvHistory.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.2.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lvHistory.Parent" xml:space="preserve">
<value>tscHistory.ContentPanel</value>
@ -345,6 +321,237 @@
<data name="&gt;&gt;tscHistory.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="chIcon.Text" xml:space="preserve">
<value />
</data>
<data name="chIcon.Width" type="System.Int32, mscorlib">
<value>24</value>
</data>
<data name="chDateTime.Text" xml:space="preserve">
<value>Date</value>
</data>
<data name="chDateTime.Width" type="System.Int32, mscorlib">
<value>115</value>
</data>
<data name="chFilename.Text" xml:space="preserve">
<value>Filename</value>
</data>
<data name="chFilename.Width" type="System.Int32, mscorlib">
<value>170</value>
</data>
<data name="chURL.Text" xml:space="preserve">
<value>URL</value>
</data>
<data name="chURL.Width" type="System.Int32, mscorlib">
<value>230</value>
</data>
<data name="&gt;&gt;btnAdvancedSearchClose.Name" xml:space="preserve">
<value>btnAdvancedSearchClose</value>
</data>
<data name="&gt;&gt;btnAdvancedSearchClose.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnAdvancedSearchClose.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;btnAdvancedSearchClose.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;btnAdvancedSearchReset.Name" xml:space="preserve">
<value>btnAdvancedSearchReset</value>
</data>
<data name="&gt;&gt;btnAdvancedSearchReset.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnAdvancedSearchReset.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;btnAdvancedSearchReset.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;lblURLFilter.Name" xml:space="preserve">
<value>lblURLFilter</value>
</data>
<data name="&gt;&gt;lblURLFilter.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblURLFilter.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;lblURLFilter.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="&gt;&gt;txtURLFilter.Name" xml:space="preserve">
<value>txtURLFilter</value>
</data>
<data name="&gt;&gt;txtURLFilter.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtURLFilter.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;txtURLFilter.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="&gt;&gt;lblFilenameFilter.Name" xml:space="preserve">
<value>lblFilenameFilter</value>
</data>
<data name="&gt;&gt;lblFilenameFilter.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblFilenameFilter.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;lblFilenameFilter.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="&gt;&gt;cbHostFilterSelection.Name" xml:space="preserve">
<value>cbHostFilterSelection</value>
</data>
<data name="&gt;&gt;cbHostFilterSelection.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbHostFilterSelection.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;cbHostFilterSelection.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="&gt;&gt;cbTypeFilterSelection.Name" xml:space="preserve">
<value>cbTypeFilterSelection</value>
</data>
<data name="&gt;&gt;cbTypeFilterSelection.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbTypeFilterSelection.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;cbTypeFilterSelection.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="&gt;&gt;cbHostFilter.Name" xml:space="preserve">
<value>cbHostFilter</value>
</data>
<data name="&gt;&gt;cbHostFilter.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbHostFilter.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;cbHostFilter.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="&gt;&gt;cbTypeFilter.Name" xml:space="preserve">
<value>cbTypeFilter</value>
</data>
<data name="&gt;&gt;cbTypeFilter.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbTypeFilter.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;cbTypeFilter.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="&gt;&gt;dtpFilterFrom.Name" xml:space="preserve">
<value>dtpFilterFrom</value>
</data>
<data name="&gt;&gt;dtpFilterFrom.Type" xml:space="preserve">
<value>System.Windows.Forms.DateTimePicker, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dtpFilterFrom.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;dtpFilterFrom.ZOrder" xml:space="preserve">
<value>9</value>
</data>
<data name="&gt;&gt;lblFilterFrom.Name" xml:space="preserve">
<value>lblFilterFrom</value>
</data>
<data name="&gt;&gt;lblFilterFrom.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblFilterFrom.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;lblFilterFrom.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="&gt;&gt;lblFilterTo.Name" xml:space="preserve">
<value>lblFilterTo</value>
</data>
<data name="&gt;&gt;lblFilterTo.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblFilterTo.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;lblFilterTo.ZOrder" xml:space="preserve">
<value>11</value>
</data>
<data name="&gt;&gt;cbDateFilter.Name" xml:space="preserve">
<value>cbDateFilter</value>
</data>
<data name="&gt;&gt;cbDateFilter.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbDateFilter.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;cbDateFilter.ZOrder" xml:space="preserve">
<value>12</value>
</data>
<data name="&gt;&gt;dtpFilterTo.Name" xml:space="preserve">
<value>dtpFilterTo</value>
</data>
<data name="&gt;&gt;dtpFilterTo.Type" xml:space="preserve">
<value>System.Windows.Forms.DateTimePicker, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;dtpFilterTo.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;dtpFilterTo.ZOrder" xml:space="preserve">
<value>13</value>
</data>
<data name="&gt;&gt;txtFilenameFilter.Name" xml:space="preserve">
<value>txtFilenameFilter</value>
</data>
<data name="&gt;&gt;txtFilenameFilter.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtFilenameFilter.Parent" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;txtFilenameFilter.ZOrder" xml:space="preserve">
<value>14</value>
</data>
<data name="gbAdvancedSearch.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="gbAdvancedSearch.Size" type="System.Drawing.Size, System.Drawing">
<value>409, 213</value>
</data>
<data name="gbAdvancedSearch.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="gbAdvancedSearch.Text" xml:space="preserve">
<value>Advanced search</value>
</data>
<data name="gbAdvancedSearch.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;gbAdvancedSearch.Name" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;gbAdvancedSearch.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;gbAdvancedSearch.Parent" xml:space="preserve">
<value>scHistoryItemInfo.Panel1</value>
</data>
<data name="&gt;&gt;gbAdvancedSearch.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="btnAdvancedSearchClose.Location" type="System.Drawing.Point, System.Drawing">
<value>272, 176</value>
</data>
@ -729,33 +936,6 @@
<data name="&gt;&gt;txtFilenameFilter.ZOrder" xml:space="preserve">
<value>14</value>
</data>
<data name="gbAdvancedSearch.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="gbAdvancedSearch.Size" type="System.Drawing.Size, System.Drawing">
<value>409, 213</value>
</data>
<data name="gbAdvancedSearch.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="gbAdvancedSearch.Text" xml:space="preserve">
<value>Advanced search</value>
</data>
<data name="gbAdvancedSearch.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;gbAdvancedSearch.Name" xml:space="preserve">
<value>gbAdvancedSearch</value>
</data>
<data name="&gt;&gt;gbAdvancedSearch.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;gbAdvancedSearch.Parent" xml:space="preserve">
<value>scHistoryItemInfo.Panel1</value>
</data>
<data name="&gt;&gt;gbAdvancedSearch.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="scMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
@ -796,7 +976,7 @@
<value>0, 0</value>
</data>
<data name="pbThumbnail.Size" type="System.Drawing.Size, System.Drawing">
<value>627, 421</value>
<value>627, 415</value>
</data>
<data name="pbThumbnail.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -805,7 +985,7 @@
<value>pbThumbnail</value>
</data>
<data name="&gt;&gt;pbThumbnail.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyPictureBox, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.MyPictureBox, ShareX.HelpersLib, Version=15.0.2.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;pbThumbnail.Parent" xml:space="preserve">
<value>scHistoryItemInfo.Panel1</value>
@ -835,7 +1015,7 @@
<value>0, 0</value>
</data>
<data name="pgHistoryItemInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>627, 233</value>
<value>627, 239</value>
</data>
<data name="pgHistoryItemInfo.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -868,7 +1048,7 @@
<value>627, 661</value>
</data>
<data name="scHistoryItemInfo.SplitterDistance" type="System.Int32, mscorlib">
<value>421</value>
<value>415</value>
</data>
<data name="scHistoryItemInfo.SplitterWidth" type="System.Int32, mscorlib">
<value>7</value>
@ -880,7 +1060,7 @@
<value>scHistoryItemInfo</value>
</data>
<data name="&gt;&gt;scHistoryItemInfo.Type" xml:space="preserve">
<value>ShareX.HelpersLib.SplitContainerCustomSplitter, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.SplitContainerCustomSplitter, ShareX.HelpersLib, Version=15.0.2.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;scHistoryItemInfo.Parent" xml:space="preserve">
<value>scMain.Panel2</value>
@ -919,7 +1099,7 @@
<value>scMain</value>
</data>
<data name="&gt;&gt;scMain.Type" xml:space="preserve">
<value>ShareX.HelpersLib.SplitContainerCustomSplitter, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.SplitContainerCustomSplitter, ShareX.HelpersLib, Version=15.0.2.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;scMain.Parent" xml:space="preserve">
<value>$this</value>

View File

@ -122,6 +122,8 @@
//
// tstbSearch
//
this.tstbSearch.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.tstbSearch.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
this.tstbSearch.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
resources.ApplyResources(this.tstbSearch, "tstbSearch");
this.tstbSearch.Name = "tstbSearch";

View File

@ -31,6 +31,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ShareX.HistoryLib
@ -44,6 +45,7 @@ namespace ShareX.HistoryLib
private HistoryItemManager him;
private string defaultTitle;
private List<HistoryItem> allHistoryItems;
public ImageHistoryForm(string historyPath, ImageHistorySettings settings, Action<string> uploadFile = null, Action<string> editImage = null, Action<string> pinToScreen = null)
{
@ -87,13 +89,18 @@ namespace ShareX.HistoryLib
Text = $"{defaultTitle} ({Resources.Total}: {total:N0} - {Resources.Filtered}: {filtered:N0})";
}
private void RefreshHistoryItems(bool mockData = false)
private async Task RefreshHistoryItems(bool mockData = false)
{
UpdateSearchText();
ilvImages.Items.Clear();
IEnumerable<HistoryItem> historyItems = GetHistoryItems(mockData);
ImageListViewItem[] ilvItems = historyItems.Select(hi => new ImageListViewItem(hi.FilePath) { Tag = hi }).ToArray();
ilvImages.Items.AddRange(ilvItems);
allHistoryItems = await GetHistoryItems(mockData);
tstbSearch.AutoCompleteCustomSource.Clear();
if (allHistoryItems.Count > 0)
{
tstbSearch.AutoCompleteCustomSource.AddRange(allHistoryItems.Select(x => x.TagsProcessName).Where(x => !string.IsNullOrWhiteSpace(x)).Distinct().ToArray());
}
ApplyFilter();
}
private void UpdateSearchText()
@ -110,7 +117,7 @@ namespace ShareX.HistoryLib
}
}
private IEnumerable<HistoryItem> GetHistoryItems(bool mockData = false)
private async Task<List<HistoryItem>> GetHistoryItems(bool mockData = false)
{
HistoryManager history;
@ -123,7 +130,17 @@ namespace ShareX.HistoryLib
history = new HistoryManagerJSON(HistoryPath);
}
List<HistoryItem> historyItems = history.GetHistoryItems();
List<HistoryItem> historyItems = await history.GetHistoryItemsAsync();
historyItems.Reverse();
return historyItems;
}
private void ApplyFilter()
{
UpdateSearchText();
ilvImages.Items.Clear();
List<HistoryItem> filteredHistoryItems = new List<HistoryItem>();
Regex regex = null;
@ -134,9 +151,9 @@ namespace ShareX.HistoryLib
regex = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
}
for (int i = historyItems.Count - 1; i >= 0; i--)
for (int i = 0; i < allHistoryItems.Count; i++)
{
HistoryItem hi = historyItems[i];
HistoryItem hi = allHistoryItems[i];
if (!string.IsNullOrEmpty(hi.FilePath) && FileHelpers.IsImageFile(hi.FilePath) &&
(regex == null || regex.IsMatch(hi.FileName) || (SearchInTags && hi.Tags != null && hi.Tags.Any(tag => regex.IsMatch(tag.Value)))) &&
@ -151,9 +168,10 @@ namespace ShareX.HistoryLib
}
}
UpdateTitle(historyItems.Count, filteredHistoryItems.Count);
UpdateTitle(allHistoryItems.Count, filteredHistoryItems.Count);
return filteredHistoryItems;
ImageListViewItem[] ilvItems = filteredHistoryItems.Select(hi => new ImageListViewItem(hi.FilePath) { Tag = hi }).ToArray();
ilvImages.Items.AddRange(ilvItems);
}
private HistoryItem[] him_GetHistoryItems()
@ -163,12 +181,12 @@ namespace ShareX.HistoryLib
#region Form events
private void ImageHistoryForm_Shown(object sender, EventArgs e)
private async void ImageHistoryForm_Shown(object sender, EventArgs e)
{
tstbSearch.Focus();
Application.DoEvents();
this.ForceActivate();
RefreshHistoryItems();
await RefreshHistoryItems();
}
private void ImageHistoryForm_FormClosing(object sender, FormClosingEventArgs e)
@ -179,16 +197,16 @@ namespace ShareX.HistoryLib
}
}
private void ImageHistoryForm_KeyDown(object sender, KeyEventArgs e)
private async void ImageHistoryForm_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyData)
{
case Keys.F5:
RefreshHistoryItems();
await RefreshHistoryItems();
e.SuppressKeyPress = true;
break;
case Keys.Control | Keys.F5 when HelpersOptions.DevMode:
RefreshHistoryItems(true);
await RefreshHistoryItems(true);
e.SuppressKeyPress = true;
break;
}
@ -228,14 +246,15 @@ namespace ShareX.HistoryLib
{
if (e.KeyCode == Keys.Enter)
{
RefreshHistoryItems();
ApplyFilter();
e.SuppressKeyPress = true;
}
}
private void tsbSearch_Click(object sender, EventArgs e)
{
RefreshHistoryItems();
ApplyFilter();
}
private void tsbSettings_Click(object sender, EventArgs e)
@ -246,7 +265,8 @@ namespace ShareX.HistoryLib
}
ilvImages.ThumbnailSize = Settings.ThumbnailSize;
RefreshHistoryItems();
ApplyFilter();
}
private void ilvImages_KeyDown(object sender, KeyEventArgs e)