Skip to content

Commit f8b6ac0

Browse files
authored
Merge pull request #353 from TheJoeFin/Packaged-File-Issues
Packaged file issues
2 parents bfcc9ba + 6102c9b commit f8b6ac0

File tree

7 files changed

+73
-69
lines changed

7 files changed

+73
-69
lines changed

Text-Grab-Package/Package.appxmanifest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<Identity
1212
Name="40087JoeFinApps.TextGrab"
1313
Publisher="CN=153F3B0F-BA3D-4964-8098-71AC78A1DF6A"
14-
Version="4.1.3.0" />
14+
Version="4.1.4.0" />
1515

1616
<Properties>
1717
<DisplayName>Text Grab</DisplayName>

Text-Grab/Services/HistoryService.cs

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
using System;
1+
using Humanizer;
2+
using System;
23
using System.Collections.Generic;
34
using System.Diagnostics;
45
using System.Drawing;
56
using System.IO;
67
using System.Linq;
78
using System.Text.Json;
89
using System.Threading.Tasks;
10+
using System.Windows;
11+
using System.Windows.Controls;
912
using System.Windows.Threading;
1013
using Text_Grab.Models;
1114
using Text_Grab.Properties;
@@ -102,6 +105,40 @@ public async Task LoadHistories()
102105
HistoryWithImage = await LoadHistory(nameof(HistoryWithImage));
103106
}
104107

