Skip to content

Commit

Permalink
Fix renaming files with long names in GridViewBrowser (#898)
Browse files Browse the repository at this point in the history
Co-authored-by: Yair Aichenbaum <39923744+yaichenbaum@users.noreply.github.com>
  • Loading branch information
gave92 and yaira2 committed Jun 5, 2020
1 parent bbc1665 commit 92d8d7e
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 26 deletions.
30 changes: 17 additions & 13 deletions Files/UserControls/LayoutModes/GridViewBrowser.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -389,24 +389,28 @@
</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
x:Name="EditPopup"
Grid.Row="1"
x:Load="False">
<TextBox
Width="{x:Bind local:App.AppSettings.GridViewSize, Mode=OneWay}"
Margin="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Text="{x:Bind ItemName}"
TextAlignment="Center"
TextWrapping="Wrap"
Visibility="Collapsed" />
</StackPanel>
TextWrapping="Wrap" />
</Popup>
</Grid>
</DataTemplate>

Expand Down Expand Up @@ -545,9 +549,9 @@
</Grid.KeyboardAccelerators>
<muxc:ProgressBar
x:Name="progBar"
VerticalAlignment="Top"
x:Load="{x:Bind local:App.InteractionViewModel.IsContentLoadingIndicatorVisible, Mode=OneWay}"
Background="Transparent"
VerticalAlignment="Top"
IsIndeterminate="True" />
<TextBlock
x:Name="EmptyText"
Expand Down
49 changes: 36 additions & 13 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,33 @@ private void FileList_SelectionChanged(object sender, SelectionChangedEventArgs
public override void StartRenameItem()
{
renamingItem = SelectedItem;
int extensionLength = renamingItem.FileExtension?.Length ?? 0;
GridViewItem gridViewItem = FileList.ContainerFromItem(renamingItem) as GridViewItem;
TextBox textBox = null;

// 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;
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;
}

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 +232,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

0 comments on commit 92d8d7e

Please sign in to comment.