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,35 @@
using System;
using DynamicData;
using Intromat.Interfaces;
using Intromat.ViewModels;
namespace Intromat.Actions.Hierarchy
{
public class CreateFileAction : IUndoItem
{
private readonly FileViewModel _file;
private readonly FolderViewModel _parent;
public CreateFileAction(MainViewModel mainVm, FileViewModel file, ModuleViewModel module, FolderViewModel parent)
{
_file = file;
_parent = parent;
File = module;
}
public IFile File { get; }
public void Redo()
{
_parent.Files.Add(_file);
_parent.IsExpanded = true;
_file.IsSelected = true;
}
public void Undo()
{
_parent.Files.Remove(_file);
_parent.IsSelected = true;
}
}
}

View File

@@ -0,0 +1,34 @@
using DynamicData;
using Intromat.Interfaces;
using Intromat.ViewModels;
namespace Intromat.Actions.Hierarchy
{
public class CreateFolderAction : IUndoItem
{
private readonly FolderViewModel _folder;
private readonly FolderViewModel _parent;
public CreateFolderAction(string name, ModuleViewModel module, FolderViewModel parent)
{
_folder = new FolderViewModel(module, parent, name);
_parent = parent;
File = module;
}
public IFile File { get; }
public void Redo()
{
_parent.Folders.Add(_folder);
_parent.IsExpanded = true;
_folder.IsSelected = true;
}
public void Undo()
{
_parent.Folders.Remove(_folder);
_parent.IsSelected = true;
}
}
}

View File

@@ -0,0 +1,34 @@
using System.IO;
using Intromat.Interfaces;
using Intromat.ViewModels;
namespace Intromat.Actions.Hierarchy
{
public class CreateModuleAction : IUndoItem
{
private readonly ModuleViewModel _module;
private readonly ProjectViewModel _parent;
public CreateModuleAction(string name, ProjectViewModel parent)
{
var modulePath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(parent.FullPath)!, name, $"{name}.imodule"));
_module = new ModuleViewModel(parent, name, modulePath);
File = _parent = parent;
}
public IFile File { get; }
public void Redo()
{
_parent.Modules.Add(_module);
_parent.IsExpanded = true;
_module.IsSelected = true;
}
public void Undo()
{
_parent.Modules.Remove(_module);
_parent.IsSelected = true;
}
}
}

View File

@@ -0,0 +1,33 @@
using DynamicData;
using Intromat.Interfaces;
using Intromat.ViewModels;
namespace Intromat.Actions.Hierarchy
{
public class DeleteFileAction : IUndoItem
{
private readonly FileViewModel _file;
private readonly FolderViewModel _parent;
public DeleteFileAction(FileViewModel file)
{
_parent = file.Parent;
File = _parent.Module;
_file = file;
}
public IFile File { get; }
public void Redo()
{
_parent.Files.Remove(_file);
_parent.IsSelected = true;
}
public void Undo()
{
_parent.Files.Add(_file);
_file.IsSelected = true;
}
}
}

View File

@@ -0,0 +1,33 @@
using DynamicData;
using Intromat.Interfaces;
using Intromat.ViewModels;
namespace Intromat.Actions.Hierarchy
{
public class DeleteFolderAction : IUndoItem
{
private readonly FolderViewModel _folder;
private readonly FolderViewModel _parent;
public DeleteFolderAction(FolderViewModel folder)
{
File = folder.Module;
_parent = (FolderViewModel)folder.Parent;
_folder = folder;
}
public IFile File { get; }
public void Redo()
{
_parent.Folders.Remove(_folder);
_parent.IsSelected = true;
}
public void Undo()
{
_parent.Folders.Add(_folder);
_folder.IsSelected = true;
}
}
}

View File

@@ -0,0 +1,31 @@
using Intromat.Interfaces;
using Intromat.ViewModels;
namespace Intromat.Actions.Hierarchy
{
public class DeleteModuleAction : IUndoItem
{
private readonly ModuleViewModel _module;
private readonly ProjectViewModel _parent;
public DeleteModuleAction(ModuleViewModel module)
{
File = _parent = (ProjectViewModel)module.Parent;
_module = module;
}
public IFile File { get; }
public void Redo()
{
_parent.Modules.Remove(_module);
_parent.IsSelected = true;
}
public void Undo()
{
_parent.Modules.Add(_module);
_module.IsSelected = true;
}
}
}