port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
using System.IO;
using Intromat.Interfaces;
using ReactiveUI;
namespace Intromat.ViewModels
{
public abstract class FileViewModel : ReactiveObject, ITreeItem, IFile
{
private bool _isExpanded;
private bool _isSelected;
private readonly FolderViewModel _parent;
private readonly ModuleViewModel _module;
private string _name;
private bool _isDirty;
private readonly string _extension;
public FileViewModel(ModuleViewModel module, FolderViewModel parent, string name, string extension)
{
_extension = extension;
_module = module;
_parent = parent;
_name = name;
}
public abstract ReactiveObject CurrentViewModel { get; }
public string FullPath => Path.Combine(_parent.FullPath, $"{_name}.{_extension}");
public bool IsExpanded
{
get => _isExpanded;
set => this.RaiseAndSetIfChanged(ref _isExpanded, value);
}
public bool IsSelected
{
get => _isSelected;
set => this.RaiseAndSetIfChanged(ref _isSelected, value);
}
public virtual string Name
{
get => _name;
set => this.RaiseAndSetIfChanged(ref _name, value);
}
public FolderViewModel Parent => _parent;
public ModuleViewModel Module => _module;
public bool IsDirty
{
get => _isDirty;
set => this.RaiseAndSetIfChanged(ref _isDirty, value);
}
}
}