diff --git a/Wabbajack.App.Wpf/Themes/Styles.xaml b/Wabbajack.App.Wpf/Themes/Styles.xaml
index b6158e58..28f771d9 100644
--- a/Wabbajack.App.Wpf/Themes/Styles.xaml
+++ b/Wabbajack.App.Wpf/Themes/Styles.xaml
@@ -2321,6 +2321,19 @@
ContentSource="Header"/>
+
+
+
+
diff --git a/Wabbajack.App.Wpf/ViewModels/Compiler/CompilerFileManagerVM.cs b/Wabbajack.App.Wpf/ViewModels/Compiler/CompilerFileManagerVM.cs
index a939f181..9f76564a 100644
--- a/Wabbajack.App.Wpf/ViewModels/Compiler/CompilerFileManagerVM.cs
+++ b/Wabbajack.App.Wpf/ViewModels/Compiler/CompilerFileManagerVM.cs
@@ -51,12 +51,22 @@ namespace Wabbajack
}
public class FileTreeViewItemVM : TreeViewItem
{
- public int Depth { get; set; }
+ private CompilerFileState _compilerFileState = CompilerFileState.AutoMatch;
public FileSystemInfo Info { get; set; }
public bool IsDirectory { get; set; }
public Symbol Symbol { get; set; }
- public CompilerFileState CompilerFileState { get; set; }
+ public CompilerFileState CompilerFileState
+ {
+ get => _compilerFileState;
+ set
+ {
+ _compilerFileState = value;
+ SpecialFileState = _compilerFileState != CompilerFileState.AutoMatch;
+ }
+ }
+
public RelativePath PathRelativeToRoot { get; set; }
+ [Reactive] public bool SpecialFileState { get; set; }
public FileTreeViewItemVM(DirectoryInfo info)
{
Info = info;
@@ -84,6 +94,7 @@ namespace Wabbajack
".esp" or ".esl" or ".esm" or ".archive" => Symbol.DocumentTable,
_ => Symbol.Document
};
+ SpecialFileState = CompilerFileState != CompilerFileState.AutoMatch;
}
public override string ToString() => Info.FullName;
}
@@ -158,7 +169,15 @@ namespace Wabbajack
else if(Settings.Include.Contains(item.PathRelativeToRoot)) { item.CompilerFileState = CompilerFileState.Include; }
else if(Settings.Ignore.Contains(item.PathRelativeToRoot)) { item.CompilerFileState = CompilerFileState.Ignore; }
else if(Settings.AlwaysEnabled.Contains(item.PathRelativeToRoot)) { item.CompilerFileState = CompilerFileState.AlwaysEnabled; }
-
+ item.SpecialFileState = item.CompilerFileState != CompilerFileState.AutoMatch;
+ while(!item.SpecialFileState)
+ {
+ item.SpecialFileState = Settings.NoMatchInclude.Any(p => item.PathRelativeToRoot.InFolder(p));
+ item.SpecialFileState = Settings.Include.Any(p => item.PathRelativeToRoot.InFolder(p));
+ item.SpecialFileState = Settings.Ignore.Any(p => item.PathRelativeToRoot.InFolder(p));
+ item.SpecialFileState = Settings.AlwaysEnabled.Any(p => item.PathRelativeToRoot.InFolder(p));
+ break;
+ }
return item;
})
.Concat(parent.EnumerateFiles()