Skip to content

Commit c158835

Browse files
committed
Started under the hood work for navigation to parent directories
1 parent 09f6ad0 commit c158835

File tree

7 files changed

+300
-19
lines changed

7 files changed

+300
-19
lines changed

Files UWP/GenericFileBrowser.xaml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@
267267
</MenuFlyoutItem.Icon>
268268

269269
</MenuFlyoutItem>
270-
270+
271271
<MenuFlyoutItem Text="Properties" Name="PropertiesItem">
272272
<MenuFlyoutItem.Icon>
273273
<FontIcon Glyph="&#xE946;"/>
@@ -310,6 +310,25 @@
310310
</controls:DataGrid.Columns>
311311
</controls:DataGrid>
312312

313-
313+
<Grid x:Name="DeleteProgressDialog" Visibility="Collapsed" Canvas.ZIndex="5" Width="500" Height="250" HorizontalAlignment="Center" VerticalAlignment="Center">
314+
<controls:DropShadowPanel HorizontalContentAlignment="Stretch">
315+
<Grid Padding="14" CornerRadius="4" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
316+
<Grid.RowDefinitions>
317+
<RowDefinition Height="*"/>
318+
<RowDefinition Height="Auto"/>
319+
</Grid.RowDefinitions>
320+
<StackPanel Spacing="14" Orientation="Vertical" Grid.RowSpan="1">
321+
<TextBlock Name="title" FontSize="22" FontWeight="Bold" FontFamily="Segoe UI"/>
322+
<Grid>
323+
<StackPanel Spacing="10" Orientation="Vertical">
324+
<TextBlock Name="deleteInfoCurrentText" FontSize="14"/>
325+
<ProgressBar x:Name="deleteInfoCurrentIndicator" Height="8"/>
326+
</StackPanel>
327+
</Grid>
328+
</StackPanel>
329+
<Button CornerRadius="2" Content="Hide" HorizontalAlignment="Right" VerticalAlignment="Stretch" Grid.Row="1" Width="200" Click="Button_Click"/>
330+
</Grid>
331+
</controls:DropShadowPanel>
332+
</Grid>
314333
</Grid>
315334
</Page>

Files UWP/GenericFileBrowser.xaml.cs

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
using Files.Interacts;
1212
using System.Diagnostics;
1313
using Windows.UI.Core;
14+
using System.Text.RegularExpressions;
15+
using System.IO;
1416

1517
namespace Files
1618
{
@@ -32,6 +34,10 @@ public sealed partial class GenericFileBrowser : Page
3234
public ProgressBar progressBar;
3335
public ItemViewModel<GenericFileBrowser> instanceViewModel;
3436
public Interaction<GenericFileBrowser> instanceInteraction;
37+
public Grid deleteProgressBox;
38+
public ProgressBar deleteProgressBoxIndicator;
39+
public TextBlock deleteProgressBoxTitle;
40+
public TextBlock deleteProgressBoxTextInfo;
3541
public EmptyFolderTextState TextState { get; set; } = new EmptyFolderTextState();
3642

3743
public GenericFileBrowser()
@@ -47,7 +53,10 @@ public GenericFileBrowser()
4753
grid = RootGrid;
4854
Clipboard.ContentChanged += Clipboard_ContentChanged;
4955
RefreshEmptySpace.Click += NavigationActions.Refresh_Click;
50-
56+
deleteProgressBox = DeleteProgressDialog;
57+
deleteProgressBoxIndicator = deleteInfoCurrentIndicator;
58+
deleteProgressBoxTitle = title;
59+
deleteProgressBoxTextInfo = deleteInfoCurrentText;
5160
}
5261

