5633cd2afe
- TODO: Find a way to re-use Replace-Operation-UI by omitting the replacement-option
46 lines
2.0 KiB
C#
46 lines
2.0 KiB
C#
using System.Collections.Generic;
|
|
|
|
using Avalonia;
|
|
using Avalonia.Collections;
|
|
using Avalonia.Controls;
|
|
|
|
using BFR.DataModels;
|
|
using BFR.Operations;
|
|
|
|
namespace BFR
|
|
{
|
|
public partial class MainWindow : Window
|
|
{
|
|
private readonly AvaloniaProperty<string> workingDirectoryProperty =
|
|
AvaloniaProperty.Register<MainWindow, string>(nameof(WorkingDirectory));
|
|
public string WorkingDirectory { get => GetValue(workingDirectoryProperty); set => SetValue(workingDirectoryProperty, value); }
|
|
|
|
public AvaloniaList<FileModel> AllFiles { get; } = new AvaloniaList<FileModel>();
|
|
public AvaloniaList<FileModel> Files { get; } = new AvaloniaList<FileModel>();
|
|
public AvaloniaList<Operation> Operations { get; } = new AvaloniaList<Operation>();
|
|
public int SelectedOperation { get; set; }
|
|
|
|
public int SelectedOperationType { get; set; } = 0;
|
|
public OperationType[] OperationTypes { get; } = new[]
|
|
{
|
|
OperationType.Make<Overwrite>(),
|
|
OperationType.Make<Replace>(),
|
|
OperationType.Make<Remove>(),
|
|
};
|
|
|
|
public readonly AvaloniaProperty<bool> isCommitButtonEnabled =
|
|
AvaloniaProperty.Register<MainWindow, bool>("IsCommitButtonEnabled", defaultValue: false);
|
|
public bool IsCommitButtonEnabled { get => GetValue(isCommitButtonEnabled); set => SetValue(isCommitButtonEnabled, value); }
|
|
public readonly AvaloniaProperty<int> undoCount =
|
|
AvaloniaProperty.Register<MainWindow, int>("UndoCount", defaultValue: 0);
|
|
public int UndoCount { get => GetValue(undoCount); set => SetValue(undoCount, value); }
|
|
private readonly Stack<List<FileModel>> UndoStack = new Stack<List<FileModel>>();
|
|
|
|
// Filters
|
|
public string FilterExtension { get; set; } = "";
|
|
public string FilterPattern { get; set; } = "";
|
|
public bool FilterFullName { get; set; } = false;
|
|
public bool FilterRegex { get; set; } = false;
|
|
}
|
|
}
|