Added "Remember search text" option

This commit is contained in:
Jaex 2018-08-01 16:12:18 +03:00
parent 2e77647feb
commit 3383e25570
8 changed files with 102 additions and 37 deletions

View file

@ -82,11 +82,6 @@ public HistoryForm(string historyPath, int maxItemCount, int splitterDistance =
private void RefreshHistoryItems() private void RefreshHistoryItems()
{ {
if (history == null)
{
history = new HistoryManager(HistoryPath);
}
allHistoryItems = GetHistoryItems(); allHistoryItems = GetHistoryItems();
ApplyFiltersAndAdd(); ApplyFiltersAndAdd();
} }
@ -98,6 +93,11 @@ private HistoryItem[] him_GetHistoryItems()
private HistoryItem[] GetHistoryItems() private HistoryItem[] GetHistoryItems()
{ {
if (history == null)
{
history = new HistoryManager(HistoryPath);
}
IEnumerable<HistoryItem> tempHistoryItems = history.GetHistoryItems(); IEnumerable<HistoryItem> tempHistoryItems = history.GetHistoryItems();
tempHistoryItems = tempHistoryItems.Reverse(); tempHistoryItems = tempHistoryItems.Reverse();

View file

@ -35,8 +35,8 @@ private void InitializeComponent()
this.tslSearch = new System.Windows.Forms.ToolStripLabel(); this.tslSearch = new System.Windows.Forms.ToolStripLabel();
this.tstbSearch = new System.Windows.Forms.ToolStripTextBox(); this.tstbSearch = new System.Windows.Forms.ToolStripTextBox();
this.tsbSearch = new System.Windows.Forms.ToolStripButton(); this.tsbSearch = new System.Windows.Forms.ToolStripButton();
this.tsbSettings = new System.Windows.Forms.ToolStripButton();
this.tss1 = new System.Windows.Forms.ToolStripSeparator(); this.tss1 = new System.Windows.Forms.ToolStripSeparator();
this.tsbSettings = new System.Windows.Forms.ToolStripButton();
this.tscMain.ContentPanel.SuspendLayout(); this.tscMain.ContentPanel.SuspendLayout();
this.tscMain.TopToolStripPanel.SuspendLayout(); this.tscMain.TopToolStripPanel.SuspendLayout();
this.tscMain.SuspendLayout(); this.tscMain.SuspendLayout();
@ -113,6 +113,11 @@ private void InitializeComponent()
this.tsbSearch.Name = "tsbSearch"; this.tsbSearch.Name = "tsbSearch";
this.tsbSearch.Click += new System.EventHandler(this.tsbSearch_Click); this.tsbSearch.Click += new System.EventHandler(this.tsbSearch_Click);
// //
// tss1
//
this.tss1.Name = "tss1";
resources.ApplyResources(this.tss1, "tss1");
//
// tsbSettings // tsbSettings
// //
this.tsbSettings.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; this.tsbSettings.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
@ -120,11 +125,6 @@ private void InitializeComponent()
this.tsbSettings.Name = "tsbSettings"; this.tsbSettings.Name = "tsbSettings";
this.tsbSettings.Click += new System.EventHandler(this.tsbSettings_Click); this.tsbSettings.Click += new System.EventHandler(this.tsbSettings_Click);
// //
// tss1
//
this.tss1.Name = "tss1";
resources.ApplyResources(this.tss1, "tss1");
//
// ImageHistoryForm // ImageHistoryForm
// //
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");

View file

@ -62,6 +62,11 @@ public ImageHistoryForm(string historyPath, ImageHistorySettings settings, Actio
defaultTitle = Text; defaultTitle = Text;
if (Settings.RememberSearchText)
{
tstbSearch.Text = Settings.SearchText;
}
Settings.WindowState.AutoHandleFormState(this); Settings.WindowState.AutoHandleFormState(this);
} }
@ -72,25 +77,36 @@ private void UpdateTitle(int total, int filtered)
private void RefreshHistoryItems() private void RefreshHistoryItems()
{ {
SearchText = tstbSearch.Text; UpdateSearchText();
if (history == null)
{
history = new HistoryManager(HistoryPath);
}
ilvImages.Items.Clear(); ilvImages.Items.Clear();
ImageListViewItem[] ilvItems = GetHistoryItems().Select(hi => new ImageListViewItem(hi.Filepath) { Tag = hi }).ToArray(); ImageListViewItem[] ilvItems = GetHistoryItems().Select(hi => new ImageListViewItem(hi.Filepath) { Tag = hi }).ToArray();
ilvImages.Items.AddRange(ilvItems); ilvImages.Items.AddRange(ilvItems);
} }
private void UpdateSearchText()
{
SearchText = tstbSearch.Text;
if (Settings.RememberSearchText)
{
Settings.SearchText = SearchText;
}
else
{
Settings.SearchText = "";
}
}
private IEnumerable<HistoryItem> GetHistoryItems() private IEnumerable<HistoryItem> GetHistoryItems()
{ {
if (history == null)
{
history = new HistoryManager(HistoryPath);
}
List<HistoryItem> historyItems = history.GetHistoryItems(); List<HistoryItem> historyItems = history.GetHistoryItems();
List<HistoryItem> filteredHistoryItems = new List<HistoryItem>(); List<HistoryItem> filteredHistoryItems = new List<HistoryItem>();
int itemCount = 0;
for (int i = historyItems.Count - 1; i >= 0; i--) for (int i = historyItems.Count - 1; i >= 0; i--)
{ {
HistoryItem hi = historyItems[i]; HistoryItem hi = historyItems[i];
@ -100,16 +116,14 @@ private IEnumerable<HistoryItem> GetHistoryItems()
{ {
filteredHistoryItems.Add(hi); filteredHistoryItems.Add(hi);
itemCount++; if (Settings.MaxItemCount > 0 && filteredHistoryItems.Count >= Settings.MaxItemCount)
if (Settings.MaxItemCount > 0 && itemCount >= Settings.MaxItemCount)
{ {
break; break;
} }
} }
} }
UpdateTitle(historyItems.Count, itemCount); UpdateTitle(historyItems.Count, filteredHistoryItems.Count);
return filteredHistoryItems; return filteredHistoryItems;
} }

View file

@ -228,6 +228,9 @@
<data name="tsbSearch.Size" type="System.Drawing.Size, System.Drawing"> <data name="tsbSearch.Size" type="System.Drawing.Size, System.Drawing">
<value>23, 22</value> <value>23, 22</value>
</data> </data>
<data name="tsbSearch.Text" xml:space="preserve">
<value>Search</value>
</data>
<data name="tsbSearch.ToolTipText" xml:space="preserve"> <data name="tsbSearch.ToolTipText" xml:space="preserve">
<value>Search</value> <value>Search</value>
</data> </data>
@ -247,7 +250,7 @@
<value>3, 0</value> <value>3, 0</value>
</data> </data>
<data name="tsMain.Size" type="System.Drawing.Size, System.Drawing"> <data name="tsMain.Size" type="System.Drawing.Size, System.Drawing">
<value>441, 25</value> <value>472, 25</value>
</data> </data>
<data name="tsMain.TabIndex" type="System.Int32, mscorlib"> <data name="tsMain.TabIndex" type="System.Int32, mscorlib">
<value>0</value> <value>0</value>
@ -321,18 +324,18 @@
<data name="&gt;&gt;tsbSearch.Type" xml:space="preserve"> <data name="&gt;&gt;tsbSearch.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;tsbSettings.Name" xml:space="preserve">
<value>tsbSettings</value>
</data>
<data name="&gt;&gt;tsbSettings.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tss1.Name" xml:space="preserve"> <data name="&gt;&gt;tss1.Name" xml:space="preserve">
<value>tss1</value> <value>tss1</value>
</data> </data>
<data name="&gt;&gt;tss1.Type" xml:space="preserve"> <data name="&gt;&gt;tss1.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;tsbSettings.Name" xml:space="preserve">
<value>tsbSettings</value>
</data>
<data name="&gt;&gt;tsbSettings.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>ImageHistoryForm</value> <value>ImageHistoryForm</value>
</data> </data>

View file

@ -36,6 +36,7 @@ private void InitializeComponent()
this.nudThumbnailSize = new System.Windows.Forms.NumericUpDown(); this.nudThumbnailSize = new System.Windows.Forms.NumericUpDown();
this.nudMaximumImageLimit = new System.Windows.Forms.NumericUpDown(); this.nudMaximumImageLimit = new System.Windows.Forms.NumericUpDown();
this.lblThumbnailSizeUnit = new System.Windows.Forms.Label(); this.lblThumbnailSizeUnit = new System.Windows.Forms.Label();
this.cbRememberSearchText = new System.Windows.Forms.CheckBox();
((System.ComponentModel.ISupportInitialize)(this.nudThumbnailSize)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudThumbnailSize)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudMaximumImageLimit)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudMaximumImageLimit)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
@ -100,11 +101,19 @@ private void InitializeComponent()
resources.ApplyResources(this.lblThumbnailSizeUnit, "lblThumbnailSizeUnit"); resources.ApplyResources(this.lblThumbnailSizeUnit, "lblThumbnailSizeUnit");
this.lblThumbnailSizeUnit.Name = "lblThumbnailSizeUnit"; this.lblThumbnailSizeUnit.Name = "lblThumbnailSizeUnit";
// //
// cbRememberSearchText
//
resources.ApplyResources(this.cbRememberSearchText, "cbRememberSearchText");
this.cbRememberSearchText.Name = "cbRememberSearchText";
this.cbRememberSearchText.UseVisualStyleBackColor = true;
this.cbRememberSearchText.CheckedChanged += new System.EventHandler(this.cbRememberSearchText_CheckedChanged);
//
// ImageHistorySettingsForm // ImageHistorySettingsForm
// //
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Window; this.BackColor = System.Drawing.SystemColors.Window;
this.Controls.Add(this.cbRememberSearchText);
this.Controls.Add(this.lblThumbnailSizeUnit); this.Controls.Add(this.lblThumbnailSizeUnit);
this.Controls.Add(this.nudMaximumImageLimit); this.Controls.Add(this.nudMaximumImageLimit);
this.Controls.Add(this.nudThumbnailSize); this.Controls.Add(this.nudThumbnailSize);
@ -131,5 +140,6 @@ private void InitializeComponent()
private System.Windows.Forms.NumericUpDown nudThumbnailSize; private System.Windows.Forms.NumericUpDown nudThumbnailSize;
private System.Windows.Forms.NumericUpDown nudMaximumImageLimit; private System.Windows.Forms.NumericUpDown nudMaximumImageLimit;
private System.Windows.Forms.Label lblThumbnailSizeUnit; private System.Windows.Forms.Label lblThumbnailSizeUnit;
private System.Windows.Forms.CheckBox cbRememberSearchText;
} }
} }