108+
public async Task PopulateMenuItemWithRecentGrabs(MenuItem recentGrabsMenuItem)
109+
{
110+
List<HistoryInfo> grabsHistory = GetRecentGrabs();
111+
grabsHistory = grabsHistory.OrderByDescending(x => x.CaptureDateTime).ToList();
112+
113+
recentGrabsMenuItem.Items.Clear();
114+
115+
if (grabsHistory.Count < 1)
116+
{
117+
recentGrabsMenuItem.IsEnabled = false;
118+
return;
119+
}
120+
121+
string historyBasePath = await FileUtilities.GetPathToHistory();
122+
123+
foreach (HistoryInfo history in grabsHistory)
124+
{
125+
string imageFullPath = Path.Combine(historyBasePath, history.ImagePath);
126+
if (string.IsNullOrWhiteSpace(history.ImagePath) || !File.Exists(imageFullPath))
127+
continue;
128+
129+
MenuItem menuItem = new();
130+
menuItem.Click += (object sender, RoutedEventArgs args) =>
131+
{
132+
GrabFrame grabFrame = new(history);
133+
try { grabFrame.Show(); }
134+
catch { menuItem.IsEnabled = false; }
135+
};
136+
137+
menuItem.Header = $"{history.CaptureDateTime.Humanize()} | {history.TextContent.MakeStringSingleLine().Truncate(20)}";
138+
recentGrabsMenuItem.Items.Add(menuItem);
139+
}
140+
}
141+
105142
public void SaveToHistory(GrabFrame grabFrameToSave)
106143
{
107144
if (!Settings.Default.UseHistory)

Text-Grab/Utilities/FileUtilities.cs

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.IO;
66
using System.Text;
77
using System.Threading.Tasks;
8+
using Windows.Media.Streaming.Adaptive;
89
using Windows.Storage;
910
using Windows.Storage.Streams;
1011

@@ -71,6 +72,18 @@ public static string GetPathToLocalFile(string imageRelativePath)
7172

7273
return Path.Combine(dirPath, imageRelativePath);
7374
}
75+
76+
public async static Task<string> GetPathToHistory()
77+
{
78+
if (ImplementAppOptions.IsPackaged())
79+
{
80+
StorageFolder historyFolder = await GetStorageFolderPackaged("", FileStorageKind.WithHistory);
81+
return historyFolder.Path;
82+
}
83+
84+
return GetFolderPathUnpackaged("", FileStorageKind.WithHistory);
85+
}
86+
7487
public static Task<string> GetTextFileAsync(string fileName, FileStorageKind storageKind)
7588
{
7689
if (ImplementAppOptions.IsPackaged())
@@ -122,10 +135,13 @@ public static Task<bool> SaveTextFile(string textContent, string filename, FileS
122135
}
123136
private async static Task<string> GetTextFilePackaged(string fileName, FileStorageKind storageKind)
124137
{
125-
StorageFolder folder = await GetStorageFolderPackaged(fileName, storageKind);
126-
127138
try
128139
{
140+
StorageFolder folder = await GetStorageFolderPackaged(fileName, storageKind);
141+
142+
if (storageKind == FileStorageKind.Absolute)
143+
fileName = Path.GetFileName(fileName);
144+
129145
StorageFile file = await folder.GetFileAsync(fileName);
130146
using Stream stream = await file.OpenStreamForReadAsync();
131147
StreamReader streamReader = new(stream);
@@ -182,11 +198,15 @@ private static async Task<StorageFolder> GetStorageFolderPackaged(string fileNam
182198
switch (storageKind)
183199
{
184200
case FileStorageKind.Absolute:
185-
return await StorageFolder.GetFolderFromPathAsync(fileName);
201+
string? dirPath = Path.GetDirectoryName(fileName);
202+
StorageFolder absoluteFolder = await StorageFolder.GetFolderFromPathAsync(dirPath);
203+
return absoluteFolder;
186204
case FileStorageKind.WithExe:
187205
return ApplicationData.Current.LocalFolder;
188206
case FileStorageKind.WithHistory:
189-
return await ApplicationData.Current.LocalFolder.CreateFolderAsync("history", CreationCollisionOption.OpenIfExists);
207+
ApplicationData currentAppData = ApplicationData.Current;
208+
StorageFolder storageFolder = await currentAppData.LocalFolder.CreateFolderAsync("history", CreationCollisionOption.OpenIfExists);
209+
return storageFolder;
190210
default:
191211
break;
192212
}
@@ -232,6 +252,10 @@ private static async Task<bool> SaveTextFilePackaged(string textContent, string
232252
try
233253
{
234254
StorageFolder storageFolder = await GetStorageFolderPackaged(filename, storageKind);
255+
256+
if (storageKind == FileStorageKind.Absolute)
257+
filename = Path.GetFileName(filename);
258+
235259
StorageFile textFile = await storageFolder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
236260
using IRandomAccessStream randomAccessStream = await textFile.OpenAsync(FileAccessMode.ReadWrite);
237261
DataWriter dataWriter = new(randomAccessStream);

Text-Grab/Views/EditTextWindow.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@
175175
<MenuItem
176176
x:Name="CloseMenuItem"
177177
Click="CloseMenuItem_Click"
178-
Header="_Exit"
178+
Header="Close"
179179
InputGestureText="Alt + F4" />
180180
</MenuItem>
181181
<MenuItem Header="_Edit">

Text-Grab/Views/EditTextWindow.xaml.cs

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -970,37 +970,6 @@ private void ListFilesMenuItem_Click(object sender, RoutedEventArgs e)
970970
}
971971
}
972972

973-
private void LoadRecentGrabsHistory()
974-
{
975-
List<HistoryInfo> grabsHistory = Singleton<HistoryService>.Instance.GetRecentGrabs();
976-
grabsHistory = grabsHistory.OrderByDescending(x => x.CaptureDateTime).ToList();
977-
978-
OpenRecentGrabsMenuItem.Items.Clear();
979-
980-
if (grabsHistory.Count < 1)
981-
{
982-
OpenRecentGrabsMenuItem.IsEnabled = false;
983-
return;
984-
}
985-
986-
foreach (HistoryInfo history in grabsHistory)
987-
{
988-
if (string.IsNullOrWhiteSpace(history.ImagePath) || !File.Exists(history.ImagePath))
989-
continue;
990-
991-
MenuItem menuItem = new();
992-
menuItem.Click += (object sender, RoutedEventArgs args) =>
993-
{
994-
GrabFrame grabFrame = new(history);
995-
try { grabFrame.Show(); }
996-
catch { menuItem.IsEnabled = false; }
997-
};
998-
999-
menuItem.Header = $"{history.CaptureDateTime.Humanize()} | {history.TextContent.MakeStringSingleLine().Truncate(20)}";
1000-
OpenRecentGrabsMenuItem.Items.Add(menuItem);
1001-
}
1002-
}
1003-
1004973
private void LoadRecentTextHistory()
1005974
{
1006975
List<HistoryInfo> grabsHistories = Singleton<HistoryService>.Instance.GetEditWindows();
@@ -1066,10 +1035,10 @@ private void MakeQrCodeExecuted(object sender, ExecutedRoutedEventArgs e)
10661035
window.Show();
10671036
}
10681037

1069-
private void MenuItem_SubmenuOpened(object sender, RoutedEventArgs e)
1038+
private async void MenuItem_SubmenuOpened(object sender, RoutedEventArgs e)
10701039
{
10711040
LoadRecentTextHistory();
1072-
LoadRecentGrabsHistory();
1041+
await Singleton<HistoryService>.Instance.PopulateMenuItemWithRecentGrabs(OpenRecentGrabsMenuItem);
10731042
}
10741043

10751044
private void MoveLineDown(object? sender, ExecutedRoutedEventArgs? e)

Text-Grab/Views/GrabFrame.xaml.cs

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1474,35 +1474,9 @@ private void LoadOcrLanguages()
14741474
isLanguageBoxLoaded = true;
14751475
}
14761476

1477-
private void MenuItem_SubmenuOpened(object sender, RoutedEventArgs e)
1477+
private async void MenuItem_SubmenuOpened(object sender, RoutedEventArgs e)
14781478
{
1479-
List<HistoryInfo> grabsHistories = Singleton<HistoryService>.Instance.GetRecentGrabs();
1480-
grabsHistories = grabsHistories.OrderByDescending(x => x.CaptureDateTime).ToList();
1481-
1482-
OpenRecentGrabsMenuItem.Items.Clear();
1483-
1484-
if (grabsHistories.Count < 1)
1485-
{
1486-
OpenRecentGrabsMenuItem.IsEnabled = false;
1487-
return;
1488-
}
1489-
1490-
foreach (HistoryInfo history in grabsHistories)
1491-
{
1492-
if (string.IsNullOrWhiteSpace(history.ImagePath) || !File.Exists(history.ImagePath))
1493-
continue;
1494-
1495-
MenuItem menuItem = new();
1496-
menuItem.Click += (object sender, RoutedEventArgs args) =>
1497-
{
1498-
GrabFrame grabFrame = new(history);
1499-
try { grabFrame.Show(); }
1500-
catch { menuItem.IsEnabled = false; }
1501-
};
1502-
1503-
menuItem.Header = $"{history.CaptureDateTime.Humanize()} | {history.TextContent.MakeStringSingleLine().Truncate(20)}";
1504-
OpenRecentGrabsMenuItem.Items.Add(menuItem);
1505-
}
1479+
await Singleton<HistoryService>.Instance.PopulateMenuItemWithRecentGrabs(OpenRecentGrabsMenuItem);
15061480
}
15071481

15081482
private void MergeWordBordersExecuted(object sender, ExecutedRoutedEventArgs? e = null)

Text-Grab/Views/SettingsWindow.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
<TextBlock
6868
VerticalAlignment="Center"
6969
Style="{StaticResource TextBodyNormal}"
70-
Text="Version 4.1.3" />
70+
Text="Version 4.1.4" />
7171

7272
<controls:CollapsibleButton
7373
x:Name="AboutBTN"

0 commit comments

Comments
 (0)