Skip to content

Commit 78645c6

Browse files
committed
Merge branch 'main' into pr/7859
2 parents 3dd42fc + 5e0619b commit 78645c6

File tree

88 files changed

+22360
-1058
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+22360
-1058
lines changed

src/Files.Launcher/MessageHandlers/ContextMenuHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ private Func<string, bool> FilterMenuItems(bool showOpenMenu)
151151
"cut", "copy", "paste", "delete", "properties", "link",
152152
"Windows.ModernShare", "Windows.Share", "setdesktopwallpaper",
153153
"eject", "rename", "explore", "openinfiles", "extract",
154-
"copyaspath", "undelete", "empty",
154+
"copyaspath", "undelete", "empty", "Open in Windows Terminal",
155155
Win32API.ExtractStringFromDLL("shell32.dll", 30312), // SendTo menu
156156
Win32API.ExtractStringFromDLL("shell32.dll", 34593), // Add to collection
157157
};

src/Files.Package/Files.Package.wapproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<DisableXbfLineInfo>False</DisableXbfLineInfo>
5656
<GenerateTestArtifacts>True</GenerateTestArtifacts>
5757
<AppxBundleAutoResourcePackageQualifiers>Scale|DXFeatureLevel</AppxBundleAutoResourcePackageQualifiers>
58-
<AppxDefaultResourceQualifiers>Language=en-US;af;ar;ca;da;da-DK;de-DE;el;en-GB;es-ES;es-419;fr-FR;he-IL;hi-IN;hr-HR;hu-HU;id-ID;it-IT;ja-JP;ka;ko-KR;lv-LV;nl-NL;or-IN;pl-PL;pt-BR;pt-PT;ru-RU;sv-SE;cs-CZ;ta;tr-TR;uk-UA;vi;zh-Hans;zh-Hant</AppxDefaultResourceQualifiers>
58+
<AppxDefaultResourceQualifiers>Language=en-US;af;ar;bg;ca;da;da-DK;de-DE;el;en-GB;es-ES;es-419;fr-FR;he-IL;hi-IN;hr-HR;hu-HU;id-ID;it-IT;ja-JP;ka;ko-KR;lv-LV;nb-NO;nl-NL;or-IN;pl-PL;pt-BR;pt-PT;ru-RU;sk-SK;sv-SE;cs-CZ;ta;tr-TR;uk-UA;vi;zh-Hans;zh-Hant</AppxDefaultResourceQualifiers>
5959
<UapAppxPackageBuildMode>StoreUpload</UapAppxPackageBuildMode>
6060
<HoursBetweenUpdateChecks>0</HoursBetweenUpdateChecks>
6161
<EntryPointProjectUniqueName>..\Files\Files.csproj</EntryPointProjectUniqueName>

