Files
PowerToys/src/modules/imageresizer/ui/ViewModels/InputViewModel.cs
2021-08-25 16:50:35 +01:00

65 lines
1.9 KiB
C#

// Copyright (c) Brice Lambson
// The Brice Lambson licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information. Code forked from Brice Lambson's https://github.com/bricelam/ImageResizer/
using System.Linq;
using System.Windows.Input;
using ImageResizer.Helpers;
using ImageResizer.Models;
using ImageResizer.Properties;
using ImageResizer.Views;
namespace ImageResizer.ViewModels
{
public class InputViewModel : Observable
{
private readonly ResizeBatch _batch;
private readonly MainViewModel _mainViewModel;
private readonly IMainView _mainView;
public InputViewModel(
Settings settings,
MainViewModel mainViewModel,
IMainView mainView,
ResizeBatch batch)
{
_batch = batch;
_mainViewModel = mainViewModel;
_mainView = mainView;
Settings = settings;
if (settings != null)
{
settings.CustomSize.PropertyChanged += (sender, e) => settings.SelectedSize = (CustomSize)sender;
}
ResizeCommand = new RelayCommand(Resize);
CancelCommand = new RelayCommand(Cancel);
}
public Settings Settings { get; }
public ICommand ResizeCommand { get; }
public ICommand CancelCommand { get; }
public bool TryingToResizeGifFiles
{
get
{
// Any of the files is a gif.
return _batch.Files.Any(filename => filename.EndsWith(".gif", System.StringComparison.InvariantCultureIgnoreCase));
}
}
public void Resize()
{
Settings.Save();
_mainViewModel.CurrentPage = new ProgressViewModel(_batch, _mainViewModel, _mainView);
}
public void Cancel()
=> _mainView.Close();
}
}