Skip to content

Commit 0f2c653

Browse files
committed
Feature: Refactor folder management to use FolderTreeRoot abstraction.
1 parent fd7218f commit 0f2c653

File tree

3 files changed

+10
-25
lines changed

3 files changed

+10
-25
lines changed

CodeIngest.Desktop/MainViewModel.cs

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
// THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND.
1111
using System;
1212
using System.IO;
13-
using System.Linq;
1413
using System.Threading.Tasks;
1514
using CodeIngestLib;
1615
using CSharp.Core.Extensions;
@@ -20,21 +19,11 @@
2019

2120
namespace CodeIngest.Desktop;
2221

23-
public class SelectedFoldersProvider : ISelectedItemsProvider<DirectoryInfo>
24-
{
25-
private DirectoryInfo[] m_selectedItems;
26-
27-
public void SetSelectedItems(DirectoryInfo[] items) =>
28-
m_selectedItems = items;
29-
30-
public DirectoryInfo[] GetSelectedItems() =>
31-
m_selectedItems ?? [];
32-
}
33-
3422
public class MainViewModel : ViewModelBase
3523
{
3624
private readonly IDialogService m_dialogService;
37-
private DirectoryInfo m_driveRoot = new DirectoryInfo(Environment.CurrentDirectory);
25+
private FolderTreeRoot m_root = new FolderTreeRoot(new DirectoryInfo(Environment.CurrentDirectory));
26+
3827
private bool m_isCSharp = true;
3928
private bool m_isCppNoHeaders;
4029
private bool m_isCppWithHeaders;
@@ -43,13 +32,11 @@ public class MainViewModel : ViewModelBase
4332
private bool m_useFullPaths;
4433
private bool m_excludeComments = true;
4534

46-
public DirectoryInfo DriveRoot
35+
public FolderTreeRoot Root
4736
{
48-
get => m_driveRoot;
49-
set => SetField(ref m_driveRoot, value);
37+
get => m_root;
38+
set => SetField(ref m_root, value);
5039
}
51-
52-
public SelectedFoldersProvider SelectedFolders { get; } = new SelectedFoldersProvider();
5340

5441
public bool IsCSharp
5542
{
@@ -97,7 +84,7 @@ public async Task SelectRoot()
9784
{
9885
var rootFolder = await m_dialogService.SelectFolderAsync("Select a folder to scan for code.");
9986
if (rootFolder != null)
100-
DriveRoot = rootFolder;
87+
Root = new FolderTreeRoot(rootFolder);
10188
}
10289

10390
public MainViewModel(IDialogService dialogService = null)
@@ -107,8 +94,8 @@ public MainViewModel(IDialogService dialogService = null)
10794

10895
public async Task RunIngest()
10996
{
110-
var selectedFolders = SelectedFolders?.GetSelectedItems();
111-
if (selectedFolders?.Any() != true)
97+
var selectedFolders = Root.GetSelectedItems();
98+
if (selectedFolders.Length == 0)
11299
return; // Nothing to do.
113100

114101
string[] filterExtensions;

CodeIngest.Desktop/MainWindow.axaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@
3333
</Grid.Styles>
3434

3535
<Border BorderThickness="1" Margin="8">
36-
<ui:FolderTree SelectedItemsProvider="{Binding SelectedFolders}"
37-
Location="{Binding DriveRoot}"
38-
Margin="8"/>
36+
<ui:FolderTree Root="{Binding Root}" Margin="8"/>
3937
</Border>
4038

4139
<StackPanel Grid.Column="1" Margin="0,8,8,8">

DTC.Core

0 commit comments

Comments
 (0)