src/Files/Files.csproj

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<AssemblyName>Files</AssemblyName>
1212
<DefaultLanguage>en-US</DefaultLanguage>
1313
<AppxBundleAutoResourcePackageQualifiers>Scale|DXFeatureLevel</AppxBundleAutoResourcePackageQualifiers>
14-
<AppxDefaultResourceQualifiers>Language=en-US;af;ar;ca;da;da-DK;de-DE;el;en-GB;es-ES;es-419;fr-FR;he-IL;hi-IN;hu-HU;id-ID;it-IT;ja-JP;ka;ko-KR;lv-LV;nl-NL;or-IN;pl-PL;pt-BR;pt-PT;ru-RU;sv-SE;cs-CZ;ta;tr-TR;uk-UA;vi;zh-Hans;zh-Hant</AppxDefaultResourceQualifiers>
14+
<AppxDefaultResourceQualifiers>Language=en-US;af;ar;bg;ca;da;da-DK;de-DE;el;en-GB;es-ES;es-419;fr-FR;he-IL;hi-IN;hu-HU;id-ID;it-IT;ja-JP;ka;ko-KR;lv-LV;nb-NO;nl-NL;or-IN;pl-PL;pt-BR;pt-PT;ru-RU;sk-SK;sv-SE;cs-CZ;ta;tr-TR;uk-UA;vi;zh-Hans;zh-Hant</AppxDefaultResourceQualifiers>
1515
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
1616
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.22000.0</TargetPlatformVersion>
1717
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
@@ -190,6 +190,7 @@
190190
<Compile Include="Filesystem\StorageItems\ZipStorageFile.cs" />
191191
<Compile Include="Filesystem\StorageItems\ZipStorageFolder.cs" />
192192
<Compile Include="Helpers\CommonPaths.cs" />
193+
<Compile Include="Helpers\FileExtensionHelpers.cs" />
193194
<Compile Include="Helpers\RegistryToJsonSettingsMerger.cs" />
194195
<Compile Include="Helpers\ResourceHelpers.cs" />
195196
<Compile Include="Helpers\FtpHelpers.cs" />
@@ -1031,25 +1032,6 @@
10311032
<Content Include="Assets\tile-0-300x300.png" />
10321033
<Content Include="Resources\AppCenterKey.txt" />
10331034
<Content Include="Resources\BingMapsKey.txt" />
1034-
<PRIResource Include="Strings\af\Resources.resw" />
1035-
<PRIResource Include="Strings\hr-HR\Resources.resw" />
1036-
<PRIResource Include="Strings\vi\Resources.resw" />
1037-
<PRIResource Include="Strings\ca\Resources.resw" />
1038-
<PRIResource Include="Strings\en-GB\Resources.resw" />
1039-
<PRIResource Include="Strings\el\Resources.resw" />
1040-
<PRIResource Include="Strings\ka\Resources.resw" />
1041-
<PRIResource Include="Strings\id-ID\Resources.resw" />
1042-
<PRIResource Include="Strings\es-419\Resources.resw" />
1043-
<PRIResource Include="Strings\pt-PT\Resources.resw" />
1044-
<XliffResource Include="MultilingualResources\Files.af.xlf" />
1045-
<XliffResource Include="MultilingualResources\Files.ca.xlf" />
1046-
<XliffResource Include="MultilingualResources\Files.el.xlf" />
1047-
<XliffResource Include="MultilingualResources\Files.en-GB.xlf" />
1048-
<XliffResource Include="MultilingualResources\Files.hr-HR.xlf" />
1049-
<XliffResource Include="MultilingualResources\Files.id-ID.xlf" />
1050-
<XliffResource Include="MultilingualResources\Files.es-419.xlf" />
1051-
<XliffResource Include="MultilingualResources\Files.ka.xlf" />
1052-
<XliffResource Include="MultilingualResources\Files.pt-PT.xlf" />
10531035
<Content Include="Assets\WSL\alpine.svg" />
10541036
<Content Include="Assets\WSL\alpinepng.png" />
10551037
<Content Include="Assets\WSL\debian.svg" />
@@ -1063,12 +1045,27 @@
10631045
<Content Include="Assets\WSL\ubuntu.svg" />
10641046
<Content Include="Assets\WSL\ubuntupng.png" />
10651047
<Content Include="Properties\Default.rd.xml" />
1048+
<None Include="MultilingualResources\Files.nb-NO.xlf" />
1049+
<XliffResource Include="MultilingualResources\Files.sk-SK.xlf" />
10661050
<None Include="Resources\PreviewPanePropertiesInformation.json">
10671051
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
10681052
</None>
10691053
<None Include="Resources\PropertiesInformation.json">
10701054
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
10711055
</None>
1056+
<PRIResource Include="Strings\sk-SK\Resources.resw" />
1057+
<PRIResource Include="Strings\bg\Resources.resw" />
1058+
<PRIResource Include="Strings\nb-NO\Resources.resw" />
1059+
<PRIResource Include="Strings\af\Resources.resw" />
1060+
<PRIResource Include="Strings\hr-HR\Resources.resw" />
1061+
<PRIResource Include="Strings\vi\Resources.resw" />
1062+
<PRIResource Include="Strings\ca\Resources.resw" />
1063+
<PRIResource Include="Strings\en-GB\Resources.resw" />
1064+
<PRIResource Include="Strings\el\Resources.resw" />
1065+
<PRIResource Include="Strings\ka\Resources.resw" />
1066+
<PRIResource Include="Strings\id-ID\Resources.resw" />
1067+
<PRIResource Include="Strings\es-419\Resources.resw" />
1068+
<PRIResource Include="Strings\pt-PT\Resources.resw" />
10721069
<PRIResource Include="Strings\lv-LV\Resources.resw" />
10731070
<PRIResource Include="Strings\sv-SE\Resources.resw" />
10741071
<PRIResource Include="Strings\ko-KR\Resources.resw" />
@@ -1575,7 +1572,17 @@
15751572
</AppxManifest>
15761573
</ItemGroup>
15771574
<ItemGroup>
1575+
<XliffResource Include="MultilingualResources\Files.af.xlf" />
1576+
<XliffResource Include="MultilingualResources\Files.ca.xlf" />
1577+
<XliffResource Include="MultilingualResources\Files.el.xlf" />
1578+
<XliffResource Include="MultilingualResources\Files.en-GB.xlf" />
1579+
<XliffResource Include="MultilingualResources\Files.hr-HR.xlf" />
1580+
<XliffResource Include="MultilingualResources\Files.id-ID.xlf" />
1581+
<XliffResource Include="MultilingualResources\Files.es-419.xlf" />
1582+
<XliffResource Include="MultilingualResources\Files.ka.xlf" />
1583+
<XliffResource Include="MultilingualResources\Files.pt-PT.xlf" />
15781584
<XliffResource Include="MultilingualResources\Files.ar.xlf" />
1585+
<XliffResource Include="MultilingualResources\Files.bg.xlf" />
15791586
<XliffResource Include="MultilingualResources\Files.cs-CZ.xlf" />
15801587
<XliffResource Include="MultilingualResources\Files.da-DK.xlf" />
15811588
<XliffResource Include="MultilingualResources\Files.da.xlf" />