5362
private void SelectAllAcceleratorDG_Invoked(Windows.UI.Xaml.Input.KeyboardAccelerator sender, Windows.UI.Xaml.Input.KeyboardAcceleratorInvokedEventArgs args)
@@ -104,11 +113,21 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
104113
CurrentInstance.BackButton.IsEnabled = CurrentInstance.accessibleContentFrame.CanGoBack;
105114
CurrentInstance.ForwardButton.IsEnabled = CurrentInstance.accessibleContentFrame.CanGoForward;
106115
CurrentInstance.RefreshButton.IsEnabled = true;
116+
var parameters = (string)eventArgs.Parameter;
117+
instanceViewModel.Universal.path = parameters;
118+
119+
if (instanceViewModel.Universal.path == Path.GetPathRoot(instanceViewModel.Universal.path))
120+
{
121+
CurrentInstance.UpButton.IsEnabled = false;
122+
}
123+
else
124+
{
125+
CurrentInstance.UpButton.IsEnabled = true;
126+
}
127+
107128
Clipboard_ContentChanged(null, null);
108129
CurrentInstance.AlwaysPresentCommands.isEnabled = true;
109-
var parameters = (string)eventArgs.Parameter;
110130
instanceViewModel.CancelLoadAndClearFiles();
111-
instanceViewModel.Universal.path = parameters;
112131
CurrentInstance.AddItemButton.Click += AddItem_Click;
113132

114133
TextState.isVisible = Visibility.Collapsed;
@@ -144,7 +163,15 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
144163
}
145164
else
146165
{
147-
CurrentInstance.PathText.Text = parameters;
166+
if(parameters.Equals(@"C:\") || parameters.Equals(@"c:\"))
167+
{
168+
CurrentInstance.PathText.Text = @"Local Disk (C:\)";
169+
}
170+
else
171+
{
172+
CurrentInstance.PathText.Text = parameters;
173+
174+
}
148175
}
149176

150177
// Reset DataGrid Rows that may be in "cut" command mode
@@ -296,6 +323,11 @@ private void RightClickContextMenu_Opened(object sender, object e)
296323
SidebarPinItem.IsEnabled = true;
297324
}
298325
}
326+
327+
private void Button_Click(object sender, RoutedEventArgs e)
328+
{
329+
DeleteProgressDialog.Visibility = Visibility.Collapsed;
330+
}
299331
}
300332

301333
public class EmptyFolderTextState : INotifyPropertyChanged

Files UWP/Interacts/Interaction.cs

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -656,23 +656,52 @@ public async void DeleteItem_Click(object sender, RoutedEventArgs e)
656656
{
657657
selectedItems.Add(selectedItem);
658658
}
659+
660+
(CurrentInstance.accessibleContentFrame.Content as GenericFileBrowser).deleteProgressBoxIndicator.Maximum = selectedItems.Count;
661+
(CurrentInstance.accessibleContentFrame.Content as GenericFileBrowser).deleteProgressBoxIndicator.Value = 0;
662+
(CurrentInstance.accessibleContentFrame.Content as GenericFileBrowser).deleteProgressBoxTitle.Text = "Moving " + selectedItems.Count + " items to the Recycle Bin";
663+
664+
(CurrentInstance.accessibleContentFrame.Content as GenericFileBrowser).deleteProgressBox.Visibility = Visibility.Collapsed;
665+
(CurrentInstance.accessibleContentFrame.Content as GenericFileBrowser).deleteProgressBoxTextInfo.Text = "Removing item (0/" + selectedItems.Count + ")";
659666
foreach (ListedItem storItem in selectedItems)
660667
{
661-
if (storItem.FileType != "Folder")
668+
(CurrentInstance.accessibleContentFrame.Content as GenericFileBrowser).deleteProgressBoxTextInfo.Text = "Removing item (" + ((CurrentInstance.accessibleContentFrame.Content as GenericFileBrowser).deleteProgressBoxIndicator.Value + 1) + "/" + selectedItems.Count + ")";
669+
try
662670
{
663-
var item = await StorageFile.GetFileFromPathAsync(storItem.FilePath);
664-
await item.DeleteAsync(StorageDeleteOption.Default);
671+
if (storItem.FileType != "Folder")
672+
{
673+
var item = await StorageFile.GetFileFromPathAsync(storItem.FilePath);
674+
await item.DeleteAsync(StorageDeleteOption.Default);
665675

676+
}
677+
else
678+
{
679+
var item = await StorageFolder.GetFolderFromPathAsync(storItem.FilePath);
680+
await item.DeleteAsync(StorageDeleteOption.Default);
681+
682+
}
666683
}
667-
else
684+
catch (FileLoadException)
668685
{
669-
var item = await StorageFolder.GetFolderFromPathAsync(storItem.FilePath);
670-
await item.DeleteAsync(StorageDeleteOption.Default);
686+
// try again
687+
if (storItem.FileType != "Folder")
688+
{
689+
var item = await StorageFile.GetFileFromPathAsync(storItem.FilePath);
690+
await item.DeleteAsync(StorageDeleteOption.Default);
691+
692+
}
693+
else
694+
{
695+
var item = await StorageFolder.GetFolderFromPathAsync(storItem.FilePath);
696+
await item.DeleteAsync(StorageDeleteOption.Default);
671697

698+
}
672699
}
700+
673701
(type as GenericFileBrowser).instanceViewModel.RemoveFileOrFolder(storItem);
702+
(CurrentInstance.accessibleContentFrame.Content as GenericFileBrowser).deleteProgressBoxIndicator.Value++;
674703
}
675-
Debug.WriteLine("Ended for loop");
704+
(CurrentInstance.accessibleContentFrame.Content as GenericFileBrowser).deleteProgressBox.Visibility = Visibility.Collapsed;
676705
CurrentInstance.FS.isEnabled = false;
677706
}
678707
else if (typeof(PageType) == typeof(PhotoAlbum))

