mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Added simple search bar, refactor history filtering
This commit is contained in:
parent
237cae6b1e
commit
c13c0afec7
5 changed files with 416 additions and 191 deletions
107
ShareX.HistoryLib/Forms/HistoryForm.Designer.cs
generated
107
ShareX.HistoryLib/Forms/HistoryForm.Designer.cs
generated
|
@ -31,8 +31,6 @@ private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HistoryForm));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HistoryForm));
|
||||||
this.scMain = new ShareX.HelpersLib.SplitContainerCustomSplitter();
|
this.scMain = new ShareX.HelpersLib.SplitContainerCustomSplitter();
|
||||||
this.pStats = new System.Windows.Forms.Panel();
|
|
||||||
this.rtbStats = new System.Windows.Forms.RichTextBox();
|
|
||||||
this.lvHistory = new ShareX.HelpersLib.MyListView();
|
this.lvHistory = new ShareX.HelpersLib.MyListView();
|
||||||
this.chIcon = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.chIcon = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.chDateTime = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.chDateTime = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
|
@ -40,7 +38,6 @@ private void InitializeComponent()
|
||||||
this.chURL = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.chURL = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.nudMaxItemCount = new System.Windows.Forms.NumericUpDown();
|
this.nudMaxItemCount = new System.Windows.Forms.NumericUpDown();
|
||||||
this.pbThumbnail = new ShareX.HelpersLib.MyPictureBox();
|
this.pbThumbnail = new ShareX.HelpersLib.MyPictureBox();
|
||||||
this.btnShowStats = new System.Windows.Forms.Button();
|
|
||||||
this.lblMaxItemCount = new System.Windows.Forms.Label();
|
this.lblMaxItemCount = new System.Windows.Forms.Label();
|
||||||
this.gbFilters = new System.Windows.Forms.GroupBox();
|
this.gbFilters = new System.Windows.Forms.GroupBox();
|
||||||
this.lblURLFilter = new System.Windows.Forms.Label();
|
this.lblURLFilter = new System.Windows.Forms.Label();
|
||||||
|
@ -58,13 +55,22 @@ private void InitializeComponent()
|
||||||
this.cbDateFilter = new System.Windows.Forms.CheckBox();
|
this.cbDateFilter = new System.Windows.Forms.CheckBox();
|
||||||
this.dtpFilterTo = new System.Windows.Forms.DateTimePicker();
|
this.dtpFilterTo = new System.Windows.Forms.DateTimePicker();
|
||||||
this.txtFilenameFilter = new System.Windows.Forms.TextBox();
|
this.txtFilenameFilter = new System.Windows.Forms.TextBox();
|
||||||
|
this.tscHistory = new System.Windows.Forms.ToolStripContainer();
|
||||||
|
this.tssHistory = new System.Windows.Forms.ToolStrip();
|
||||||
|
this.tslSearch = new System.Windows.Forms.ToolStripLabel();
|
||||||
|
this.tstbSearch = new System.Windows.Forms.ToolStripTextBox();
|
||||||
|
this.tsbSearch = new System.Windows.Forms.ToolStripButton();
|
||||||
|
this.btnCopyStats = new System.Windows.Forms.Button();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
|
||||||
this.scMain.Panel1.SuspendLayout();
|
this.scMain.Panel1.SuspendLayout();
|
||||||
this.scMain.Panel2.SuspendLayout();
|
this.scMain.Panel2.SuspendLayout();
|
||||||
this.scMain.SuspendLayout();
|
this.scMain.SuspendLayout();
|
||||||
this.pStats.SuspendLayout();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.nudMaxItemCount)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.nudMaxItemCount)).BeginInit();
|
||||||
this.gbFilters.SuspendLayout();
|
this.gbFilters.SuspendLayout();
|
||||||
|
this.tscHistory.ContentPanel.SuspendLayout();
|
||||||
|
this.tscHistory.TopToolStripPanel.SuspendLayout();
|
||||||
|
this.tscHistory.SuspendLayout();
|
||||||
|
this.tssHistory.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// scMain
|
// scMain
|
||||||
|
@ -75,32 +81,19 @@ private void InitializeComponent()
|
||||||
//
|
//
|
||||||
// scMain.Panel1
|
// scMain.Panel1
|
||||||
//
|
//
|
||||||
this.scMain.Panel1.Controls.Add(this.pStats);
|
this.scMain.Panel1.Controls.Add(this.tscHistory);
|
||||||
this.scMain.Panel1.Controls.Add(this.lvHistory);
|
|
||||||
//
|
//
|
||||||
// scMain.Panel2
|
// scMain.Panel2
|
||||||
//
|
//
|
||||||
|
this.scMain.Panel2.Controls.Add(this.btnCopyStats);
|
||||||
this.scMain.Panel2.Controls.Add(this.nudMaxItemCount);
|
this.scMain.Panel2.Controls.Add(this.nudMaxItemCount);
|
||||||
this.scMain.Panel2.Controls.Add(this.pbThumbnail);
|
this.scMain.Panel2.Controls.Add(this.pbThumbnail);
|
||||||
this.scMain.Panel2.Controls.Add(this.btnShowStats);
|
|
||||||
this.scMain.Panel2.Controls.Add(this.lblMaxItemCount);
|
this.scMain.Panel2.Controls.Add(this.lblMaxItemCount);
|
||||||
this.scMain.Panel2.Controls.Add(this.gbFilters);
|
this.scMain.Panel2.Controls.Add(this.gbFilters);
|
||||||
this.scMain.SplitterColor = System.Drawing.Color.White;
|
this.scMain.SplitterColor = System.Drawing.Color.White;
|
||||||
this.scMain.SplitterLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(189)))), ((int)(((byte)(189)))));
|
this.scMain.SplitterLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(189)))), ((int)(((byte)(189)))));
|
||||||
this.scMain.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.scMain_SplitterMoved);
|
this.scMain.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.scMain_SplitterMoved);
|
||||||
//
|
//
|
||||||
// pStats
|
|
||||||
//
|
|
||||||
this.pStats.Controls.Add(this.rtbStats);
|
|
||||||
resources.ApplyResources(this.pStats, "pStats");
|
|
||||||
this.pStats.Name = "pStats";
|
|
||||||
//
|
|
||||||
// rtbStats
|
|
||||||
//
|
|
||||||
this.rtbStats.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
|
||||||
resources.ApplyResources(this.rtbStats, "rtbStats");
|
|
||||||
this.rtbStats.Name = "rtbStats";
|
|
||||||
//
|
|
||||||
// lvHistory
|
// lvHistory
|
||||||
//
|
//
|
||||||
this.lvHistory.AllowColumnSort = true;
|
this.lvHistory.AllowColumnSort = true;
|
||||||
|
@ -160,13 +153,6 @@ private void InitializeComponent()
|
||||||
this.pbThumbnail.PictureBoxBackColor = System.Drawing.SystemColors.Control;
|
this.pbThumbnail.PictureBoxBackColor = System.Drawing.SystemColors.Control;
|
||||||
this.pbThumbnail.ShowImageSizeLabel = true;
|
this.pbThumbnail.ShowImageSizeLabel = true;
|
||||||
//
|
//
|
||||||
// btnShowStats
|
|
||||||
//
|
|
||||||
resources.ApplyResources(this.btnShowStats, "btnShowStats");
|
|
||||||
this.btnShowStats.Name = "btnShowStats";
|
|
||||||
this.btnShowStats.UseVisualStyleBackColor = true;
|
|
||||||
this.btnShowStats.Click += new System.EventHandler(this.BtnShowStats_Click);
|
|
||||||
//
|
|
||||||
// lblMaxItemCount
|
// lblMaxItemCount
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.lblMaxItemCount, "lblMaxItemCount");
|
resources.ApplyResources(this.lblMaxItemCount, "lblMaxItemCount");
|
||||||
|
@ -280,6 +266,58 @@ private void InitializeComponent()
|
||||||
this.txtFilenameFilter.Name = "txtFilenameFilter";
|
this.txtFilenameFilter.Name = "txtFilenameFilter";
|
||||||
this.txtFilenameFilter.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtFilenameFilter_KeyDown);
|
this.txtFilenameFilter.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtFilenameFilter_KeyDown);
|
||||||
//
|
//
|
||||||
|
// tscHistory
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// tscHistory.ContentPanel
|
||||||
|
//
|
||||||
|
this.tscHistory.ContentPanel.Controls.Add(this.lvHistory);
|
||||||
|
resources.ApplyResources(this.tscHistory.ContentPanel, "tscHistory.ContentPanel");
|
||||||
|
resources.ApplyResources(this.tscHistory, "tscHistory");
|
||||||
|
this.tscHistory.Name = "tscHistory";
|
||||||
|
//
|
||||||
|
// tscHistory.TopToolStripPanel
|
||||||
|
//
|
||||||
|
this.tscHistory.TopToolStripPanel.Controls.Add(this.tssHistory);
|
||||||
|
//
|
||||||
|
// tssHistory
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.tssHistory, "tssHistory");
|
||||||
|
this.tssHistory.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
|
||||||
|
this.tssHistory.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.tslSearch,
|
||||||
|
this.tstbSearch,
|
||||||
|
this.tsbSearch});
|
||||||
|
this.tssHistory.Name = "tssHistory";
|
||||||
|
this.tssHistory.ShowItemToolTips = false;
|
||||||
|
//
|
||||||
|
// tslSearch
|
||||||
|
//
|
||||||
|
this.tslSearch.Name = "tslSearch";
|
||||||
|
resources.ApplyResources(this.tslSearch, "tslSearch");
|
||||||
|
//
|
||||||
|
// tstbSearch
|
||||||
|
//
|
||||||
|
this.tstbSearch.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
resources.ApplyResources(this.tstbSearch, "tstbSearch");
|
||||||
|
this.tstbSearch.Name = "tstbSearch";
|
||||||
|
this.tstbSearch.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tstbSearch_KeyDown);
|
||||||
|
//
|
||||||
|
// tsbSearch
|
||||||
|
//
|
||||||
|
this.tsbSearch.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||||
|
this.tsbSearch.Image = global::ShareX.HistoryLib.Properties.Resources.magnifier;
|
||||||
|
resources.ApplyResources(this.tsbSearch, "tsbSearch");
|
||||||
|
this.tsbSearch.Name = "tsbSearch";
|
||||||
|
this.tsbSearch.Click += new System.EventHandler(this.tsbSearch_Click);
|
||||||
|
//
|
||||||
|
// btnCopyStats
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.btnCopyStats, "btnCopyStats");
|
||||||
|
this.btnCopyStats.Name = "btnCopyStats";
|
||||||
|
this.btnCopyStats.UseVisualStyleBackColor = true;
|
||||||
|
this.btnCopyStats.Click += new System.EventHandler(this.btnCopyStats_Click);
|
||||||
|
//
|
||||||
// HistoryForm
|
// HistoryForm
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
|
@ -296,10 +334,16 @@ private void InitializeComponent()
|
||||||
this.scMain.Panel2.PerformLayout();
|
this.scMain.Panel2.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit();
|
||||||
this.scMain.ResumeLayout(false);
|
this.scMain.ResumeLayout(false);
|
||||||
this.pStats.ResumeLayout(false);
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.nudMaxItemCount)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.nudMaxItemCount)).EndInit();
|
||||||
this.gbFilters.ResumeLayout(false);
|
this.gbFilters.ResumeLayout(false);
|
||||||
this.gbFilters.PerformLayout();
|
this.gbFilters.PerformLayout();
|
||||||
|
this.tscHistory.ContentPanel.ResumeLayout(false);
|
||||||
|
this.tscHistory.TopToolStripPanel.ResumeLayout(false);
|
||||||
|
this.tscHistory.TopToolStripPanel.PerformLayout();
|
||||||
|
this.tscHistory.ResumeLayout(false);
|
||||||
|
this.tscHistory.PerformLayout();
|
||||||
|
this.tssHistory.ResumeLayout(false);
|
||||||
|
this.tssHistory.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -329,10 +373,13 @@ private void InitializeComponent()
|
||||||
private System.Windows.Forms.Label lblFilenameFilter;
|
private System.Windows.Forms.Label lblFilenameFilter;
|
||||||
private System.Windows.Forms.Label lblURLFilter;
|
private System.Windows.Forms.Label lblURLFilter;
|
||||||
private System.Windows.Forms.TextBox txtURLFilter;
|
private System.Windows.Forms.TextBox txtURLFilter;
|
||||||
private System.Windows.Forms.Button btnShowStats;
|
|
||||||
private System.Windows.Forms.RichTextBox rtbStats;
|
|
||||||
private System.Windows.Forms.Panel pStats;
|
|
||||||
private System.Windows.Forms.Label lblMaxItemCount;
|
private System.Windows.Forms.Label lblMaxItemCount;
|
||||||
private System.Windows.Forms.NumericUpDown nudMaxItemCount;
|
private System.Windows.Forms.NumericUpDown nudMaxItemCount;
|
||||||
|
private System.Windows.Forms.ToolStripContainer tscHistory;
|
||||||
|
private System.Windows.Forms.ToolStrip tssHistory;
|
||||||
|
private System.Windows.Forms.ToolStripLabel tslSearch;
|
||||||
|
private System.Windows.Forms.ToolStripTextBox tstbSearch;
|
||||||
|
private System.Windows.Forms.ToolStripButton tsbSearch;
|
||||||
|
private System.Windows.Forms.Button btnCopyStats;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -30,7 +30,6 @@ You should have received a copy of the GNU General Public License
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace ShareX.HistoryLib
|
namespace ShareX.HistoryLib
|
||||||
|
@ -39,7 +38,6 @@ public partial class HistoryForm : Form
|
||||||
{
|
{
|
||||||
public string HistoryPath { get; private set; }
|
public string HistoryPath { get; private set; }
|
||||||
public HistorySettings Settings { get; private set; }
|
public HistorySettings Settings { get; private set; }
|
||||||
public bool SearchInTags { get; set; } = true;
|
|
||||||
|
|
||||||
private HistoryManager history;
|
private HistoryManager history;
|
||||||
private HistoryItemManager him;
|
private HistoryItemManager him;
|
||||||
|
@ -90,12 +88,12 @@ public HistoryForm(string historyPath, HistorySettings settings, Action<string>
|
||||||
private void RefreshHistoryItems()
|
private void RefreshHistoryItems()
|
||||||
{
|
{
|
||||||
allHistoryItems = GetHistoryItems();
|
allHistoryItems = GetHistoryItems();
|
||||||
ApplyFiltersAndAdd();
|
ApplyFilter();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OutputStats(HistoryItem[] historyItems)
|
private void OutputStats(HistoryItem[] historyItems)
|
||||||
{
|
{
|
||||||
rtbStats.ResetText();
|
/*rtbStats.ResetText();
|
||||||
|
|
||||||
rtbStats.SetFontBold();
|
rtbStats.SetFontBold();
|
||||||
rtbStats.AppendLine(Resources.HistoryItemCounts);
|
rtbStats.AppendLine(Resources.HistoryItemCounts);
|
||||||
|
@ -145,7 +143,7 @@ private void OutputStats(HistoryItem[] historyItems)
|
||||||
OrderByDescending(x => x.Count()).
|
OrderByDescending(x => x.Count()).
|
||||||
Select(x => string.Format("{0} ({1})", x.Key, x.Count()));
|
Select(x => string.Format("{0} ({1})", x.Key, x.Count()));
|
||||||
|
|
||||||
rtbStats.AppendLine(string.Join(Environment.NewLine, hosts));
|
rtbStats.AppendLine(string.Join(Environment.NewLine, hosts));*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private HistoryItem[] him_GetHistoryItems()
|
private HistoryItem[] him_GetHistoryItems()
|
||||||
|
@ -165,11 +163,36 @@ private HistoryItem[] GetHistoryItems()
|
||||||
return historyItems.ToArray();
|
return historyItems.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ApplyFiltersAndAdd()
|
private void ApplyFilter()
|
||||||
|
{
|
||||||
|
HistoryFilter filter = new HistoryFilter()
|
||||||
|
{
|
||||||
|
FileName = txtFilenameFilter.Text,
|
||||||
|
URL = txtURLFilter.Text,
|
||||||
|
FilterDate = cbDateFilter.Checked,
|
||||||
|
FromDate = dtpFilterFrom.Value.Date,
|
||||||
|
ToDate = dtpFilterTo.Value.Date,
|
||||||
|
FilterType = cbTypeFilter.Checked,
|
||||||
|
Type = cbTypeFilterSelection.Text,
|
||||||
|
FilterHost = cbHostFilter.Checked,
|
||||||
|
Host = cbHostFilterSelection.Text
|
||||||
|
};
|
||||||
|
|
||||||
|
ApplyFilter(filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ApplyFilterSimple()
|
||||||
|
{
|
||||||
|
HistoryFilter filter = new HistoryFilter(tstbSearch.Text);
|
||||||
|
|
||||||
|
ApplyFilter(filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ApplyFilter(HistoryFilter filter)
|
||||||
{
|
{
|
||||||
if (allHistoryItems != null && allHistoryItems.Length > 0)
|
if (allHistoryItems != null && allHistoryItems.Length > 0)
|
||||||
{
|
{
|
||||||
HistoryItem[] historyItems = ApplyFilters(allHistoryItems);
|
HistoryItem[] historyItems = filter.ApplyFilter(allHistoryItems);
|
||||||
|
|
||||||
if (Settings.MaxItemCount > 0 && historyItems.Length > Settings.MaxItemCount)
|
if (Settings.MaxItemCount > 0 && historyItems.Length > Settings.MaxItemCount)
|
||||||
{
|
{
|
||||||
|
@ -180,63 +203,6 @@ private void ApplyFiltersAndAdd()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private HistoryItem[] ApplyFilters(HistoryItem[] historyItems)
|
|
||||||
{
|
|
||||||
if (!cbTypeFilter.Checked && !cbHostFilter.Checked && string.IsNullOrEmpty(txtFilenameFilter.Text) && string.IsNullOrEmpty(txtURLFilter.Text) && !cbDateFilter.Checked)
|
|
||||||
{
|
|
||||||
return historyItems;
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumerable<HistoryItem> result = historyItems.AsEnumerable();
|
|
||||||
|
|
||||||
if (cbTypeFilter.Checked)
|
|
||||||
{
|
|
||||||
string type = cbTypeFilterSelection.Text;
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(type))
|
|
||||||
{
|
|
||||||
result = result.Where(x => !string.IsNullOrEmpty(x.Type) && x.Type.Equals(type, StringComparison.InvariantCultureIgnoreCase));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cbHostFilter.Checked)
|
|
||||||
{
|
|
||||||
string host = cbHostFilterSelection.Text;
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(host))
|
|
||||||
{
|
|
||||||
result = result.Where(x => !string.IsNullOrEmpty(x.Host) && x.Host.Contains(host, StringComparison.InvariantCultureIgnoreCase));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
string filenameFilter = txtFilenameFilter.Text;
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(filenameFilter))
|
|
||||||
{
|
|
||||||
string pattern = Regex.Escape(filenameFilter).Replace("\\?", ".").Replace("\\*", ".*");
|
|
||||||
Regex regex = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
|
|
||||||
result = result.Where(x => (x.FileName != null && regex.IsMatch(x.FileName)) ||
|
|
||||||
(SearchInTags && x.Tags != null && x.Tags.Any(tag => regex.IsMatch(tag.Value))));
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
DateTime toDate = dtpFilterTo.Value.Date;
|
|
||||||
|
|
||||||
result = result.Where(x => x.DateTime.Date >= fromDate && x.DateTime.Date <= toDate);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void AddHistoryItems(HistoryItem[] historyItems)
|
private void AddHistoryItems(HistoryItem[] historyItems)
|
||||||
{
|
{
|
||||||
Cursor = Cursors.WaitCursor;
|
Cursor = Cursors.WaitCursor;
|
||||||
|
@ -395,13 +361,28 @@ private void scMain_SplitterMoved(object sender, SplitterEventArgs e)
|
||||||
Settings.SplitterDistance = scMain.SplitterDistance;
|
Settings.SplitterDistance = scMain.SplitterDistance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void tstbSearch_KeyDown(object sender, KeyEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.KeyCode == Keys.Enter)
|
||||||
|
{
|
||||||
|
e.Handled = true;
|
||||||
|
e.SuppressKeyPress = true;
|
||||||
|
ApplyFilterSimple();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void tsbSearch_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ApplyFilterSimple();
|
||||||
|
}
|
||||||
|
|
||||||
private void txtFilenameFilter_KeyDown(object sender, KeyEventArgs e)
|
private void txtFilenameFilter_KeyDown(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.KeyCode == Keys.Enter)
|
if (e.KeyCode == Keys.Enter)
|
||||||
{
|
{
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
e.SuppressKeyPress = true;
|
e.SuppressKeyPress = true;
|
||||||
ApplyFiltersAndAdd();
|
ApplyFilter();
|
||||||
txtFilenameFilter.Focus();
|
txtFilenameFilter.Focus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -412,14 +393,14 @@ private void txtURLFilter_KeyDown(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
e.SuppressKeyPress = true;
|
e.SuppressKeyPress = true;
|
||||||
ApplyFiltersAndAdd();
|
ApplyFilter();
|
||||||
txtURLFilter.Focus();
|
txtURLFilter.Focus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnApplyFilters_Click(object sender, EventArgs e)
|
private void btnApplyFilters_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ApplyFiltersAndAdd();
|
ApplyFilter();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnRemoveFilters_Click(object sender, EventArgs e)
|
private void btnRemoveFilters_Click(object sender, EventArgs e)
|
||||||
|
@ -427,9 +408,9 @@ private void btnRemoveFilters_Click(object sender, EventArgs e)
|
||||||
AddHistoryItems(allHistoryItems);
|
AddHistoryItems(allHistoryItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BtnShowStats_Click(object sender, EventArgs e)
|
private void btnCopyStats_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (showingStats)
|
/*if (showingStats)
|
||||||
{
|
{
|
||||||
lvHistory.Visible = true;
|
lvHistory.Visible = true;
|
||||||
pStats.Visible = false;
|
pStats.Visible = false;
|
||||||
|
@ -445,7 +426,7 @@ private void BtnShowStats_Click(object sender, EventArgs e)
|
||||||
OutputStats(allHistoryItems);
|
OutputStats(allHistoryItems);
|
||||||
Cursor = Cursors.Default;
|
Cursor = Cursors.Default;
|
||||||
showingStats = true;
|
showingStats = true;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private void nudMaxItemCount_ValueChanged(object sender, EventArgs e)
|
private void nudMaxItemCount_ValueChanged(object sender, EventArgs e)
|
||||||
|
|
|
@ -125,70 +125,22 @@
|
||||||
<data name="scMain.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="scMain.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="rtbStats.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name=">>tscHistory.BottomToolStripPanel.Name" xml:space="preserve">
|
||||||
<value>Fill</value>
|
<value>tscHistory.BottomToolStripPanel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="rtbStats.Font" type="System.Drawing.Font, System.Drawing">
|
<data name=">>tscHistory.BottomToolStripPanel.Type" xml:space="preserve">
|
||||||
<value>Arial, 9.75pt</value>
|
<value>System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="rtbStats.Location" type="System.Drawing.Point, System.Drawing">
|
<data name=">>tscHistory.BottomToolStripPanel.Parent" xml:space="preserve">
|
||||||
<value>3, 3</value>
|
<value>tscHistory</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="rtbStats.Size" type="System.Drawing.Size, System.Drawing">
|
<data name=">>tscHistory.BottomToolStripPanel.ZOrder" xml:space="preserve">
|
||||||
<value>544, 635</value>
|
<value>4</value>
|
||||||
</data>
|
|
||||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="rtbStats.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="rtbStats.Text" xml:space="preserve">
|
|
||||||
<value />
|
|
||||||
</data>
|
|
||||||
<data name=">>rtbStats.Name" xml:space="preserve">
|
|
||||||
<value>rtbStats</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>rtbStats.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>rtbStats.Parent" xml:space="preserve">
|
|
||||||
<value>pStats</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>rtbStats.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
|
||||||
<data name="pStats.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
|
||||||
<value>Fill</value>
|
|
||||||
</data>
|
|
||||||
<data name="pStats.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>0, 0</value>
|
|
||||||
</data>
|
|
||||||
<data name="pStats.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
|
||||||
<value>3, 3, 3, 3</value>
|
|
||||||
</data>
|
|
||||||
<data name="pStats.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>550, 641</value>
|
|
||||||
</data>
|
|
||||||
<data name="pStats.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>2</value>
|
|
||||||
</data>
|
|
||||||
<data name="pStats.Visible" type="System.Boolean, mscorlib">
|
|
||||||
<value>False</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>pStats.Name" xml:space="preserve">
|
|
||||||
<value>pStats</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>pStats.Type" xml:space="preserve">
|
|
||||||
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>pStats.Parent" xml:space="preserve">
|
|
||||||
<value>scMain.Panel1</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>pStats.ZOrder" xml:space="preserve">
|
|
||||||
<value>0</value>
|
|
||||||
</data>
|
</data>
|
||||||
<data name="chIcon.Text" xml:space="preserve">
|
<data name="chIcon.Text" xml:space="preserve">
|
||||||
<value />
|
<value />
|
||||||
</data>
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
<data name="chIcon.Width" type="System.Int32, mscorlib">
|
<data name="chIcon.Width" type="System.Int32, mscorlib">
|
||||||
<value>24</value>
|
<value>24</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -217,7 +169,7 @@
|
||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lvHistory.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="lvHistory.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>550, 641</value>
|
<value>550, 616</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lvHistory.TabIndex" type="System.Int32, mscorlib">
|
<data name="lvHistory.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
|
@ -229,11 +181,134 @@
|
||||||
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.5.1.0, Culture=neutral, PublicKeyToken=null</value>
|
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.5.1.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>lvHistory.Parent" xml:space="preserve">
|
<data name=">>lvHistory.Parent" xml:space="preserve">
|
||||||
<value>scMain.Panel1</value>
|
<value>tscHistory.ContentPanel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>lvHistory.ZOrder" xml:space="preserve">
|
<data name=">>lvHistory.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="tscHistory.ContentPanel.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>550, 616</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.ContentPanel.Name" xml:space="preserve">
|
||||||
|
<value>tscHistory.ContentPanel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.ContentPanel.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripContentPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.ContentPanel.Parent" xml:space="preserve">
|
||||||
|
<value>tscHistory</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.ContentPanel.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="tscHistory.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.LeftToolStripPanel.Name" xml:space="preserve">
|
||||||
|
<value>tscHistory.LeftToolStripPanel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.LeftToolStripPanel.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.LeftToolStripPanel.Parent" xml:space="preserve">
|
||||||
|
<value>tscHistory</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.LeftToolStripPanel.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="tscHistory.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.RightToolStripPanel.Name" xml:space="preserve">
|
||||||
|
<value>tscHistory.RightToolStripPanel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.RightToolStripPanel.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.RightToolStripPanel.Parent" xml:space="preserve">
|
||||||
|
<value>tscHistory</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.RightToolStripPanel.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="tscHistory.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>550, 641</value>
|
||||||
|
</data>
|
||||||
|
<data name="tscHistory.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="tscHistory.Text" xml:space="preserve">
|
||||||
|
<value>toolStripContainer1</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="tssHistory.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="tssHistory.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>None</value>
|
||||||
|
</data>
|
||||||
|
<data name="tslSearch.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>45, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tslSearch.Text" xml:space="preserve">
|
||||||
|
<value>Search:</value>
|
||||||
|
</data>
|
||||||
|
<data name="tstbSearch.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
|
<value>Segoe UI, 9pt</value>
|
||||||
|
</data>
|
||||||
|
<data name="tstbSearch.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>300, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbSearch.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||||
|
<value>Magenta</value>
|
||||||
|
</data>
|
||||||
|
<data name="tsbSearch.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="tssHistory.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>3, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="tssHistory.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>373, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name="tssHistory.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tssHistory.Name" xml:space="preserve">
|
||||||
|
<value>tssHistory</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tssHistory.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tssHistory.Parent" xml:space="preserve">
|
||||||
|
<value>tscHistory.TopToolStripPanel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tssHistory.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.TopToolStripPanel.Name" xml:space="preserve">
|
||||||
|
<value>tscHistory.TopToolStripPanel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.TopToolStripPanel.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.TopToolStripPanel.Parent" xml:space="preserve">
|
||||||
|
<value>tscHistory</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.TopToolStripPanel.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.Name" xml:space="preserve">
|
||||||
|
<value>tscHistory</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripContainer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.Parent" xml:space="preserve">
|
||||||
|
<value>scMain.Panel1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tscHistory.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
<data name=">>scMain.Panel1.Name" xml:space="preserve">
|
<data name=">>scMain.Panel1.Name" xml:space="preserve">
|
||||||
<value>scMain.Panel1</value>
|
<value>scMain.Panel1</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -249,6 +324,33 @@
|
||||||
<data name="scMain.Panel1MinSize" type="System.Int32, mscorlib">
|
<data name="scMain.Panel1MinSize" type="System.Int32, mscorlib">
|
||||||
<value>100</value>
|
<value>100</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="btnCopyStats.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCopyStats.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>8, 608</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCopyStats.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>144, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCopyStats.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCopyStats.Text" xml:space="preserve">
|
||||||
|
<value>Copy stats</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnCopyStats.Name" xml:space="preserve">
|
||||||
|
<value>btnCopyStats</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnCopyStats.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=">>btnCopyStats.Parent" xml:space="preserve">
|
||||||
|
<value>scMain.Panel2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>btnCopyStats.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
<data name="nudMaxItemCount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
<data name="nudMaxItemCount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
<value>Bottom, Left</value>
|
<value>Bottom, Left</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -274,7 +376,7 @@
|
||||||
<value>scMain.Panel2</value>
|
<value>scMain.Panel2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>nudMaxItemCount.ZOrder" xml:space="preserve">
|
<data name=">>nudMaxItemCount.ZOrder" xml:space="preserve">
|
||||||
<value>0</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="pbThumbnail.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
<data name="pbThumbnail.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
<value>Top, Bottom, Left, Right</value>
|
<value>Top, Bottom, Left, Right</value>
|
||||||
|
@ -283,7 +385,7 @@
|
||||||
<value>8, 8</value>
|
<value>8, 8</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="pbThumbnail.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="pbThumbnail.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>402, 352</value>
|
<value>400, 352</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="pbThumbnail.TabIndex" type="System.Int32, mscorlib">
|
<data name="pbThumbnail.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>3</value>
|
||||||
|
@ -298,36 +400,6 @@
|
||||||
<value>scMain.Panel2</value>
|
<value>scMain.Panel2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>pbThumbnail.ZOrder" xml:space="preserve">
|
<data name=">>pbThumbnail.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnShowStats.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
|
||||||
<value>Bottom, Left</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnShowStats.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
|
||||||
<value>NoControl</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnShowStats.Location" type="System.Drawing.Point, System.Drawing">
|
|
||||||
<value>8, 604</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnShowStats.Size" type="System.Drawing.Size, System.Drawing">
|
|
||||||
<value>144, 24</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnShowStats.TabIndex" type="System.Int32, mscorlib">
|
|
||||||
<value>5</value>
|
|
||||||
</data>
|
|
||||||
<data name="btnShowStats.Text" xml:space="preserve">
|
|
||||||
<value>Show stats</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnShowStats.Name" xml:space="preserve">
|
|
||||||
<value>btnShowStats</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnShowStats.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=">>btnShowStats.Parent" xml:space="preserve">
|
|
||||||
<value>scMain.Panel2</value>
|
|
||||||
</data>
|
|
||||||
<data name=">>btnShowStats.ZOrder" xml:space="preserve">
|
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblMaxItemCount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
<data name="lblMaxItemCount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
@ -858,6 +930,24 @@
|
||||||
<data name=">>chURL.Type" xml:space="preserve">
|
<data name=">>chURL.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>tslSearch.Name" xml:space="preserve">
|
||||||
|
<value>tslSearch</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tslSearch.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tstbSearch.Name" xml:space="preserve">
|
||||||
|
<value>tstbSearch</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tstbSearch.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tsbSearch.Name" xml:space="preserve">
|
||||||
|
<value>tsbSearch</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>tsbSearch.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=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>HistoryForm</value>
|
<value>HistoryForm</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
106
ShareX.HistoryLib/HistoryFilter.cs
Normal file
106
ShareX.HistoryLib/HistoryFilter.cs
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
#region License Information (GPL v3)
|
||||||
|
|
||||||
|
/*
|
||||||
|
ShareX - A program that allows you to take screenshots and share any file type
|
||||||
|
Copyright (c) 2007-2020 ShareX Team
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU General Public License
|
||||||
|
as published by the Free Software Foundation; either version 2
|
||||||
|
of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
Optionally you can also view the license at <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#endregion License Information (GPL v3)
|
||||||
|
|
||||||
|
using ShareX.HelpersLib;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
namespace ShareX.HistoryLib
|
||||||
|
{
|
||||||
|
public class HistoryFilter
|
||||||
|
{
|
||||||
|
public string FileName { get; set; }
|
||||||
|
public string URL { get; set; }
|
||||||
|
public bool FilterDate { get; set; }
|
||||||
|
public DateTime FromDate { get; set; }
|
||||||
|
public DateTime ToDate { get; set; }
|
||||||
|
public bool FilterType { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public bool FilterHost { get; set; }
|
||||||
|
public string Host { get; set; }
|
||||||
|
|
||||||
|
public bool SearchInTags { get; set; } = true;
|
||||||
|
|
||||||
|
public bool IsFiltered
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return !string.IsNullOrEmpty(FileName) || !string.IsNullOrEmpty(URL) || FilterDate ||
|
||||||
|
(FilterType && !string.IsNullOrEmpty(Type)) || (FilterHost && !string.IsNullOrEmpty(Host));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryFilter()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryFilter(string filename)
|
||||||
|
{
|
||||||
|
FileName = filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryItem[] ApplyFilter(HistoryItem[] historyItems)
|
||||||
|
{
|
||||||
|
if (!IsFiltered)
|
||||||
|
{
|
||||||
|
return historyItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerable<HistoryItem> result = historyItems.AsEnumerable();
|
||||||
|
|
||||||
|
if (FilterType && !string.IsNullOrEmpty(Type))
|
||||||
|
{
|
||||||
|
result = result.Where(x => !string.IsNullOrEmpty(x.Type) && x.Type.Equals(Type, StringComparison.InvariantCultureIgnoreCase));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FilterHost && !string.IsNullOrEmpty(Host))
|
||||||
|
{
|
||||||
|
result = result.Where(x => !string.IsNullOrEmpty(x.Host) && x.Host.Contains(Host, StringComparison.InvariantCultureIgnoreCase));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(FileName))
|
||||||
|
{
|
||||||
|
string pattern = Regex.Escape(FileName).Replace("\\?", ".").Replace("\\*", ".*");
|
||||||
|
Regex regex = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
|
||||||
|
result = result.Where(x => (x.FileName != null && regex.IsMatch(x.FileName)) ||
|
||||||
|
(SearchInTags && x.Tags != null && x.Tags.Any(tag => regex.IsMatch(tag.Value))));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(URL))
|
||||||
|
{
|
||||||
|
result = result.Where(x => x.URL != null && x.URL.Contains(URL, StringComparison.InvariantCultureIgnoreCase));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FilterDate)
|
||||||
|
{
|
||||||
|
result = result.Where(x => x.DateTime.Date >= FromDate && x.DateTime.Date <= ToDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -86,6 +86,7 @@
|
||||||
<Compile Include="..\SharedAssemblyInfo.cs">
|
<Compile Include="..\SharedAssemblyInfo.cs">
|
||||||
<Link>Properties\SharedAssemblyInfo.cs</Link>
|
<Link>Properties\SharedAssemblyInfo.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="HistoryFilter.cs" />
|
||||||
<Compile Include="HistoryItemManager_ContextMenu.cs" />
|
<Compile Include="HistoryItemManager_ContextMenu.cs" />
|
||||||
<Compile Include="Forms\ImageHistoryForm.cs">
|
<Compile Include="Forms\ImageHistoryForm.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
|
|
Loading…
Reference in a new issue