Skip to content

Commit f3085eb

Browse files
committed
treeview changes correctly with local/online mode
1 parent 4905739 commit f3085eb

File tree

2 files changed

+30
-20
lines changed

2 files changed

+30
-20
lines changed

Gui/ViewModels/FolderTreeViewModel.cs

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,19 @@
1919

2020
namespace OpenLoco.Gui.ViewModels
2121
{
22+
public class DesignerFolderTreeViewModel : FolderTreeViewModel
23+
{
24+
public DesignerFolderTreeViewModel()
25+
{
26+
SelectedTabIndex = 0;
27+
CurrentLocalDirectory = "test/directory";
28+
LocalDirectoryItems = [new("local-filename1", "local-displayname1")];
29+
OnlineDirectoryItems = [new("online-filename1", "online-displayname1")];
30+
31+
UpdateDirectoryItemsView();
32+
}
33+
}
34+
2235
public class FolderTreeViewModel : ReactiveObject
2336
{
2437
public HierarchicalTreeDataGridSource<FileSystemItemBase> TreeDataGridSource { get; set; }
@@ -50,13 +63,10 @@ public class FolderTreeViewModel : ReactiveObject
5063
public ObjectDisplayMode DisplayMode { get; set; } = ObjectDisplayMode.All;
5164

5265
[Reactive]
53-
List<FileSystemItemBase> LocalDirectoryItems { get; set; } = [];
66+
protected List<FileSystemItemBase> LocalDirectoryItems { get; set; } = [];
5467

5568
[Reactive]
56-
List<FileSystemItemBase> OnlineDirectoryItems { get; set; } = [];
57-
58-
[Reactive]
59-
public ObservableCollection<FileSystemItemBase> DirectoryItems { get; set; } = [];
69+
protected List<FileSystemItemBase> OnlineDirectoryItems { get; set; } = [];
6070

6171
[Reactive]
6272
public float IndexOrDownloadProgress { get; set; }
@@ -78,7 +88,7 @@ public string RecreateText
7888
=> IsLocal ? "Recreate index" : "Download object list";
7989

8090
public string DirectoryFileCount
81-
=> $"Objects: {DirectoryItems.Sum(CountNodes)}";
91+
=> $"Objects: {CurrentDirectoryItems.Sum(CountNodes)}";
8292

8393
// used for design-time view
8494
public FolderTreeViewModel()
@@ -120,17 +130,17 @@ public FolderTreeViewModel(ObjectEditorModel model)
120130
.Skip(1)
121131
.Subscribe(async _ => await ReloadDirectoryAsync(true));
122132

123-
_ = this.WhenAnyValue(o => o.DirectoryItems)
124-
.Skip(1)
125-
.Subscribe(_ => this.RaisePropertyChanged(nameof(DirectoryFileCount)));
133+
//_ = this.WhenAnyValue(o => o.DirectoryItems)
134+
// .Skip(1)
135+
// .Subscribe(_ => this.RaisePropertyChanged(nameof(DirectoryFileCount)));
126136

127-
_ = this.WhenAnyValue(o => o.DirectoryItems)
128-
.Skip(1)
129-
.Subscribe(_ => CurrentlySelectedObject = null);
137+
//_ = this.WhenAnyValue(o => o.DirectoryItems)
138+
// .Skip(1)
139+
// .Subscribe(_ => CurrentlySelectedObject = null);
130140

131141
_ = this.WhenAnyValue(o => o.SelectedTabIndex)
132142
.Skip(1)
133-
.Subscribe(_ => SwitchDirectoryItemsView());
143+
.Subscribe(_ => UpdateDirectoryItemsView());
134144

135145
_ = this.WhenAnyValue(o => o.SelectedTabIndex)
136146
.Skip(1)
@@ -142,11 +152,11 @@ public FolderTreeViewModel(ObjectEditorModel model)
142152

143153
_ = this.WhenAnyValue(o => o.LocalDirectoryItems)
144154
//.Skip(1)
145-
.Subscribe(_ => SwitchDirectoryItemsView());
155+
.Subscribe(_ => UpdateDirectoryItemsView());
146156

147157
_ = this.WhenAnyValue(o => o.OnlineDirectoryItems)
148158
.Skip(1)
149-
.Subscribe(_ => SwitchDirectoryItemsView());
159+
.Subscribe(_ => UpdateDirectoryItemsView());
150160

151161
// loads the last-viewed folder
152162
CurrentLocalDirectory = Model.Settings.ObjDataDirectory;
@@ -169,10 +179,10 @@ public static int CountNodes(FileSystemItemBase fib)
169179
return count;
170180
}
171181

172-
void SwitchDirectoryItemsView()
173-
=> DirectoryItems = SelectedTabIndex == 0
174-
? new(LocalDirectoryItems)
175-
: new(OnlineDirectoryItems);
182+
List<FileSystemItemBase> CurrentDirectoryItems => IsLocal ? LocalDirectoryItems : OnlineDirectoryItems;
183+
184+
protected void UpdateDirectoryItemsView()
185+
=> UpdateGrid(CurrentDirectoryItems);
176186

177187
async Task ReloadDirectoryAsync(bool useExistingIndex)
178188
{

Gui/Views/FolderTreeView.axaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
x:DataType="vm:FolderTreeViewModel">
1616

1717
<Design.DataContext>
18-
<vm:FolderTreeViewModel/>
18+
<vm:DesignerFolderTreeViewModel/>
1919
</Design.DataContext>
2020

2121
<UserControl.Resources>

0 commit comments

Comments
 (0)