159 lines
3.8 KiB
C#
159 lines
3.8 KiB
C#
using Standard;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Collections.Specialized;
|
|
using System.ComponentModel;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Data;
|
|
using System.Windows.Input;
|
|
using System.Windows.Threading;
|
|
using System.Xml.Linq;
|
|
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Header;
|
|
using static VideoConcat.Models.VideoModel;
|
|
|
|
namespace VideoConcat.Models
|
|
{
|
|
|
|
|
|
public class ExtractWindowModel : INotifyPropertyChanged
|
|
{
|
|
|
|
private string _folderPath = "";
|
|
private string _helpInfo = "";
|
|
private bool _canExtractFrame = false;
|
|
private bool _canModify = false;
|
|
private bool _isCanOperate = false;
|
|
private bool _isStart = false;
|
|
private string[] _videos = [];
|
|
private Dispatcher _dispatcher;
|
|
|
|
public string[] videos
|
|
{
|
|
get => _videos;
|
|
set
|
|
{
|
|
_videos = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public bool IsCanOperate
|
|
{
|
|
get => _isCanOperate;
|
|
set
|
|
{
|
|
_isCanOperate = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public bool IsStart
|
|
{
|
|
get => _isStart;
|
|
set
|
|
{
|
|
_isStart = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public Dispatcher Dispatcher
|
|
{
|
|
get => _dispatcher;
|
|
set
|
|
{
|
|
_dispatcher = value;
|
|
}
|
|
}
|
|
|
|
|
|
public class VideoStruct
|
|
{
|
|
public int Index { set; get; }
|
|
public string FileName { set; get; } = "";
|
|
public string Size { set; get; } = "";
|
|
public int Seconds { set; get; }
|
|
public string Status { set; get; } = "";
|
|
public string Progress { set; get; } = "";
|
|
}
|
|
|
|
public string FolderPath
|
|
{
|
|
get { return _folderPath; }
|
|
set
|
|
{
|
|
_folderPath = value;
|
|
OnPropertyChanged(nameof(FolderPath));
|
|
}
|
|
}
|
|
|
|
public string HelpInfo
|
|
{
|
|
get { return _helpInfo; }
|
|
set
|
|
{
|
|
_helpInfo = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public bool CanExtractFrame
|
|
{
|
|
get { return _canExtractFrame; }
|
|
set
|
|
{
|
|
_canExtractFrame = value;
|
|
OnPropertyChanged(nameof(CanExtractFrame));
|
|
}
|
|
}
|
|
public bool CanModify
|
|
{
|
|
get { return _canModify; }
|
|
set
|
|
{
|
|
_canModify = value;
|
|
OnPropertyChanged(nameof(CanModify));
|
|
}
|
|
}
|
|
|
|
public ICommand? BtnOpenFolderCommand { get; set; }
|
|
public ICommand? BtnStartVideoConcatCommand { get; set; }
|
|
public ICommand? BtnStartVideoModifyCommand { get; set; }
|
|
public ICommand? BtnChooseAuditImageCommand { get; set; }
|
|
|
|
public event PropertyChangedEventHandler? PropertyChanged;
|
|
|
|
|
|
protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null)
|
|
{
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
}
|
|
|
|
|
|
public ExtractWindowModel()
|
|
{
|
|
_dispatcher = Dispatcher.CurrentDispatcher;
|
|
}
|
|
|
|
public void SetCanStart()
|
|
{
|
|
CanExtractFrame = false;
|
|
if (videos.Length > 0)
|
|
{
|
|
CanModify = true;
|
|
}
|
|
else
|
|
{
|
|
CanModify = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|