Added mock history data when ctrl + f5 pressed while in debug mode

This commit is contained in:
Jaex 2021-07-26 02:39:35 +03:00
parent 2eccedb2eb
commit 3e60f24919
3 changed files with 94 additions and 4 deletions

View file

@ -82,9 +82,9 @@ public HistoryForm(string historyPath, HistorySettings settings, Action<string>
Settings.WindowState.AutoHandleFormState(this);
}
private void RefreshHistoryItems()
private void RefreshHistoryItems(bool mockData = false)
{
allHistoryItems = GetHistoryItems();
allHistoryItems = GetHistoryItems(mockData);
ApplyFilterSimple();
}
@ -93,9 +93,13 @@ private HistoryItem[] him_GetHistoryItems()
return lvHistory.SelectedItems.Cast<ListViewItem>().Select(x => x.Tag as HistoryItem).ToArray();
}
private HistoryItem[] GetHistoryItems()
private HistoryItem[] GetHistoryItems(bool mockData = false)
{
if (history == null)
if (mockData)
{
history = new HistoryManagerMock(HistoryPath);
}
else
{
history = new HistoryManagerJSON(HistoryPath);
}
@ -347,6 +351,12 @@ private void HistoryForm_KeyDown(object sender, KeyEventArgs e)
RefreshHistoryItems();
e.Handled = true;
break;
#if DEBUG
case Keys.Control | Keys.F5:
RefreshHistoryItems(true);
e.Handled = true;
break;
#endif
}
}

View file

@ -0,0 +1,79 @@
#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;
namespace ShareX.HistoryLib
{
public class HistoryManagerMock : HistoryManager
{
private int itemCount = 10000;
public HistoryManagerMock(string filePath) : base(filePath)
{
}
protected override List<HistoryItem> Load(string filePath)
{
List<HistoryItem> items = new List<HistoryItem>();
for (int i = 0; i < itemCount; i++)
{
items.Add(CreateMockHistoryItem());
}
return items.OrderBy(x => x.DateTime).ToList();
}
private HistoryItem CreateMockHistoryItem()
{
string fileName = $"ShareX_{Helpers.GetRandomAlphanumeric(10)}.png";
HistoryItem historyItem = new HistoryItem()
{
FileName = fileName,
FilePath = @"..\..\..\ShareX.HelpersLib\Resources\ShareX_Logo.png",
DateTime = DateTime.Now.AddSeconds(-RandomFast.Next(0, 1000000)),
Type = "Image",
Host = "Amazon S3",
URL = "https://i.example.com/" + fileName,
ThumbnailURL = "https://t.example.com/" + fileName,
DeletionURL = "https://d.example.com/" + fileName,
ShortenedURL = "https://s.example.com/" + fileName
};
return historyItem;
}
protected override bool Append(string filePath, IEnumerable<HistoryItem> historyItems)
{
return true;
}
}
}

View file

@ -107,6 +107,7 @@
<DependentUpon>ImageHistorySettingsForm.cs</DependentUpon>
</Compile>
<Compile Include="HistoryManagerJSON.cs" />
<Compile Include="HistoryManagerMock.cs" />
<Compile Include="HistoryManagerXML.cs" />
<Compile Include="HistorySettings.cs" />
<Compile Include="ImageHistorySettings.cs" />