From 8ea4829e7ee560d66a1519f9a280ca666f8c346e Mon Sep 17 00:00:00 2001 From: Jaex Date: Mon, 1 Oct 2018 22:56:37 +0300 Subject: [PATCH] Added URL filtering support to history form --- .../Forms/HistoryForm.Designer.cs | 16 ++++ ShareX.HistoryLib/Forms/HistoryForm.cs | 48 +++++----- ShareX.HistoryLib/Forms/HistoryForm.resx | 91 ++++++++++++++----- 3 files changed, 111 insertions(+), 44 deletions(-) diff --git a/ShareX.HistoryLib/Forms/HistoryForm.Designer.cs b/ShareX.HistoryLib/Forms/HistoryForm.Designer.cs index 7b09c0358..bf70bf103 100644 --- a/ShareX.HistoryLib/Forms/HistoryForm.Designer.cs +++ b/ShareX.HistoryLib/Forms/HistoryForm.Designer.cs @@ -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; } } \ No newline at end of file diff --git a/ShareX.HistoryLib/Forms/HistoryForm.cs b/ShareX.HistoryLib/Forms/HistoryForm.cs index a1ea96264..a8e246be5 100644 --- a/ShareX.HistoryLib/Forms/HistoryForm.cs +++ b/ShareX.HistoryLib/Forms/HistoryForm.cs @@ -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; diff --git a/ShareX.HistoryLib/Forms/HistoryForm.resx b/ShareX.HistoryLib/Forms/HistoryForm.resx index aaa066d42..1d012143f 100644 --- a/ShareX.HistoryLib/Forms/HistoryForm.resx +++ b/ShareX.HistoryLib/Forms/HistoryForm.resx @@ -127,7 +127,6 @@ - @Invariant @@ -197,7 +196,7 @@ 8, 8 - 408, 368 + 408, 352 3 @@ -217,6 +216,54 @@ Bottom, Left, Right + + True + + + 13, 203 + + + 32, 13 + + + 20 + + + URL: + + + lblURLFilter + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gbFilters + + + 0 + + + 168, 199 + + + 144, 20 + + + 19 + + + txtURLFilter + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gbFilters + + + 1 + True @@ -242,10 +289,10 @@ gbFilters - 0 + 2 - 168, 176 + 168, 174 144, 21 @@ -263,13 +310,13 @@ gbFilters - 1 + 3 NoControl - 168, 210 + 168, 232 144, 24 @@ -290,13 +337,13 @@ gbFilters - 2 + 4 NoControl - 16, 210 + 16, 232 144, 24 @@ -317,7 +364,7 @@ gbFilters - 3 + 5 168, 150 @@ -338,7 +385,7 @@ gbFilters - 4 + 6 True @@ -347,7 +394,7 @@ NoControl - 16, 179 + 16, 176 51, 17 @@ -368,7 +415,7 @@ gbFilters - 5 + 7 True @@ -398,7 +445,7 @@ gbFilters - 6 + 8 88, 94 @@ -419,7 +466,7 @@ gbFilters - 7 + 9 True @@ -449,7 +496,7 @@ gbFilters - 8 + 10 True @@ -479,7 +526,7 @@ gbFilters - 9 + 11 True @@ -509,7 +556,7 @@ gbFilters - 10 + 12 88, 118 @@ -530,7 +577,7 @@ gbFilters - 11 + 13 16, 46 @@ -551,7 +598,7 @@ gbFilters - 12 + 14 Contains @@ -584,13 +631,13 @@ gbFilters - 13 + 15 - 8, 384 + 8, 368 - 408, 250 + 408, 266 4