Files UWP/PhotoAlbum.xaml.cs

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
using System.Windows.Input;
2323
using Microsoft.Xaml.Interactions.Core;
2424
using Microsoft.Xaml.Interactivity;
25+
using System.Text.RegularExpressions;
2526

2627
namespace Files
2728
{
@@ -64,9 +65,20 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
6465
CurrentInstance.BackButton.IsEnabled = CurrentInstance.accessibleContentFrame.CanGoBack;
6566
CurrentInstance.ForwardButton.IsEnabled = CurrentInstance.accessibleContentFrame.CanGoForward;
6667
CurrentInstance.RefreshButton.IsEnabled = true;
68+
var parameters = eventArgs.Parameter.ToString();
69+
instanceViewModel.Universal.path = parameters;
70+
71+
if (instanceViewModel.Universal.path == Path.GetPathRoot(instanceViewModel.Universal.path))
72+
{
73+
CurrentInstance.UpButton.IsEnabled = false;
74+
}
75+
else
76+
{
77+
CurrentInstance.UpButton.IsEnabled = true;
78+
}
79+
6780
ItemViewModel<PhotoAlbum>.GetCurrentSelectedTabInstance<ProHome>().AlwaysPresentCommands.isEnabled = true;
6881
SidebarPinItem.Click += instanceInteraction.PinItem_Click;
69-
var parameters = eventArgs.Parameter.ToString();
7082

7183
TextState.isVisible = Visibility.Collapsed;
7284

@@ -103,7 +115,16 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
103115
}
104116
else
105117
{
106-
CurrentInstance.PathText.Text = parameters;
118+
if (parameters.Equals(@"C:\") || parameters.Equals(@"c:\"))
119+
{
120+
CurrentInstance.PathText.Text = @"Local Disk (C:\)";
121+
}
122+
else
123+
{
124+
CurrentInstance.PathText.Text = parameters;
125+
126+
}
127+
107128
}
108129

109130
if (Clipboard.GetContent().Contains(StandardDataFormats.StorageItems))

Files UWP/ProHome.xaml

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,29 @@
450450
</Page.Resources>
451451

452452
<Grid Padding="0,0,0,0">
453+
<VisualStateManager.VisualStateGroups>
454+
<VisualStateGroup>
455+
<!--VisualState to be triggered when window width is between 0 - 1080 effective pixels.-->
456+
<VisualState>
457+
<VisualState.StateTriggers>
458+
<AdaptiveTrigger MinWindowWidth="0" />
459+
</VisualState.StateTriggers>
460+
<VisualState.Setters>
461+
<Setter Target="SearchReigon.Visibility" Value="Collapsed" />
462+
</VisualState.Setters>
463+
</VisualState>
464+
<!--VisualState to be triggered when window width is >=800 effective pixels.-->
465+
<VisualState>
466+
<VisualState.StateTriggers>
467+
<AdaptiveTrigger MinWindowWidth="800" />
468+
</VisualState.StateTriggers>
469+
<VisualState.Setters>
470+
<Setter Target="SearchReigon.Visibility" Value="Visible" />
471+
</VisualState.Setters>
472+
</VisualState>
473+
</VisualStateGroup>
474+
</VisualStateManager.VisualStateGroups>
475+
453476
<Grid.RowDefinitions>
454477
<RowDefinition Height="Auto"/>
455478
<RowDefinition Height="*"/>
@@ -607,7 +630,7 @@
607630
<Grid.ColumnDefinitions>
608631
<ColumnDefinition Width="Auto"/>
609632
<ColumnDefinition Width="*"/>
610-
<ColumnDefinition Width="Auto"/>
633+
<ColumnDefinition MinWidth="24" Width="Auto"/>
611634
</Grid.ColumnDefinitions>
612635
<StackPanel Grid.Column="0" Orientation="Horizontal">
613636
<AppBarButton Icon="Back" LabelPosition="Collapsed" x:Name="Back">
@@ -623,6 +646,12 @@
623646
<KeyboardAccelerator Key="XButton2"/>
624647
</AppBarButton.KeyboardAccelerators>
625648
</AppBarButton>
649+
650+
<AppBarButton Visibility="Collapsed" Icon="Up" LabelPosition="Collapsed" x:Name="Up">
651+
<AppBarButton.KeyboardAccelerators>
652+
<KeyboardAccelerator Modifiers="Menu" Key="Up"/>
653+
</AppBarButton.KeyboardAccelerators>
654+
</AppBarButton>
626655

627656
<AppBarButton LabelPosition="Collapsed" Label="Refresh" x:Name="Refresh" >
628657
<AppBarButton.ContentTemplate>
@@ -639,7 +668,7 @@
639668

640669
</TextBox>
641670

642-
<StackPanel Margin="0,5,5,5" Grid.Column="2" Orientation="Horizontal">
671+
<StackPanel x:Name="SearchReigon" Margin="0,5,5,5" Grid.Column="2" Orientation="Horizontal">
643672
<TextBox BorderBrush="DarkGray" Name="SearchBox" Style="{StaticResource TextBoxStyleForPathBar}" Padding="5" Windows10version1809:CornerRadius="2,0,0,2" BorderThickness="1" VerticalAlignment="Stretch" PlaceholderText="Search" Width="260">
644673
<TextBox.KeyboardAccelerators>
645674
<KeyboardAccelerator Invoked="KeyboardAccelerator_Invoked" Modifiers="Control" Key="F"/>
@@ -751,7 +780,7 @@
751780
</ScrollViewer>
752781
</SplitView.Pane>
753782

754-
<Frame Navigating="ItemDisplayFrame_Navigating" Background="{StaticResource ApplicationPageBackgroundThemeBrush}" Name="ItemDisplayFrame"/>
783+
<Frame Navigated="ItemDisplayFrame_Navigated" Navigating="ItemDisplayFrame_Navigating" Background="{StaticResource ApplicationPageBackgroundThemeBrush}" Name="ItemDisplayFrame"/>
755784

756785
</SplitView>
757786
<ContentDialog Windows10version1809:CornerRadius="4" Grid.RowSpan="4" DefaultButton="Primary" PrimaryButtonClick="PermissionDialog_PrimaryButtonClick" PrimaryButtonText="Grant Permission" Name="PermissionDialog" Title="Welcome to Files UWP">

0 commit comments

Comments
 (0)