Skip to content

Commit

Permalink
Use popup to display editable filename
Browse files Browse the repository at this point in the history
Added x:Load attribute to edit popup
  • Loading branch information
gave92 committed Jun 5, 2020
1 parent 587df5c commit fe1d347
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 27 deletions.
27 changes: 15 additions & 12 deletions Files/UserControls/LayoutModes/GridViewBrowser.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -389,24 +389,27 @@
</Viewbox>
</Grid>
</Grid>
<StackPanel Grid.Row="1">
<TextBlock
Margin="0,0,0,10"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalTextAlignment="Center"
Text="{x:Bind ItemName}"
TextTrimming="CharacterEllipsis"
TextWrapping="NoWrap" />
<TextBlock
Grid.Row="1"
Margin="0,0,0,10"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalTextAlignment="Center"
Text="{x:Bind ItemName}"
TextTrimming="CharacterEllipsis"
TextWrapping="NoWrap" />
<Popup Grid.Row="1"
x:Name="EditPopup"
x:Load="False">
<TextBox
Margin="0"
Width="{x:Bind local:App.AppSettings.GridViewSize, Mode=OneWay}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Text="{x:Bind ItemName}"
TextAlignment="Center"
TextWrapping="Wrap"
Visibility="Collapsed" />
</StackPanel>
TextWrapping="Wrap" />
</Popup>
</Grid>
</DataTemplate>

Expand Down
55 changes: 40 additions & 15 deletions Files/UserControls/LayoutModes/GridViewBrowser.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using Windows.UI.Core;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Input;
using Interaction = Files.Interacts.Interaction;

Expand Down Expand Up @@ -138,21 +139,35 @@ private void FileList_SelectionChanged(object sender, SelectionChangedEventArgs
public override void StartRenameItem()
{
renamingItem = SelectedItem;
GridViewItem gridViewItem = FileList.ContainerFromItem(renamingItem) as GridViewItem;
// Handle layout differences between tiles browser and photo album
StackPanel stackPanel = (App.AppSettings.LayoutMode == 2)
? (gridViewItem.ContentTemplateRoot as Grid).Children[1] as StackPanel
: (((gridViewItem.ContentTemplateRoot as Grid).Children[0] as StackPanel).Children[1] as Grid).Children[0] as StackPanel;
TextBlock textBlock = stackPanel.Children[0] as TextBlock;
TextBox textBox = stackPanel.Children[1] as TextBox;
int extensionLength = renamingItem.FileExtension?.Length ?? 0;
GridViewItem gridViewItem = FileList.ContainerFromItem(renamingItem) as GridViewItem;
TextBox textBox = null;

textBlock.Visibility = Visibility.Collapsed;
textBox.Visibility = Visibility.Visible;
// Handle layout differences between tiles browser and photo album
if (App.AppSettings.LayoutMode == 2)
{
Popup popup =
(gridViewItem.ContentTemplateRoot as Grid).FindName("EditPopup") as Popup;
TextBlock textBlock =
(gridViewItem.ContentTemplateRoot as Grid).Children[1] as TextBlock;
textBox = popup.Child as TextBox;
popup.IsOpen = true;
}
else
{
StackPanel stackPanel =
(((gridViewItem.ContentTemplateRoot as Grid).Children[0] as StackPanel).Children[1] as Grid).Children[0] as StackPanel;
TextBlock textBlock = stackPanel.Children[0] as TextBlock;
textBox = stackPanel.Children[1] as TextBox;
textBlock.Visibility = Visibility.Collapsed;
textBox.Visibility = Visibility.Visible;
}

textBox.Focus(FocusState.Pointer);
textBox.LostFocus += RenameTextBox_LostFocus;
textBox.KeyDown += RenameTextBox_KeyDown;
textBox.Select(0, renamingItem.ItemName.Length - extensionLength);

isRenamingItem = true;
}

Expand Down Expand Up @@ -219,12 +234,22 @@ private async void CommitRename(TextBox textBox)

private void EndRename(TextBox textBox)
{
StackPanel parentPanel = textBox.Parent as StackPanel;
TextBlock textBlock = parentPanel.Children[0] as TextBlock;
textBox.Visibility = Visibility.Collapsed;
textBlock.Visibility = Visibility.Visible;
if (App.AppSettings.LayoutMode == 2)
{
Popup popup = (textBox.Parent) as Popup;
TextBlock textBlock = (popup.Parent as Grid).Children[1] as TextBlock;
popup.IsOpen = false;
}
else
{
StackPanel parentPanel = textBox.Parent as StackPanel;
TextBlock textBlock = parentPanel.Children[0] as TextBlock;
textBox.Visibility = Visibility.Collapsed;
textBlock.Visibility = Visibility.Visible;
}

textBox.LostFocus -= RenameTextBox_LostFocus;
textBox.KeyDown += RenameTextBox_KeyDown;
textBox.KeyDown -= RenameTextBox_KeyDown;
isRenamingItem = false;
}

Expand Down Expand Up @@ -338,4 +363,4 @@ private void AppSettings_GridViewSizeChangeRequested(object sender, EventArgs e)
_iconSize = iconSize; // Update icon size
}
}
}
}

0 comments on commit fe1d347

Please sign in to comment.