From 3e60f24919cbed623613b9ceba32b7251d59d367 Mon Sep 17 00:00:00 2001 From: Jaex Date: Mon, 26 Jul 2021 02:39:35 +0300 Subject: [PATCH] Added mock history data when ctrl + f5 pressed while in debug mode --- ShareX.HistoryLib/Forms/HistoryForm.cs | 18 +++-- ShareX.HistoryLib/HistoryManagerMock.cs | 79 ++++++++++++++++++++++ ShareX.HistoryLib/ShareX.HistoryLib.csproj | 1 + 3 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 ShareX.HistoryLib/HistoryManagerMock.cs diff --git a/ShareX.HistoryLib/Forms/HistoryForm.cs b/ShareX.HistoryLib/Forms/HistoryForm.cs index ff5d28160..7240a4e3a 100644 --- a/ShareX.HistoryLib/Forms/HistoryForm.cs +++ b/ShareX.HistoryLib/Forms/HistoryForm.cs @@ -82,9 +82,9 @@ public HistoryForm(string historyPath, HistorySettings settings, Action 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().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 } } diff --git a/ShareX.HistoryLib/HistoryManagerMock.cs b/ShareX.HistoryLib/HistoryManagerMock.cs new file mode 100644 index 000000000..1fbf5d255 --- /dev/null +++ b/ShareX.HistoryLib/HistoryManagerMock.cs @@ -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 . +*/ + +#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 Load(string filePath) + { + List items = new List(); + + 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 historyItems) + { + return true; + } + } +} \ No newline at end of file diff --git a/ShareX.HistoryLib/ShareX.HistoryLib.csproj b/ShareX.HistoryLib/ShareX.HistoryLib.csproj index c9d55a93c..0cd88388e 100644 --- a/ShareX.HistoryLib/ShareX.HistoryLib.csproj +++ b/ShareX.HistoryLib/ShareX.HistoryLib.csproj @@ -107,6 +107,7 @@ ImageHistorySettingsForm.cs +