10
10
// THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND.
11
11
using System ;
12
12
using System . IO ;
13
- using System . Linq ;
14
13
using System . Threading . Tasks ;
15
14
using CodeIngestLib ;
16
15
using CSharp . Core . Extensions ;
20
19
21
20
namespace CodeIngest . Desktop ;
22
21
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
-
34
22
public class MainViewModel : ViewModelBase
35
23
{
36
24
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
+
38
27
private bool m_isCSharp = true ;
39
28
private bool m_isCppNoHeaders ;
40
29
private bool m_isCppWithHeaders ;
@@ -43,13 +32,11 @@ public class MainViewModel : ViewModelBase
43
32
private bool m_useFullPaths ;
44
33
private bool m_excludeComments = true ;
45
34
46
- public DirectoryInfo DriveRoot
35
+ public FolderTreeRoot Root
47
36
{
48
- get => m_driveRoot ;
49
- set => SetField ( ref m_driveRoot , value ) ;
37
+ get => m_root ;
38
+ set => SetField ( ref m_root , value ) ;
50
39
}
51
-
52
- public SelectedFoldersProvider SelectedFolders { get ; } = new SelectedFoldersProvider ( ) ;
53
40
54
41
public bool IsCSharp
55
42
{
@@ -97,7 +84,7 @@ public async Task SelectRoot()
97
84
{
98
85
var rootFolder = await m_dialogService . SelectFolderAsync ( "Select a folder to scan for code." ) ;
99
86
if ( rootFolder != null )
100
- DriveRoot = rootFolder ;
87
+ Root = new FolderTreeRoot ( rootFolder ) ;
101
88
}
102
89
103
90
public MainViewModel ( IDialogService dialogService = null )
@@ -107,8 +94,8 @@ public MainViewModel(IDialogService dialogService = null)
107
94
108
95
public async Task RunIngest ( )
109
96
{
110
- var selectedFolders = SelectedFolders ? . GetSelectedItems ( ) ;
111
- if ( selectedFolders ? . Any ( ) != true )
97
+ var selectedFolders = Root . GetSelectedItems ( ) ;
98
+ if ( selectedFolders . Length == 0 )
112
99
return ; // Nothing to do.
113
100
114
101
string [ ] filterExtensions ;
0 commit comments