src/Files/Filesystem/ListedItem.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,6 @@ public override string ToString()
414414
public bool IsLinkItem => IsShortcutItem && ((ShortcutItem)this).IsUrl;
415415
public bool IsFtpItem => this is FtpItem;
416416
public bool IsZipItem => this is ZipItem;
417-
418417
public virtual bool IsExecutable => new[] { ".exe", ".bat", ".cmd" }.Contains(Path.GetExtension(ItemPath), StringComparer.OrdinalIgnoreCase);
419418
public bool IsPinned => App.SidebarPinnedController.Model.FavoriteItems.Contains(itemPath);
420419

src/Files/Helpers/ContextFlyoutItemHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ public static List<ContextMenuFlyoutItemViewModel> GetBaseLayoutMenuItems(Curren
503503
},
504504
new ContextMenuFlyoutItemViewModel()
505505
{
506-
Text = "OpenInTerminal".GetLocalized(),
506+
Text = "OpenIn".GetLocalized() + " " + App.TerminalController.Model.GetDefaultTerminal().Name,
507507
Glyph = "\uE756",
508508
Command = commandsViewModel.OpenDirectoryInDefaultTerminalCommand,
509509
},
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
using System;
2+
3+
namespace Files.Helpers
4+
{
5+
public static class FileExtensionHelpers
6+
{
7+
/// <summary>
8+
/// Check if the file extension is an image file.
9+
/// </summary>
10+
/// <param name="fileExtensionToCheck">The file extension to check.</param>
11+
/// <returns><c>true</c> if the fileExtensionToCheck is an image;
12+
/// otherwise, <c>false</c>.</returns>
13+
public static bool IsImageFile(string fileExtensionToCheck)
14+
{
15+
if (string.IsNullOrEmpty(fileExtensionToCheck))
16+
{
17+
return false;
18+
}
19+
20+
return fileExtensionToCheck.Equals(".png", StringComparison.OrdinalIgnoreCase) ||
21+
fileExtensionToCheck.Equals(".jpg", StringComparison.OrdinalIgnoreCase) ||
22+
fileExtensionToCheck.Equals(".bmp", StringComparison.OrdinalIgnoreCase) ||
23+
fileExtensionToCheck.Equals(".jpeg", StringComparison.OrdinalIgnoreCase);
24+
}
25+
26+
/// <summary>
27+
/// Check if the file extension is a PowerShell script.
28+
/// </summary>
29+
/// <param name="fileExtensionToCheck">The file extension to check.</param>
30+
/// <returns><c>true</c> if the fileExtensionToCheck is a PowerShell script;
31+
/// otherwise, <c>false</c>.</returns>
32+
public static bool IsPowerShellFile(string fileExtensionToCheck)
33+
{
34+
if (string.IsNullOrEmpty(fileExtensionToCheck))
35+
{
36+
return false;
37+
}
38+
39+
return fileExtensionToCheck.Equals(".ps1", StringComparison.OrdinalIgnoreCase);
40+
}
41+
42+
/// <summary>
43+
/// Check if the file extension is a zip file.
44+
/// </summary>
45+
/// <param name="fileExtensionToCheck">The file extension to check.</param>
46+
/// <returns><c>true</c> if the fileExtensionToCheck is a zip bundle file;
47+
/// otherwise <c>false</c>.</returns>
48+
public static bool IsZipFile(string fileExtensionToCheck)
49+
{
50+
if (string.IsNullOrEmpty(fileExtensionToCheck))
51+
{
52+
return false;
53+
}
54+
55+
return fileExtensionToCheck.Equals(".zip", StringComparison.OrdinalIgnoreCase) ||
56+
fileExtensionToCheck.Equals(".msix", StringComparison.OrdinalIgnoreCase) ||
57+
fileExtensionToCheck.Equals(".msixbundle", StringComparison.OrdinalIgnoreCase);
58+
}
59+
}
60+
}

