Skip to content

Commit 31cb3de

Browse files
committed
Don't store selected tab instance in ItemViewModel
1 parent 81d248a commit 31cb3de

File tree

10 files changed

+241
-235
lines changed

10 files changed

+241
-235
lines changed

Files UWP/AddItem.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public T GetCurrentSelectedTabInstance<T>()
5656
}
5757
private async void ListView_ItemClick(object sender, ItemClickEventArgs e)
5858
{
59-
var TabInstance = GetCurrentSelectedTabInstance<ProHome>();
59+
var TabInstance = App.selectedTabInstance;
6060
TabInstance.addItemDialog.Hide();
6161
string currentPath = null;
6262
if (TabInstance.accessibleContentFrame.SourcePageType == typeof(GenericFileBrowser))

Files UWP/App.xaml.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ namespace Files
2222
{
2323
sealed partial class App : Application
2424
{
25+
public static ProHome selectedTabInstance { get; set; }
2526
public App()
2627
{
2728
this.InitializeComponent();
@@ -96,6 +97,7 @@ private async void App_UnhandledException(object sender, Windows.UI.Xaml.Unhandl
9697
public static PasteState PS { get; set; } = new PasteState();
9798
public static List<string> pathsToDeleteAfterPaste = new List<string>();
9899

100+
99101
/// <summary>
100102
/// Invoked when the application is launched normally by the end user. Other entry points
101103
/// will be used such as when the application is launched to open a specific file.

Files UWP/Filesystem/ItemViewModel.cs

Lines changed: 85 additions & 86 deletions
Large diffs are not rendered by default.

Files UWP/GenericFileBrowser.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public GenericFileBrowser()
5050
grid = RootGrid;
5151
Clipboard.ContentChanged += Clipboard_ContentChanged;
5252
RefreshEmptySpace.Click += NavigationActions.Refresh_Click;
53-
tabInstance = ItemViewModel.GetCurrentSelectedTabInstance<ProHome>();
53+
tabInstance = App.selectedTabInstance;
5454
viewModelInstance = tabInstance.instanceViewModel;
5555
PasteEmptySpace.Click += tabInstance.instanceInteraction.PasteItem_ClickAsync;
5656
OpenItem.Click += tabInstance.instanceInteraction.OpenItem_Click;

Files UWP/InstanceTabsView.xaml.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Microsoft.UI.Xaml.Controls;
1+
using Files.Filesystem;
2+
using Microsoft.UI.Xaml.Controls;
23
using System;
34
using System.Collections.Generic;
45
using System.Collections.ObjectModel;
@@ -235,6 +236,10 @@ private void TabStrip_SelectionChanged(object sender, SelectionChangedEventArgs
235236
}
236237
}
237238
}
239+
else
240+
{
241+
App.selectedTabInstance = ItemViewModel.GetCurrentSelectedTabInstance<ProHome>();
242+
}
238243

239244
}
240245

Files UWP/Interacts/Interaction.cs

Lines changed: 50 additions & 50 deletions
Large diffs are not rendered by default.

Files UWP/PhotoAlbum.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public PhotoAlbum()
5555
progressBar = ProgBar;
5656
gridContext = GridRightClickContextMenu;
5757
Clipboard.ContentChanged += Clipboard_ContentChanged;
58-
tabInstance = ItemViewModel.GetCurrentSelectedTabInstance<ProHome>();
58+
tabInstance = App.selectedTabInstance;
5959
viewModelInstance = tabInstance.instanceViewModel;
6060
FileList.DoubleTapped += tabInstance.instanceInteraction.List_ItemClick;
6161
SidebarPinItem.Click += tabInstance.instanceInteraction.PinItem_Click;

Files UWP/ProHome.xaml.cs

Lines changed: 43 additions & 43 deletions
Large diffs are not rendered by default.

Files UWP/SettingsPages/Preferences.xaml.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ private async void SaveCustomL_Click(object sender, Windows.UI.Xaml.RoutedEventA
130130
}
131131
catch (UnauthorizedAccessException)
132132
{
133-
await ItemViewModel.GetCurrentSelectedTabInstance<ProHome>().consentDialog.ShowAsync();
133+
await App.selectedTabInstance.consentDialog.ShowAsync();
134134
return;
135135
}
136136
catch (ArgumentException)
@@ -156,7 +156,7 @@ private async void SaveCustomL_Click(object sender, Windows.UI.Xaml.RoutedEventA
156156
}
157157
catch (UnauthorizedAccessException)
158158
{
159-
await ItemViewModel.GetCurrentSelectedTabInstance<ProHome>().consentDialog.ShowAsync();
159+
await App.selectedTabInstance.consentDialog.ShowAsync();
160160
return;
161161
}
162162
catch (ArgumentException)
@@ -181,7 +181,7 @@ private async void SaveCustomL_Click(object sender, Windows.UI.Xaml.RoutedEventA
181181
}
182182
catch (UnauthorizedAccessException)
183183
{
184-
await ItemViewModel.GetCurrentSelectedTabInstance<ProHome>().consentDialog.ShowAsync();
184+
await App.selectedTabInstance.consentDialog.ShowAsync();
185185
return;
186186
}
187187
catch (ArgumentException)
@@ -206,7 +206,7 @@ private async void SaveCustomL_Click(object sender, Windows.UI.Xaml.RoutedEventA
206206
}
207207
catch (UnauthorizedAccessException)
208208
{
209-
await ItemViewModel.GetCurrentSelectedTabInstance<ProHome>().consentDialog.ShowAsync();
209+
await App.selectedTabInstance.consentDialog.ShowAsync();
210210
return;
211211
}
212212
catch (ArgumentException)
@@ -231,7 +231,7 @@ private async void SaveCustomL_Click(object sender, Windows.UI.Xaml.RoutedEventA
231231
}
232232
catch (UnauthorizedAccessException)
233233
{
234-
await ItemViewModel.GetCurrentSelectedTabInstance<ProHome>().consentDialog.ShowAsync();
234+
await App.selectedTabInstance.consentDialog.ShowAsync();
235235
return;
236236
}
237237
catch (ArgumentException)
@@ -256,7 +256,7 @@ private async void SaveCustomL_Click(object sender, Windows.UI.Xaml.RoutedEventA
256256
}
257257
catch (UnauthorizedAccessException)
258258
{
259-
await ItemViewModel.GetCurrentSelectedTabInstance<ProHome>().consentDialog.ShowAsync();
259+
await App.selectedTabInstance.consentDialog.ShowAsync();
260260
return;
261261
}
262262
catch (ArgumentException)

Files UWP/YourHome.xaml.cs

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public sealed partial class YourHome : Page
3737
public YourHome()
3838
{
3939
InitializeComponent();
40-
GetCurrentSelectedTabInstance<ProHome>().PathText.Text = "Favorites";
40+
App.selectedTabInstance.PathText.Text = "Favorites";
4141

4242
// Overwrite paths for common locations if Custom Locations setting is enabled
4343
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
@@ -82,16 +82,16 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
8282
Frame rootFrame = Window.Current.Content as Frame;
8383
var instanceTabsView = rootFrame.Content as InstanceTabsView;
8484
instanceTabsView.SetSelectedTabInfo("Favorites", null);
85-
GetCurrentSelectedTabInstance<ProHome>().BackButton.IsEnabled = GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.CanGoBack;
86-
GetCurrentSelectedTabInstance<ProHome>().ForwardButton.IsEnabled = GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.CanGoForward;
87-
GetCurrentSelectedTabInstance<ProHome>().RefreshButton.IsEnabled = false;
88-
GetCurrentSelectedTabInstance<ProHome>().accessiblePasteButton.IsEnabled = false;
89-
GetCurrentSelectedTabInstance<ProHome>().AlwaysPresentCommands.isEnabled = false;
90-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = false;
85+
App.selectedTabInstance.BackButton.IsEnabled = App.selectedTabInstance.accessibleContentFrame.CanGoBack;
86+
App.selectedTabInstance.ForwardButton.IsEnabled = App.selectedTabInstance.accessibleContentFrame.CanGoForward;
87+
App.selectedTabInstance.RefreshButton.IsEnabled = false;
88+
App.selectedTabInstance.accessiblePasteButton.IsEnabled = false;
89+
App.selectedTabInstance.AlwaysPresentCommands.isEnabled = false;
90+
App.selectedTabInstance.LayoutItems.isEnabled = false;
9191

9292
// Clear the path UI and replace with Favorites
93-
GetCurrentSelectedTabInstance<ProHome>().pathBoxItems.Clear();
94-
//Style tabStyleFixed = GetCurrentSelectedTabInstance<ProHome>().accessiblePathTabView.Resources["PathSectionTabStyle"] as Style;
93+
App.selectedTabInstance.pathBoxItems.Clear();
94+
//Style tabStyleFixed = App.selectedTabInstance.accessiblePathTabView.Resources["PathSectionTabStyle"] as Style;
9595

9696
string componentLabel = "Favorites";
9797
string tag = "Favorites";
@@ -100,7 +100,7 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
100100
Title = componentLabel,
101101
Path = tag,
102102
};
103-
GetCurrentSelectedTabInstance<ProHome>().pathBoxItems.Add(item);
103+
App.selectedTabInstance.pathBoxItems.Add(item);
104104

105105
}
106106

@@ -110,39 +110,39 @@ private void CardPressed(object sender, ItemClickEventArgs e)
110110
if (BelowCardText == "Downloads")
111111
{
112112

113-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 2;
113+
App.selectedTabInstance.locationsList.SelectedIndex = 2;
114114
//instanceViewModel.TextState.isVisible = Visibility.Collapsed;
115-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), DownloadsPath);
116-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
115+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), DownloadsPath);
116+
App.selectedTabInstance.LayoutItems.isEnabled = true;
117117
}
118118
else if (BelowCardText == "Documents")
119119
{
120120

121-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 3;
122-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), DocumentsPath);
123-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
121+
App.selectedTabInstance.locationsList.SelectedIndex = 3;
122+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), DocumentsPath);
123+
App.selectedTabInstance.LayoutItems.isEnabled = true;
124124
}
125125
else if (BelowCardText == "Pictures")
126126
{
127127

128-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 4;
129-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(PhotoAlbum), PicturesPath);
130-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
128+
App.selectedTabInstance.locationsList.SelectedIndex = 4;
129+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(PhotoAlbum), PicturesPath);
130+
App.selectedTabInstance.LayoutItems.isEnabled = true;
131131

