49 lines
2.2 KiB
C#
49 lines
2.2 KiB
C#
using System.Collections.Generic;
|
|
|
|
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Collections;
|
|
|
|
using BFR.DataModels;
|
|
using BFR.Operations;
|
|
|
|
namespace BFR
|
|
{
|
|
public partial class MainWindow : Window
|
|
{
|
|
public static 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>(),
|
|
OperationType.Make<Number>(),
|
|
OperationType.Make<Add>(),
|
|
OperationType.Make<Sort>(),
|
|
};
|
|
|
|
public static readonly AvaloniaProperty<bool> IsCommitButtonEnabledProperty =
|
|
AvaloniaProperty.Register<MainWindow, bool>("IsCommitButtonEnabled", defaultValue: false);
|
|
public bool IsCommitButtonEnabled { get => GetValue(IsCommitButtonEnabledProperty); set => SetValue(IsCommitButtonEnabledProperty, value); }
|
|
public static readonly AvaloniaProperty<int> UndoCountProperty =
|
|
AvaloniaProperty.Register<MainWindow, int>("UndoCount", defaultValue: 0);
|
|
public int UndoCount { get => GetValue(UndoCountProperty); set => SetValue(UndoCountProperty, 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;
|
|
}
|
|
}
|