src/Files/Helpers/JumpListManager.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,16 @@ public async void RemoveFolder(string path)
132132
// In that case app should just catch the error and proceed as usual
133133
try
134134
{
135-
if (instance != null)
135+
if (instance == null)
136136
{
137-
if (JumpListItemPaths.Remove(path))
138-
{
139-
await instance.SaveAsync();
140-
}
137+
return;
138+
}
139+
140+
if (JumpListItemPaths.Remove(path))
141+
{
142+
var itemToRemove = instance.Items.Where(x => x.Arguments == path).Select(x => x).FirstOrDefault();
143+
instance.Items.Remove(itemToRemove);
144+
await instance.SaveAsync();
141145
}
142146
}
143147
catch { }

src/Files/MultilingualResources/Files.af.xlf

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,6 @@
5050
<source>Size</source>
5151
<target state="translated">Grootte</target>
5252
</trans-unit>
53-
<trans-unit id="OpenInTerminal" translate="yes" xml:space="preserve">
54-
<source>Open in Terminal...</source>
55-
<target state="translated">Maak oop in Terminal...</target>
56-
</trans-unit>
5753
<trans-unit id="PropertiesCreated.Text" translate="yes" xml:space="preserve">
5854
<source>Created:</source>
5955
<target state="translated">Geskep:</target>
@@ -3002,19 +2998,15 @@
30022998
</trans-unit>
30032999
<trans-unit id="SettingsPrivacyPolicyMarkdownBlock.Text" translate="yes" xml:space="preserve">
30043000
<source>
3005-
*Personal Information Collection*
3006-
Files does not collect, store, share or publish any personal information.
3007-
3008-
*Non-personal Information Collection*
3009-
3010-
We use App Center to keep track of app usage, find bugs, and fix crashes. All information sent to App Center is anonymous and free of any user or contextual data.
3001+
We use App Center to track which settings are being used, find bugs, and fix crashes. Information sent to App Center is anonymous and free of any user or contextual data.
30113002
</source>
3012-
<target state="translated">*Persoonlike inligting versameling*
3003+
<target state="needs-review-translation">*Persoonlike inligting versameling*
30133004
Files versamel, stoor, deel of publiseer geen persoonlike inligting nie.
30143005

30153006
*Nie-persoonlike inligting versameling*
30163007

