Skip to content

Commit 587c9e4

Browse files
committed
Add new file/folder buttons in right-click context menu
Also refactors the create file/folder functionality in AddItem.xaml to its own function.
1 parent f977363 commit 587c9e4

File tree

4 files changed

+56
-11
lines changed

4 files changed

+56
-11
lines changed

Files UWP/AddItem.xaml.cs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,16 @@ public T GetCurrentSelectedTabInstance<T>()
5454
}
5555
return default;
5656
}
57-
private async void ListView_ItemClick(object sender, ItemClickEventArgs e)
57+
58+
private void ListView_ItemClick(object sender, ItemClickEventArgs e)
5859
{
5960
var TabInstance = App.selectedTabInstance;
6061
TabInstance.addItemDialog.Hide();
62+
CreateFile(TabInstance, (e.ClickedItem as AddListItem).Header);
63+
}
64+
65+
public static async void CreateFile(ProHome TabInstance, String fileType)
66+
{
6167
string currentPath = null;
6268
if (TabInstance.accessibleContentFrame.SourcePageType == typeof(GenericFileBrowser))
6369
{
@@ -69,25 +75,25 @@ private async void ListView_ItemClick(object sender, ItemClickEventArgs e)
6975
}
7076
StorageFolder folderToCreateItem = await StorageFolder.GetFolderFromPathAsync(currentPath);
7177
RenameDialog renameDialog = new RenameDialog();
72-
if ((e.ClickedItem as AddListItem).Header == "Folder")
78+
79+
await renameDialog.ShowAsync();
80+
var userInput = renameDialog.storedRenameInput;
81+
82+
if (fileType == "Folder")
7383
{
74-
await renameDialog.ShowAsync();
75-
var userInput = renameDialog.storedRenameInput;
7684
if (userInput != "")
7785
{
7886
var folder = await folderToCreateItem.CreateFolderAsync(userInput, CreationCollisionOption.FailIfExists);
79-
TabInstance.instanceViewModel.AddFileOrFolder(new ListedItem(folder.FolderRelativeId){ FileName = userInput, FileDateReal = DateTimeOffset.Now, EmptyImgVis = Visibility.Collapsed, FolderImg = Visibility.Visible, FileIconVis = Visibility.Collapsed, FileType = "Folder", FileImg = null, FilePath = (TabInstance.instanceViewModel.Universal.path + "\\" + userInput) });
87+
TabInstance.instanceViewModel.AddFileOrFolder(new ListedItem(folder.FolderRelativeId) { FileName = userInput, FileDateReal = DateTimeOffset.Now, EmptyImgVis = Visibility.Collapsed, FolderImg = Visibility.Visible, FileIconVis = Visibility.Collapsed, FileType = "Folder", FileImg = null, FilePath = (TabInstance.instanceViewModel.Universal.path + "\\" + userInput) });
8088
}
8189
else
8290
{
8391
var folder = await folderToCreateItem.CreateFolderAsync("New Folder", CreationCollisionOption.GenerateUniqueName);
8492
TabInstance.instanceViewModel.AddFileOrFolder(new ListedItem(folder.FolderRelativeId) { FileName = userInput, FileDateReal = DateTimeOffset.Now, EmptyImgVis = Visibility.Collapsed, FolderImg = Visibility.Visible, FileIconVis = Visibility.Collapsed, FileType = "Folder", FileImg = null, FilePath = (TabInstance.instanceViewModel.Universal.path + "\\" + userInput) });
8593
}
8694
}
87-
else if ((e.ClickedItem as AddListItem).Header == "Text Document")
95+
else if (fileType == "Text Document")
8896
{
89-
await renameDialog.ShowAsync();
90-
var userInput = renameDialog.storedRenameInput;
9197
if (userInput != "")
9298
{
9399
var folder = await folderToCreateItem.CreateFileAsync(userInput + ".txt", CreationCollisionOption.FailIfExists);
@@ -99,10 +105,8 @@ private async void ListView_ItemClick(object sender, ItemClickEventArgs e)
99105
TabInstance.instanceViewModel.AddFileOrFolder(new ListedItem(folder.FolderRelativeId) { FileName = userInput, FileDateReal = DateTimeOffset.Now, EmptyImgVis = Visibility.Visible, FolderImg = Visibility.Collapsed, FileIconVis = Visibility.Collapsed, FileType = "Text Document", FileImg = null, FilePath = (TabInstance.instanceViewModel.Universal.path + "\\" + userInput + ".txt"), DotFileExtension = ".txt" });
100106
}
101107
}
102-
else if ((e.ClickedItem as AddListItem).Header == "Bitmap Image")
108+
else if (fileType == "Bitmap Image")
103109
{
104-
await renameDialog.ShowAsync();
105-
var userInput = renameDialog.storedRenameInput;
106110
if (userInput != "")
107111
{
108112
var folder = await folderToCreateItem.CreateFileAsync(userInput + ".bmp", CreationCollisionOption.FailIfExists);

Files UWP/GenericFileBrowser.xaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,11 +167,34 @@
167167
<KeyboardAccelerator Modifiers="Control" Key="V"/>
168168
</MenuFlyoutItem.KeyboardAccelerators>
169169
</MenuFlyoutItem>
170+
<MenuFlyoutSeparator/>
170171
<MenuFlyoutItem x:Name="OpenTerminal" IsEnabled="True" Text="Open in Terminal...">
171172
<MenuFlyoutItem.Icon>
172173
<FontIcon Glyph="&#xE756;"/>
173174
</MenuFlyoutItem.Icon>
174175
</MenuFlyoutItem>
176+
<MenuFlyoutSeparator/>
177+
<MenuFlyoutSubItem Text="New" x:Name="NewEmptySpace">
178+
<MenuFlyoutSubItem.Icon>
179+
<FontIcon Glyph="&#xE710;"/>
180+
</MenuFlyoutSubItem.Icon>
181+
<MenuFlyoutItem Text="Folder" x:Name="NewFolder">
182+
<MenuFlyoutItem.Icon>
183+
<FontIcon Glyph="&#xE8B7;"/>
184+
</MenuFlyoutItem.Icon>
185+
</MenuFlyoutItem>
186+
<MenuFlyoutSeparator/>
187+
<MenuFlyoutItem Text="Bitmap Image" x:Name="NewBitmapImage">
188+
<MenuFlyoutItem.Icon>
189+
<FontIcon Glyph="&#xEB9F;"/>
190+
</MenuFlyoutItem.Icon>
191+
</MenuFlyoutItem>
192+
<MenuFlyoutItem Text="Text Document" x:Name="NewTextDocument">
193+
<MenuFlyoutItem.Icon>
194+
<FontIcon Glyph="&#xE8A5;"/>
195+
</MenuFlyoutItem.Icon>
196+
</MenuFlyoutItem>
197+
</MenuFlyoutSubItem>
175198
</MenuFlyout>
176199
</Grid.ContextFlyout>
177200
<ProgressBar x:Name="progBar" Height="10" VerticalAlignment="Top" IsIndeterminate="True"/>

Files UWP/GenericFileBrowser.xaml.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ public GenericFileBrowser()
7272
AllView.RightTapped += tabInstance.instanceInteraction.AllView_RightTapped;
7373
AllView.DoubleTapped += tabInstance.instanceInteraction.List_ItemClick;
7474
OpenTerminal.Click += tabInstance.instanceInteraction.OpenDirectoryInTerminal;
75+
NewFolder.Click += tabInstance.instanceInteraction.NewFolder_Click;
76+
NewBitmapImage.Click += tabInstance.instanceInteraction.NewBitmapImage_Click;
77+
NewTextDocument.Click += tabInstance.instanceInteraction.NewTextDocument_Click;
7578
PropertiesItem.Click += tabInstance.ShowPropertiesButton_Click;
7679
OpenInNewWindowItem.Click += tabInstance.instanceInteraction.OpenInNewWindowItem_Click;
7780
}

Files UWP/Interacts/Interaction.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,6 +1212,21 @@ public async void CloneDirectoryAsync(string SourcePath, string DestinationPath,
12121212
}
12131213
}
12141214

1215+
public void NewFolder_Click(object sender, RoutedEventArgs e)
1216+
{
1217+
AddItem.CreateFile(tabInstance, "Folder");
1218+
}
1219+
1220+
public void NewTextDocument_Click(object sender, RoutedEventArgs e)
1221+
{
1222+
AddItem.CreateFile(tabInstance, "Text Document");
1223+
}
1224+
1225+
public void NewBitmapImage_Click(object sender, RoutedEventArgs e)
1226+
{
1227+
AddItem.CreateFile(tabInstance, "Bitmap Image");
1228+
}
1229+
12151230
public void SelectAllItems()
12161231
{
12171232
if(App.selectedTabInstance.accessibleContentFrame.SourcePageType == typeof(GenericFileBrowser))

0 commit comments

Comments
 (0)