Added URL filtering support to history form

This commit is contained in:
Jaex 2018-10-01 22:56:37 +03:00
parent 04ebf946a1
commit 8ea4829e7e
3 changed files with 111 additions and 44 deletions

View file

@ -53,6 +53,8 @@ private void InitializeComponent()
this.dtpFilterTo = new System.Windows.Forms.DateTimePicker();
this.txtFilenameFilter = new System.Windows.Forms.TextBox();
this.cbFilenameFilterMethod = new System.Windows.Forms.ComboBox();
this.txtURLFilter = new System.Windows.Forms.TextBox();
this.lblURLFilter = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
this.scMain.Panel1.SuspendLayout();
this.scMain.Panel2.SuspendLayout();
@ -134,6 +136,8 @@ private void InitializeComponent()
// gbFilters
//
resources.ApplyResources(this.gbFilters, "gbFilters");
this.gbFilters.Controls.Add(this.lblURLFilter);
this.gbFilters.Controls.Add(this.txtURLFilter);
this.gbFilters.Controls.Add(this.lblFilenameFilter);
this.gbFilters.Controls.Add(this.cbHostFilterSelection);
this.gbFilters.Controls.Add(this.btnRemoveFilters);
@ -238,6 +242,16 @@ private void InitializeComponent()
resources.ApplyResources(this.cbFilenameFilterMethod, "cbFilenameFilterMethod");
this.cbFilenameFilterMethod.Name = "cbFilenameFilterMethod";
//
// txtURLFilter
//
resources.ApplyResources(this.txtURLFilter, "txtURLFilter");
this.txtURLFilter.Name = "txtURLFilter";
//
// lblURLFilter
//
resources.ApplyResources(this.lblURLFilter, "lblURLFilter");
this.lblURLFilter.Name = "lblURLFilter";
//
// HistoryForm
//
resources.ApplyResources(this, "$this");
@ -285,5 +299,7 @@ private void InitializeComponent()
private System.Windows.Forms.TextBox txtFilenameFilter;
private System.Windows.Forms.ComboBox cbFilenameFilterMethod;
private System.Windows.Forms.Label lblFilenameFilter;
private System.Windows.Forms.Label lblURLFilter;
private System.Windows.Forms.TextBox txtURLFilter;
}
}

View file