132132
}
133133
else if (BelowCardText == "Music")
134134
{
135135

136-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 5;
137-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), MusicPath);
138-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
136+
App.selectedTabInstance.locationsList.SelectedIndex = 5;
137+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), MusicPath);
138+
App.selectedTabInstance.LayoutItems.isEnabled = true;
139139
}
140140
else if (BelowCardText == "Videos")
141141
{
142142

143-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 6;
144-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), VideosPath);
145-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
143+
App.selectedTabInstance.locationsList.SelectedIndex = 6;
144+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), VideosPath);
145+
App.selectedTabInstance.LayoutItems.isEnabled = true;
146146
}
147147
}
148148

@@ -162,37 +162,37 @@ private void Button_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEven
162162
if (clickedButton.Tag.ToString() == "\xE896") // Downloads
163163
{
164164

165-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 2;
166-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), DownloadsPath);
167-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
165+
App.selectedTabInstance.locationsList.SelectedIndex = 2;
166+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), DownloadsPath);
167+
App.selectedTabInstance.LayoutItems.isEnabled = true;
168168
}
169169
else if (clickedButton.Tag.ToString() == "\xE8A5") // Documents
170170
{
171171

172-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 3;
173-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), DocumentsPath);
174-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
172+
App.selectedTabInstance.locationsList.SelectedIndex = 3;
173+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), DocumentsPath);
174+
App.selectedTabInstance.LayoutItems.isEnabled = true;
175175
}
176176
else if (clickedButton.Tag.ToString() == "\xEB9F") // Pictures
177177
{
178178

179-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 4;
180-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(PhotoAlbum), PicturesPath);
181-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
179+
App.selectedTabInstance.locationsList.SelectedIndex = 4;
180+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(PhotoAlbum), PicturesPath);
181+
App.selectedTabInstance.LayoutItems.isEnabled = true;
182182
}
183183
else if (clickedButton.Tag.ToString() == "\xEC4F") // Music
184184
{
185185

186-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 5;
187-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), MusicPath);
188-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
186+
App.selectedTabInstance.locationsList.SelectedIndex = 5;
187+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), MusicPath);
188+
App.selectedTabInstance.LayoutItems.isEnabled = true;
189189
}
190190
else if (clickedButton.Tag.ToString() == "\xE8B2") // Videos
191191
{
192192

193-
GetCurrentSelectedTabInstance<ProHome>().locationsList.SelectedIndex = 6;
194-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), VideosPath);
195-
GetCurrentSelectedTabInstance<ProHome>().LayoutItems.isEnabled = true;
193+
App.selectedTabInstance.locationsList.SelectedIndex = 6;
194+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), VideosPath);
195+
App.selectedTabInstance.LayoutItems.isEnabled = true;
196196
}
197197
}
198198
public static StorageFile RecentsFile;
@@ -286,24 +286,24 @@ private async void RecentsView_ItemClick(object sender, ItemClickEventArgs e)
286286
}
287287
catch (UnauthorizedAccessException)
288288
{
289-
await GetCurrentSelectedTabInstance<ProHome>().consentDialog.ShowAsync();
289+
await App.selectedTabInstance.consentDialog.ShowAsync();
290290
}
291291
catch (System.ArgumentException)
292292
{
293293
if (new DirectoryInfo(path).Root.ToString().Contains(@"C:\"))
294294
{
295-
GetCurrentSelectedTabInstance<ProHome>().drivesList.SelectedIndex = 0;
296-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), path);
295+
App.selectedTabInstance.drivesList.SelectedIndex = 0;
296+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), path);
297297
}
298298
else
299299
{
300-
foreach(ListViewItem drive in GetCurrentSelectedTabInstance<ProHome>().drivesList.Items)
300+
foreach(ListViewItem drive in App.selectedTabInstance.drivesList.Items)
301301
{
302302
if (drive.Tag.ToString() == new DirectoryInfo(path).Root.ToString())
303303
{
304-
GetCurrentSelectedTabInstance<ProHome>().drivesList.SelectedItem = null;
304+
App.selectedTabInstance.drivesList.SelectedItem = null;
305305
drive.IsSelected = true;
306-
GetCurrentSelectedTabInstance<ProHome>().accessibleContentFrame.Navigate(typeof(GenericFileBrowser), path);
306+
App.selectedTabInstance.accessibleContentFrame.Navigate(typeof(GenericFileBrowser), path);
307307
return;
308308
}
309309
}

0 commit comments

Comments
 (0)