Skip to content

Commit 43dc003

Browse files
committed
Add isItemSelected property
1 parent b13d200 commit 43dc003

File tree

4 files changed

+58
-96
lines changed

4 files changed

+58
-96
lines changed

Files/BaseLayout.cs

Lines changed: 53 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
using Files.Views.Pages;
55
using System;
66
using System.Collections.Generic;
7+
using System.ComponentModel;
78
using System.IO;
89
using System.Linq;
10+
using System.Runtime.CompilerServices;
911
using System.Runtime.InteropServices.WindowsRuntime;
1012
using Windows.Foundation;
1113
using Windows.Foundation.Collections;
@@ -25,50 +27,74 @@ namespace Files
2527
/// <summary>
2628
/// The base class which every layout page must derive from
2729
/// </summary>
28-
public abstract class BaseLayout : Page
30+
public abstract class BaseLayout : Page, INotifyPropertyChanged
2931
{
3032
public bool IsQuickLookEnabled { get; set; } = false;
3133

3234
public ItemViewModel AssociatedViewModel = null;
3335
public Interaction AssociatedInteractions = null;
3436
public bool isRenamingItem = false;
35-
public List<ListedItem> SelectedItems
37+
38+
private bool isItemSelected = false;
39+
public bool IsItemSelected
3640
{
3741
get
3842
{
39-
if (App.CurrentInstance.CurrentPageType == typeof(GenericFileBrowser))
40-
{
41-
return (App.CurrentInstance.ContentPage as GenericFileBrowser).AllView.SelectedItems.Cast<ListedItem>().ToList();
42-
}
43-
else if (App.CurrentInstance.CurrentPageType == typeof(PhotoAlbum))
43+
return isItemSelected;
44+
}
45+
internal set
46+
{
47+
if (value != isItemSelected)
4448
{
45-
return (App.CurrentInstance.ContentPage as PhotoAlbum).FileList.SelectedItems.Cast<ListedItem>().ToList();
49+
isItemSelected = value;
50+
NotifyPropertyChanged("IsItemSelected");
4651
}
47-
else
52+
}
53+
}
54+
55+
private List<ListedItem> _SelectedItems;
56+
public List<ListedItem> SelectedItems
57+
{
58+
get
59+
{
60+
return _SelectedItems;
61+
}
62+
set
63+
{
64+
if(value != _SelectedItems)
4865
{
49-
return new List<ListedItem>();
66+
_SelectedItems = value;
67+
if(value == null)
68+
{
69+
IsItemSelected = false;
70+
}
71+
NotifyPropertyChanged("SelectedItems");
5072
}
5173
}
5274
}
75+
76+
private ListedItem _SelectedItem;
5377
public ListedItem SelectedItem
5478
{
5579
get
5680
{
57-
if (App.CurrentInstance.CurrentPageType == typeof(GenericFileBrowser))
58-
{
59-
return (App.CurrentInstance.ContentPage as GenericFileBrowser).AllView.SelectedItem as ListedItem;
60-
}
61-
else if (App.CurrentInstance.CurrentPageType == typeof(PhotoAlbum))
62-
{
63-
return (App.CurrentInstance.ContentPage as PhotoAlbum).FileList.SelectedItem as ListedItem;
64-
}
65-
else
81+
return _SelectedItem;
82+
}
83+
set
84+
{
85+
if (value != _SelectedItem)
6686
{
67-
return null;
87+
_SelectedItem = value;
88+
if (value == null)
89+
{
90+
IsItemSelected = false;
91+
}
92+
NotifyPropertyChanged("SelectedItem");
6893
}
6994
}
7095
}
7196

97+
7298
public BaseLayout()
7399
{
74100
this.Loaded += Page_Loaded;
@@ -84,6 +110,12 @@ public BaseLayout()
84110
}
85111
}
86112

113+
public event PropertyChangedEventHandler PropertyChanged;
114+
private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
115+
{
116+
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
117+
}
118+
87119
protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
88120
{
89121
base.OnNavigatedTo(eventArgs);
@@ -97,7 +129,7 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
97129
instanceTabsView.TabStrip_SelectionChanged(null, null);
98130
}
99131
App.CurrentInstance.NavigationToolbar.CanRefresh = true;
100-
//(App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.AlwaysPresentCommands.isEnabled = true;
132+
IsItemSelected = false;
101133
AssociatedViewModel.EmptyTextState.isVisible = Visibility.Collapsed;
102134
App.CurrentInstance.ViewModel.Universal.WorkingDirectory = parameters;
103135

