Skip to content

Added an option to hide files starting with '.' #8169

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 29 commits into from
Feb 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
71ae74b
Add option in Preferences
manfromarce Feb 5, 2022
848f1d5
Add english string for the new setting
manfromarce Feb 5, 2022
faee999
Update italian localization
manfromarce Feb 5, 2022
4d9fa7c
Update PreferencesViewModel.cs
manfromarce Feb 5, 2022
7b59e80
Update IPreferencesSettingsService.cs
manfromarce Feb 5, 2022
86195f2
Update PreferencesSettingsService.cs
manfromarce Feb 5, 2022
3b1763e
Update ItemViewModel.cs
manfromarce Feb 5, 2022
c2475fb
Update ItemViewModel.cs
manfromarce Feb 5, 2022
896e2f5
Update Win32StorageEnumerator.cs
manfromarce Feb 5, 2022
d50e34c
Update FolderSearch.cs
manfromarce Feb 5, 2022
2beec04
Update RegistryToJsonSettingsMerger.cs
manfromarce Feb 5, 2022
a024def
Update src/Files/Strings/en-US/Resources.resw
manfromarce Feb 6, 2022
b0e2c69
Update src/Files/Views/SettingsPages/Preferences.xaml
manfromarce Feb 6, 2022
9aa0f84
Update src/Files/Views/SettingsPages/Preferences.xaml
manfromarce Feb 6, 2022
1202e3f
Update src/Files/Views/SettingsPages/Preferences.xaml
manfromarce Feb 6, 2022
89bceb5
Update src/Files/ViewModels/SettingsViewModels/PreferencesViewModel.cs
manfromarce Feb 6, 2022
87acdc0
Update src/Files/ViewModels/ItemViewModel.cs
manfromarce Feb 6, 2022
7aff8f8
Update src/Files/Services/Implementation/PreferencesSettingsService.cs
manfromarce Feb 6, 2022
0997732
Update src/Files/Services/Implementation/PreferencesSettingsService.cs
manfromarce Feb 6, 2022
4409b34
Update src/Files/Services/Implementation/PreferencesSettingsService.cs
manfromarce Feb 6, 2022
eb2d168
Update src/Files/Helpers/RegistryToJsonSettingsMerger.cs
manfromarce Feb 6, 2022
1ec0f9a
Update src/Files/Services/IPreferencesSettingsService.cs
manfromarce Feb 6, 2022
558d576
Update FolderSearch.cs
manfromarce Feb 6, 2022
d7552c8
Update Win32StorageEnumerator.cs
manfromarce Feb 6, 2022
cc95a9a
Update ItemViewModel.cs
manfromarce Feb 6, 2022
94cea9b
Icon should be consistent with the new caption
manfromarce Feb 6, 2022
25f1e3a
Update Files.it-IT.xlf
manfromarce Feb 6, 2022
361344e
Update Files.es-ES.xlf
manfromarce Feb 6, 2022
6af8329
Update Preferences.xaml
yaira2 Feb 6, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions src/Files/Filesystem/Search/FolderSearch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,13 @@ private async Task SearchTagsAsync(string folder, IList<ListedItem> results, Can
{
var isSystem = ((FileAttributes)findData.dwFileAttributes & FileAttributes.System) == FileAttributes.System;
var isHidden = ((FileAttributes)findData.dwFileAttributes & FileAttributes.Hidden) == FileAttributes.Hidden;

bool shouldBeListed = !isHidden || (UserSettingsService.PreferencesSettingsService.AreHiddenItemsVisible && (!isSystem || !UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden));

var startWithDot = findData.cFileName.StartsWith(".");

bool shouldBeListed = (!isHidden ||
(UserSettingsService.PreferencesSettingsService.AreHiddenItemsVisible &&
(!isSystem || !UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden))) &&
(!startWithDot || UserSettingsService.PreferencesSettingsService.ShowDotFiles);

if (shouldBeListed)
{
var item = GetListedItemAsync(match.FilePath, findData);
Expand Down Expand Up @@ -297,10 +301,13 @@ await Task.Run(() =>

var isSystem = ((FileAttributes)findData.dwFileAttributes & FileAttributes.System) == FileAttributes.System;
var isHidden = ((FileAttributes)findData.dwFileAttributes & FileAttributes.Hidden) == FileAttributes.Hidden;
bool shouldBeListed = hiddenOnly ?
isHidden && (!isSystem || !UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden) :
!isHidden || (UserSettingsService.PreferencesSettingsService.AreHiddenItemsVisible && (!isSystem || !UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden));
var startWithDot = findData.cFileName.StartsWith(".");

bool shouldBeListed = (hiddenOnly ?
isHidden && (!isSystem || !UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden) :
!isHidden || (UserSettingsService.PreferencesSettingsService.AreHiddenItemsVisible && (!isSystem || !UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden))) &&
(!startWithDot || UserSettingsService.PreferencesSettingsService.ShowDotFiles);

if (shouldBeListed)
{
var item = GetListedItemAsync(itemPath, findData);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,11 @@ public static async Task<List<ListedItem>> ListEntries(
{
var isSystem = ((FileAttributes)findData.dwFileAttributes & FileAttributes.System) == FileAttributes.System;
var isHidden = ((FileAttributes)findData.dwFileAttributes & FileAttributes.Hidden) == FileAttributes.Hidden;
if (!isHidden || (userSettingsService.PreferencesSettingsService.AreHiddenItemsVisible && (!isSystem || !userSettingsService.PreferencesSettingsService.AreSystemItemsHidden)))
var startWithDot = findData.cFileName.StartsWith(".");
if ((!isHidden ||
(userSettingsService.PreferencesSettingsService.AreHiddenItemsVisible &&
(!isSystem || !userSettingsService.PreferencesSettingsService.AreSystemItemsHidden))) &&
(!startWithDot || userSettingsService.PreferencesSettingsService.ShowDotFiles))
{
if (((FileAttributes)findData.dwFileAttributes & FileAttributes.Directory) != FileAttributes.Directory)
{
Expand Down
1 change: 1 addition & 0 deletions src/Files/Helpers/RegistryToJsonSettingsMerger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public static void MergeSettings()
userSettingsService.PreferencesSettingsService.ShowFileExtensions = appSettings.Get(true, "ShowFileExtensions");
userSettingsService.PreferencesSettingsService.AreHiddenItemsVisible = appSettings.Get(false, "AreHiddenItemsVisible");
userSettingsService.PreferencesSettingsService.AreSystemItemsHidden = appSettings.Get(true, "AreSystemItemsHidden");
userSettingsService.PreferencesSettingsService.ShowDotFiles = appSettings.Get(false, "ShowDotFiles");
userSettingsService.PreferencesSettingsService.ListAndSortDirectoriesAlongsideFiles = appSettings.Get(false, "ListAndSortDirectoriesAlongsideFiles");
userSettingsService.PreferencesSettingsService.OpenFilesWithOneClick = appSettings.Get(false, "OpenItemsWithOneClick");
userSettingsService.PreferencesSettingsService.OpenFoldersWithOneClick = appSettings.Get(false, "OpenItemsWithOneClick");
Expand Down
8 changes: 6 additions & 2 deletions src/Files/MultilingualResources/Files.es-ES.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -2778,11 +2778,15 @@
<trans-unit id="SettingsFilesAndFoldersShowHiddenItems" translate="yes" xml:space="preserve">
<source>Show hidden files and folders</source>
<target state="translated">Mostrar archivos y carpetas ocultos</target>
</trans-unit>
</trans-unit>
<trans-unit id="SettingsFilesAndFoldersHideSystemItems" translate="yes" xml:space="preserve">
<source>Hide protected operating system files (Recommended)</source>
<target state="translated">Ocultar archivos protegidos del sistema operativo (recomendado)</target>
</trans-unit>
<trans-unit id="ShowDotFiles" translate="yes" xml:space="preserve">
<source>Show dot files</source>
<target state="translated">Mostrar archivos que comienzan con un punto</target>
</trans-unit>
<trans-unit id="SettingsOpenFilesWithOneClick" translate="yes" xml:space="preserve">
<source>Open files with a single click</source>
<target state="needs-review-translation">Abrir elementos con un solo clic</target>
Expand Down Expand Up @@ -3522,4 +3526,4 @@ Utilizamos App Center para hacer un seguimiento del uso de la aplicación, encon
</group>
</body>
</file>
</xliff>
</xliff>
4 changes: 4 additions & 0 deletions src/Files/MultilingualResources/Files.it-IT.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -2783,6 +2783,10 @@
<source>Hide protected operating system files (Recommended)</source>
<target state="translated">Nascondi file protetti e di sistema (Raccomandato)</target>
</trans-unit>
<trans-unit id="ShowDotFiles" translate="yes" xml:space="preserve">
<source>Show dot files</source>
<target state="translated">Mostra file e cartelle che iniziano con un punto</target>
</trans-unit>
<trans-unit id="SettingsOpenFilesWithOneClick" translate="yes" xml:space="preserve">
<source>Open files with a single click</source>
<target state="translated">Apri i file con un solo click</target>
Expand Down
7 changes: 6 additions & 1 deletion src/Files/Services/IPreferencesSettingsService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,12 @@ public interface IPreferencesSettingsService : IBaseSettingsService, INotifyProp
/// Gets or sets a value indicating whether or not system items should be visible.
/// </summary>
bool AreSystemItemsHidden { get; set; }


/// <summary>
/// Gets or sets a value indicating whether or not to display dot files.
/// </summary>
bool ShowDotFiles{ get; set; }

/// <summary>
/// Gets or sets a value indicating whether or not files should be sorted together with folders.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ public bool AreSystemItemsHidden
get => Get(true);
set => Set(value);
}

public bool ShowDotFiles
{
get => Get(false);
set => Set(value);
}

public bool ListAndSortDirectoriesAlongsideFiles
{
Expand Down Expand Up @@ -141,6 +147,7 @@ public override void RaiseOnSettingChangedEvent(object sender, EventArguments.Se
case nameof(ShowFileExtensions):
case nameof(AreHiddenItemsVisible):
case nameof(AreSystemItemsHidden):
case nameof(ShowDotFiles):
case nameof(ListAndSortDirectoriesAlongsideFiles):
case nameof(OpenFilesWithOneClick):
case nameof(OpenFoldersWithOneClick):
Expand All @@ -167,6 +174,7 @@ public void ReportToAppCenter()
Analytics.TrackEvent($"{nameof(ShowFileExtensions)}, {ShowFileExtensions}");
Analytics.TrackEvent($"{nameof(AreHiddenItemsVisible)}, {AreHiddenItemsVisible}");
Analytics.TrackEvent($"{nameof(AreSystemItemsHidden)}, {AreSystemItemsHidden}");
Analytics.TrackEvent($"{nameof(ShowDotFiles)}, {ShowDotFiles}");
Analytics.TrackEvent($"{nameof(ListAndSortDirectoriesAlongsideFiles)}, {ListAndSortDirectoriesAlongsideFiles}");
Analytics.TrackEvent($"{nameof(OpenFilesWithOneClick)}, {OpenFilesWithOneClick}");
Analytics.TrackEvent($"{nameof(OpenFoldersWithOneClick)}, {OpenFoldersWithOneClick}");
Expand Down
5 changes: 4 additions & 1 deletion src/Files/Strings/en-US/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,9 @@
<data name="SettingsFilesAndFoldersShowHiddenItems" xml:space="preserve">
<value>Show hidden files and folders</value>
</data>
<data name="ShowDotFiles" xml:space="preserve">
<value>Show dot files</value>
</data>
<data name="SettingsExperimentalTitle.Text" xml:space="preserve">
<value>Experimental</value>
</data>
Expand Down Expand Up @@ -2744,4 +2747,4 @@ We use App Center to track which settings are being used, find bugs, and fix cra
<data name="UpdateFiles" xml:space="preserve">
<value>Update Files</value>
</data>
</root>
</root>
7 changes: 6 additions & 1 deletion src/Files/ViewModels/ItemViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@ private async void UserSettingsService_OnSettingChangedEvent(object sender, Sett
case nameof(UserSettingsService.PreferencesSettingsService.ShowFileExtensions):
case nameof(UserSettingsService.PreferencesSettingsService.AreHiddenItemsVisible):
case nameof(UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden):
case nameof(UserSettingsService.PreferencesSettingsService.ShowDotFiles):
case nameof(UserSettingsService.PreferencesSettingsService.AreFileTagsEnabled):
case nameof(UserSettingsService.PreferencesSettingsService.ShowFolderSize):
await CoreApplication.MainView.DispatcherQueue.EnqueueAsync(() =>
Expand Down Expand Up @@ -2121,7 +2122,11 @@ private async Task<ListedItem> AddFileOrFolderAsync(string fileOrFolderPath, str

var isSystem = ((FileAttributes)findData.dwFileAttributes & FileAttributes.System) == FileAttributes.System;
var isHidden = ((FileAttributes)findData.dwFileAttributes & FileAttributes.Hidden) == FileAttributes.Hidden;
if (isHidden && (!UserSettingsService.PreferencesSettingsService.AreHiddenItemsVisible || (isSystem && UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden)))
var startWithDot = findData.cFileName.StartsWith(".");
if ((isHidden &&
(!UserSettingsService.PreferencesSettingsService.AreHiddenItemsVisible ||
(isSystem && UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden))) ||
(startWithDot && !UserSettingsService.PreferencesSettingsService.ShowDotFiles))
{
// Do not add to file list if hidden/system attribute is set and system/hidden file are not to be shown
return null;
Expand Down
15 changes: 14 additions & 1 deletion src/Files/ViewModels/SettingsViewModels/PreferencesViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,19 @@ public bool AreSystemItemsHidden
}
}
}

public bool ShowDotFiles
{
get => UserSettingsService.PreferencesSettingsService.ShowDotFiles;
set
{
if (value != UserSettingsService.PreferencesSettingsService.ShowDotFiles)
{
UserSettingsService.PreferencesSettingsService.ShowDotFiles = value;
OnPropertyChanged();
}
}
}

public bool ShowFileExtensions
{
Expand Down Expand Up @@ -622,4 +635,4 @@ public void Dispose()
Dispose();
}
}
}
}
14 changes: 12 additions & 2 deletions src/Files/Views/SettingsPages/Preferences.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,17 @@
IsOn="{Binding AreHiddenItemsVisible, Mode=TwoWay}"
Style="{StaticResource RightAlignedToggleSwitchStyle}" />
</local:SettingsBlockControl>


<local:SettingsBlockControl Title="{helpers:ResourceString Name=ShowDotFiles}" HorizontalAlignment="Stretch">
<local:SettingsBlockControl.Icon>
<FontIcon Glyph="&#xE7B3;" />
</local:SettingsBlockControl.Icon>
<ToggleSwitch
AutomationProperties.Name="{helpers:ResourceString Name=ShowDotFiles}"
IsOn="{Binding ShowDotFiles, Mode=TwoWay}"
Style="{StaticResource RightAlignedToggleSwitchStyle}" />
</local:SettingsBlockControl>

<local:SettingsBlockControl Title="{helpers:ResourceString Name=SettingsFilesAndFoldersHideSystemItems}" HorizontalAlignment="Stretch">
<local:SettingsBlockControl.Icon>
<FontIcon contract13NotPresent:Glyph="&#xE72E;" contract13Present:Glyph="&#xED1A;" />
Expand Down Expand Up @@ -346,4 +356,4 @@
VerticalAlignment="Bottom"
ShowDialog="{Binding ShowRestartControl, Mode=TwoWay}" />
</Grid>
</Page>
</Page>