30173008
Ons gebruik App Center om tred te hou met programgebruik, foute te vind en ongelukke op te los. Alle inligting wat aan App Center gestuur word, is anoniem en vry van enige gebruiker of kontekstuele data.</target>
3009+
<note from="MultilingualUpdate" annotates="source" priority="2">Please verify the translation’s accuracy as the source string was updated after it was translated.</note>
30183010
</trans-unit>
30193011
<trans-unit id="BaseLayoutContextFlyoutSortByFileTag.Text" translate="yes" xml:space="preserve">
30203012
<source>File tag</source>
@@ -3377,8 +3369,9 @@ Ons gebruik App Center om tred te hou met programgebruik, foute te vind en ongel
33773369
<target state="translated">Derde party lisensies</target>
33783370
</trans-unit>
33793371
<trans-unit id="SettingsSetAsDefaultFileManagerDescription" translate="yes" xml:space="preserve">
3380-
<source>This setting modifies system files and can have unexpected side effects on your device. The developers take no responsibility in the event an issue occurs as a result. Continuing with this option is an acknowledgment of the risks involved with this action. Please note, uninstalling Files will not undo these changes and may prevent you from opening file explorer unless you turn off this setting before removing Files from your device.</source>
3381-
<target state="translated">Hierdie instelling verander stelsellêers en kan onverwagte newe-effekte op jou toestel hê. Die ontwikkelaars neem geen verantwoordelikheid in die geval dat 'n probleem as gevolg daarvan plaasvind nie. Om voort te gaan met hierdie opsie is 'n erkenning van die risiko's wat by hierdie aksie betrokke is. Let asseblief daarop dat die deïnstalleer van Files nie hierdie veranderinge sal ongedaan maak nie en kan verhoed dat jy File Explorer oopmaak, tensy jy hierdie instelling afskakel voordat jy Files van jou toestel verwyder.</target>
3372+
<source>This option modifies the system registry and can have unexpected side effects on your device. Continue at your own risk.</source>
3373+
<target state="needs-review-translation">Hierdie instelling verander stelsellêers en kan onverwagte newe-effekte op jou toestel hê. Die ontwikkelaars neem geen verantwoordelikheid in die geval dat 'n probleem as gevolg daarvan plaasvind nie. Om voort te gaan met hierdie opsie is 'n erkenning van die risiko's wat by hierdie aksie betrokke is. Let asseblief daarop dat die deïnstalleer van Files nie hierdie veranderinge sal ongedaan maak nie en kan verhoed dat jy File Explorer oopmaak, tensy jy hierdie instelling afskakel voordat jy Files van jou toestel verwyder.</target>
3374+
<note from="MultilingualUpdate" annotates="source" priority="2">Please verify the translation’s accuracy as the source string was updated after it was translated.</note>
33823375
</trans-unit>
33833376
<trans-unit id="ItemSizeNotCalculated" translate="yes" xml:space="preserve">
33843377
<source>Not calculated</source>
@@ -3460,6 +3453,50 @@ Ons gebruik App Center om tred te hou met programgebruik, foute te vind en ongel
34603453
<source>Bytes</source>
34613454
<target state="new">Bytes</target>
34623455
</trans-unit>
3456+
<trans-unit id="Extract" translate="yes" xml:space="preserve">
3457+
<source>Extract</source>
3458+
<target state="new">Extract</target>
3459+
</trans-unit>
3460+
<trans-unit id="ExtractFiles" translate="yes" xml:space="preserve">
3461+
<source>Extract files</source>
3462+
<target state="new">Extract files</target>
3463+
</trans-unit>
3464+
<trans-unit id="ExtractHere" translate="yes" xml:space="preserve">
3465+
<source>Extract here</source>
3466+
<target state="new">Extract here</target>
3467+
</trans-unit>
3468+
<trans-unit id="ExtractKeyboardAcceleratorTextOverride" translate="yes" xml:space="preserve">
3469+
<source>Ctrl+E</source>
3470+
<target state="new">Ctrl+E</target>
3471+
</trans-unit>
3472+
<trans-unit id="ExtractToChildFolder" translate="yes" xml:space="preserve">
3473+
<source>Extract to {0}</source>
3474+
<target state="new">Extract to {0}</target>
3475+
</trans-unit>
3476+
<trans-unit id="RunScript" translate="yes" xml:space="preserve">
3477+
<source>Run script</source>
3478+
<target state="new">Run script</target>
3479+
</trans-unit>
3480+
<trans-unit id="RunWithPowerShell" translate="yes" xml:space="preserve">
3481+
<source>Run with PowerShell</source>
3482+
<target state="new">Run with PowerShell</target>
3483+
</trans-unit>
3484+
<trans-unit id="SetAsBackground" translate="yes" xml:space="preserve">
3485+
<source>Set as desktop background</source>
3486+
<target state="new">Set as desktop background</target>
3487+
</trans-unit>
3488+
<trans-unit id="SetFilesAsDefaultWarning" translate="yes" xml:space="preserve">
3489+
<source>Do not remove Files from your device without turning off this option. Not doing so will prevent you from opening File Explorer.</source>
3490+
<target state="new">Do not remove Files from your device without turning off this option. Not doing so will prevent you from opening File Explorer.</target>
3491+
</trans-unit>
3492+
<trans-unit id="ShowFolderSizesWarning" translate="yes" xml:space="preserve">
3493+
<source>Calculating folder sizes is resource intensive and may cause your CPU usage to increase.</source>
3494+
<target state="new">Calculating folder sizes is resource intensive and may cause your CPU usage to increase.</target>
3495+
</trans-unit>
3496+
<trans-unit id="OpenIn" translate="yes" xml:space="preserve">
3497+
<source>Open in</source>
3498+
<target state="new">Open in</target>
3499+
</trans-unit>
34633500
</group>
34643501
</body>
34653502
</file>

0 commit comments

Comments
 (0)