@ -119,7 +119,7 @@ private void ApplyFiltersAndAdd()
private HistoryItem[] ApplyFilters(HistoryItem[] historyItems)
{
if (!cbTypeFilter.Checked && !cbHostFilter.Checked && string.IsNullOrEmpty(txtFilenameFilter.Text) && !cbDateFilter.Checked)
if (!cbTypeFilter.Checked && !cbHostFilter.Checked && string.IsNullOrEmpty(txtFilenameFilter.Text) && string.IsNullOrEmpty(txtURLFilter.Text) && !cbDateFilter.Checked)
{
return historyItems;
}
@ -146,33 +146,37 @@ private HistoryItem[] ApplyFilters(HistoryItem[] historyItems)
}
}
if (!string.IsNullOrEmpty(txtFilenameFilter.Text))
string filenameFilter = txtFilenameFilter.Text;
if (!string.IsNullOrEmpty(filenameFilter))
{
string filenameFilter = txtFilenameFilter.Text;
StringComparison filenameRule = StringComparison.InvariantCultureIgnoreCase;
if (!string.IsNullOrEmpty(filenameFilter))
switch (cbFilenameFilterMethod.SelectedIndex)
{
StringComparison filenameRule = StringComparison.InvariantCultureIgnoreCase;
switch (cbFilenameFilterMethod.SelectedIndex)
{
default:
case 0: // Contains
result = result.Where(x => x.Filename.Contains(filenameFilter, filenameRule));
break;
case 1: // Starts with
result = result.Where(x => x.Filename.StartsWith(filenameFilter, filenameRule));
break;
case 2: // Ends with
result = result.Where(x => x.Filename.EndsWith(filenameFilter, filenameRule));
break;
case 3: // Exact match
result = result.Where(x => x.Filename.Equals(filenameFilter, filenameRule));
break;
}
default:
case 0: // Contains
result = result.Where(x => x.Filename.Contains(filenameFilter, filenameRule));
break;
case 1: // Starts with
result = result.Where(x => x.Filename.StartsWith(filenameFilter, filenameRule));
break;
case 2: // Ends with
result = result.Where(x => x.Filename.EndsWith(filenameFilter, filenameRule));
break;
case 3: // Exact match
result = result.Where(x => x.Filename.Equals(filenameFilter, filenameRule));
break;
}
}
string urlFilter = txtURLFilter.Text;
if (!string.IsNullOrEmpty(urlFilter))
{
result = result.Where(x => x.URL != null && x.URL.Contains(urlFilter, StringComparison.InvariantCultureIgnoreCase));
}
if (cbDateFilter.Checked)
{
DateTime fromDate = dtpFilterFrom.Value.Date;

View file

@ -127,7 +127,6 @@
</data>
<data name="chIcon.Text" xml:space="preserve">
<value />
<comment>@Invariant</comment>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="chIcon.Width" type="System.Int32, mscorlib">
@ -197,7 +196,7 @@
<value>8, 8</value>
</data>
<data name="pbThumbnail.Size" type="System.Drawing.Size, System.Drawing">
<value>408, 368</value>
<value>408, 352</value>
</data>
<data name="pbThumbnail.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -217,6 +216,54 @@
<data name="gbFilters.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left, Right</value>
</data>
<data name="lblURLFilter.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblURLFilter.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 203</value>
</data>
<data name="lblURLFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>32, 13</value>
</data>
<data name="lblURLFilter.TabIndex" type="System.Int32, mscorlib">
<value>20</value>
</data>
<data name="lblURLFilter.Text" xml:space="preserve">
<value>URL:</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>gbFilters</value>
</data>
<data name="&gt;&gt;lblURLFilter.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="txtURLFilter.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 199</value>
</data>
<data name="txtURLFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 20</value>
</data>
<data name="txtURLFilter.TabIndex" type="System.Int32, mscorlib">
<value>19</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>gbFilters</value>
</data>
<data name="&gt;&gt;txtURLFilter.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="lblFilenameFilter.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@ -242,10 +289,10 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;lblFilenameFilter.ZOrder" xml:space="preserve">
<value>0</value>
<value>2</value>
</data>
<data name="cbHostFilterSelection.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 176</value>
<value>168, 174</value>
</data>
<data name="cbHostFilterSelection.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 21</value>
@ -263,13 +310,13 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;cbHostFilterSelection.ZOrder" xml:space="preserve">
<value>1</value>
<value>3</value>
</data>
<data name="btnRemoveFilters.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="btnRemoveFilters.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 210</value>
<value>168, 232</value>
</data>
<data name="btnRemoveFilters.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 24</value>
@ -290,13 +337,13 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;btnRemoveFilters.ZOrder" xml:space="preserve">
<value>2</value>
<value>4</value>
</data>
<data name="btnApplyFilters.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="btnApplyFilters.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 210</value>
<value>16, 232</value>
</data>
<data name="btnApplyFilters.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 24</value>
@ -317,7 +364,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;btnApplyFilters.ZOrder" xml:space="preserve">
<value>3</value>
<value>5</value>
</data>
<data name="cbTypeFilterSelection.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 150</value>
@ -338,7 +385,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;cbTypeFilterSelection.ZOrder" xml:space="preserve">
<value>4</value>
<value>6</value>
</data>
<data name="cbHostFilter.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -347,7 +394,7 @@
<value>NoControl</value>
</data>
<data name="cbHostFilter.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 179</value>
<value>16, 176</value>
</data>
<data name="cbHostFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 17</value>
@ -368,7 +415,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;cbHostFilter.ZOrder" xml:space="preserve">
<value>5</value>
<value>7</value>
</data>
<data name="cbTypeFilter.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -398,7 +445,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;cbTypeFilter.ZOrder" xml:space="preserve">
<value>6</value>
<value>8</value>
</data>
<data name="dtpFilterFrom.Location" type="System.Drawing.Point, System.Drawing">
<value>88, 94</value>
@ -419,7 +466,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;dtpFilterFrom.ZOrder" xml:space="preserve">
<value>7</value>
<value>9</value>
</data>
<data name="lblFilterFrom.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -449,7 +496,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;lblFilterFrom.ZOrder" xml:space="preserve">
<value>8</value>
<value>10</value>
</data>
<data name="lblFilterTo.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -479,7 +526,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;lblFilterTo.ZOrder" xml:space="preserve">
<value>9</value>
<value>11</value>
</data>
<data name="cbDateFilter.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -509,7 +556,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;cbDateFilter.ZOrder" xml:space="preserve">
<value>10</value>
<value>12</value>
</data>
<data name="dtpFilterTo.Location" type="System.Drawing.Point, System.Drawing">
<value>88, 118</value>
@ -530,7 +577,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;dtpFilterTo.ZOrder" xml:space="preserve">
<value>11</value>
<value>13</value>
</data>
<data name="txtFilenameFilter.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 46</value>
@ -551,7 +598,7 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;txtFilenameFilter.ZOrder" xml:space="preserve">
<value>12</value>
<value>14</value>
</data>
<data name="cbFilenameFilterMethod.Items" xml:space="preserve">
<value>Contains</value>
@ -584,13 +631,13 @@
<value>gbFilters</value>
</data>
<data name="&gt;&gt;cbFilenameFilterMethod.ZOrder" xml:space="preserve">
<value>13</value>
<value>15</value>
</data>
<data name="gbFilters.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 384</value>
<value>8, 368</value>
</data>
<data name="gbFilters.Size" type="System.Drawing.Size, System.Drawing">
<value>408, 250</value>
<value>408, 266</value>
</data>
<data name="gbFilters.TabIndex" type="System.Int32, mscorlib">
<value>4</value>