Files/UserControls/LayoutModes/GenericFileBrowser.xaml.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -192,23 +192,13 @@ private void AllView_CellEditEnded(object sender, DataGridCellEditEndedEventArgs
192192
private void GenericItemView_PointerReleased(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
193193
{
194194
AllView.SelectedItem = null;
195-
//(App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.HomeItems.isEnabled = false;
196-
//(App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.ShareItems.isEnabled = false;
197195
}
198196

199197
private void AllView_SelectionChanged(object sender, SelectionChangedEventArgs e)
200198
{
201199
AllView.CommitEdit();
202-
//if (e.AddedItems.Count > 0)
203-
//{
204-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.HomeItems.isEnabled = true;
205-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.ShareItems.isEnabled = true;
206-
//}
207-
//else if (AllView.SelectedItems.Count == 0)
208-
//{
209-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.HomeItems.isEnabled = false;
210-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.ShareItems.isEnabled = false;
211-
//}
200+
base.SelectedItems = AllView.SelectedItems.Cast<ListedItem>().ToList();
201+
base.SelectedItem = AllView.SelectedItem as ListedItem;
212202
}
213203

214204
private void AllView_DragStarting(UIElement sender, DragStartingEventArgs args)

Files/UserControls/LayoutModes/PhotoAlbum.xaml.cs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Windows.UI.Core;
88
using Files.Controls;
99
using System;
10+
using System.Linq;
1011

1112
namespace Files
1213
{
@@ -47,24 +48,13 @@ private void PhotoAlbumViewer_PointerPressed(object sender, PointerRoutedEventAr
4748
if (e.GetCurrentPoint(sender as Page).Properties.IsLeftButtonPressed)
4849
{
4950
FileList.SelectedItem = null;
50-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.HomeItems.isEnabled = false;
51-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.ShareItems.isEnabled = false;
5251
}
5352
}
5453

5554
private void FileList_SelectionChanged(object sender, SelectionChangedEventArgs e)
5655
{
57-
//if (e.AddedItems.Count > 0)
58-
//{
59-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.HomeItems.isEnabled = true;
60-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.ShareItems.isEnabled = true;
61-
62-
//}
63-
//else if (FileList.SelectedItems.Count == 0)
64-
//{
65-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.HomeItems.isEnabled = false;
66-
// (App.CurrentInstance.OperationsControl as RibbonArea).RibbonViewModel.ShareItems.isEnabled = false;
67-
//}
56+
base.SelectedItems = FileList.SelectedItems.Cast<ListedItem>().ToList();
57+
base.SelectedItem = FileList.SelectedItem as ListedItem;
6858
}
6959

7060
private ListedItem renamingItem;

Files/View Models/ItemViewModel.cs

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -331,55 +331,6 @@ private void Universal_PropertyChanged(object sender, System.ComponentModel.Prop
331331
}
332332
}
333333

334-
//private void AlwaysPresentCommands_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
335-
//{
336-
// if ((App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.AlwaysPresentCommands.isEnabled == true)
337-
// {
338-
// (App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.AlwaysPresentCommands.isEnabled = true;
339-
// }
340-
// else
341-
// {
342-
// (App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.AlwaysPresentCommands.isEnabled = false;
343-
// }
344-
//}
345-
346-
//private void LayoutItems_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
347-
//{
348-
// if ((App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.LayoutItems.isEnabled == true)
349-
// {
350-
// (App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.LayoutItems.isEnabled = true;
351-
// }
352-
// else
353-
// {
354-
// (App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.LayoutItems.isEnabled = false;
355-
// }
356-
//}
357-
358-
//private void ShareItems_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
359-
//{
360-
// if ((App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.ShareItems.isEnabled == true)
361-
// {
362-
// (App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.ShareItems.isEnabled = true;
363-
// }
364-
// else
365-
// {
366-
// (App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.ShareItems.isEnabled = false;
367-
// }
368-
//}
369-
370-
//private void HomeItems_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
371-
//{
372-
// if ((App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.HomeItems.isEnabled == true)
373-
// {
374-
// (App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.HomeItems.isEnabled = true;
375-
// }
376-
// else
377-
// {
378-
// (App.CurrentInstance as ProHome).RibbonArea.RibbonViewModel.HomeItems.isEnabled = false;
379-
// }
380-
381-
//}
382-
383334
public void AddFileOrFolder(ListedItem item)
384335
{
385336
_filesAndFolders.Add(item);
@@ -1143,7 +1094,6 @@ private async Task AddFile(StorageFile file)
11431094
itemEmptyImgVis = Visibility.Visible;
11441095
itemThumbnailImgVis = Visibility.Collapsed;
11451096
// Catch here to avoid crash
1146-
// TODO maybe some logging could be added in the future...
11471097
}
11481098
}
11491099
else

0 commit comments

Comments
 (0)