View file

@ -50,6 +50,7 @@ public ImageHistorySettingsForm(ImageHistorySettings settings)
cbViewMode.SelectedIndex = Settings.ViewMode; cbViewMode.SelectedIndex = Settings.ViewMode;
nudThumbnailSize.SetValue(Settings.ThumbnailSize.Width); nudThumbnailSize.SetValue(Settings.ThumbnailSize.Width);
nudMaximumImageLimit.SetValue(Settings.MaxItemCount); nudMaximumImageLimit.SetValue(Settings.MaxItemCount);
cbRememberSearchText.Checked = Settings.RememberSearchText;
} }
private void cbViewMode_SelectedIndexChanged(object sender, EventArgs e) private void cbViewMode_SelectedIndexChanged(object sender, EventArgs e)
@ -66,5 +67,10 @@ private void nudMaximumImageLimit_ValueChanged(object sender, EventArgs e)
{ {
Settings.MaxItemCount = (int)nudMaximumImageLimit.Value; Settings.MaxItemCount = (int)nudMaximumImageLimit.Value;
} }
private void cbRememberSearchText_CheckedChanged(object sender, EventArgs e)
{
Settings.RememberSearchText = cbRememberSearchText.Checked;
}
} }
} }

View file

@ -144,7 +144,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblViewMode.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblViewMode.ZOrder" xml:space="preserve">
<value>6</value> <value>7</value>
</data> </data>
<data name="lblThumbnailSize.AutoSize" type="System.Boolean, mscorlib"> <data name="lblThumbnailSize.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -171,7 +171,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblThumbnailSize.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblThumbnailSize.ZOrder" xml:space="preserve">
<value>5</value> <value>6</value>
</data> </data>
<data name="lblMaximumImageLimit.AutoSize" type="System.Boolean, mscorlib"> <data name="lblMaximumImageLimit.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -198,7 +198,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblMaximumImageLimit.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblMaximumImageLimit.ZOrder" xml:space="preserve">
<value>4</value> <value>5</value>
</data> </data>
<data name="cbViewMode.Location" type="System.Drawing.Point, System.Drawing"> <data name="cbViewMode.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 24</value> <value>8, 24</value>
@ -219,7 +219,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;cbViewMode.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbViewMode.ZOrder" xml:space="preserve">
<value>3</value> <value>4</value>
</data> </data>
<data name="nudThumbnailSize.Location" type="System.Drawing.Point, System.Drawing"> <data name="nudThumbnailSize.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 72</value> <value>8, 72</value>
@ -244,7 +244,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;nudThumbnailSize.ZOrder" xml:space="preserve"> <data name="&gt;&gt;nudThumbnailSize.ZOrder" xml:space="preserve">
<value>2</value> <value>3</value>
</data> </data>
<data name="nudMaximumImageLimit.Location" type="System.Drawing.Point, System.Drawing"> <data name="nudMaximumImageLimit.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 120</value> <value>8, 120</value>
@ -268,7 +268,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;nudMaximumImageLimit.ZOrder" xml:space="preserve"> <data name="&gt;&gt;nudMaximumImageLimit.ZOrder" xml:space="preserve">
<value>1</value> <value>2</value>
</data> </data>
<data name="lblThumbnailSizeUnit.AutoSize" type="System.Boolean, mscorlib"> <data name="lblThumbnailSizeUnit.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -295,6 +295,36 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblThumbnailSizeUnit.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblThumbnailSizeUnit.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cbRememberSearchText.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbRememberSearchText.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="cbRememberSearchText.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 152</value>
</data>
<data name="cbRememberSearchText.Size" type="System.Drawing.Size, System.Drawing">
<value>132, 17</value>
</data>
<data name="cbRememberSearchText.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="cbRememberSearchText.Text" xml:space="preserve">
<value>Remember search text</value>
</data>
<data name="&gt;&gt;cbRememberSearchText.Name" xml:space="preserve">
<value>cbRememberSearchText</value>
</data>
<data name="&gt;&gt;cbRememberSearchText.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;cbRememberSearchText.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;cbRememberSearchText.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View file

@ -39,5 +39,7 @@ public class ImageHistorySettings
public int ViewMode { get; set; } = 3; public int ViewMode { get; set; } = 3;
public Size ThumbnailSize { get; set; } = new Size(150, 150); public Size ThumbnailSize { get; set; } = new Size(150, 150);
public int MaxItemCount { get; set; } = 250; public int MaxItemCount { get; set; } = 250;
public bool RememberSearchText { get; set; } = false;
public string SearchText { get; set; } = "";
} }
} }