From 8e5455063adb16ca65ffb501b1737ae97b918e56 Mon Sep 17 00:00:00 2001 From: sr55 Date: Sun, 5 Mar 2017 22:02:26 +0000 Subject: WinGui: Remove disk space warning from browser and allow the low level to be configurable in options. Resolves #590 --- .../Converters/Options/FileSizeConverter.cs | 39 ++++++++++++++++++++++ win/CS/HandBrakeWPF/HandBrakeWPF.csproj | 1 + .../Properties/ResourcesUI.Designer.cs | 9 +++++ win/CS/HandBrakeWPF/Properties/ResourcesUI.resx | 3 ++ win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs | 15 --------- win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs | 27 ++++++++++++--- win/CS/HandBrakeWPF/Views/OptionsView.xaml | 9 +++-- 7 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 win/CS/HandBrakeWPF/Converters/Options/FileSizeConverter.cs (limited to 'win/CS/HandBrakeWPF') diff --git a/win/CS/HandBrakeWPF/Converters/Options/FileSizeConverter.cs b/win/CS/HandBrakeWPF/Converters/Options/FileSizeConverter.cs new file mode 100644 index 000000000..219fdf3a6 --- /dev/null +++ b/win/CS/HandBrakeWPF/Converters/Options/FileSizeConverter.cs @@ -0,0 +1,39 @@ +// -------------------------------------------------------------------------------------------------------------------- +// +// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. +// +// +// Defines the LogLevelConverter type. +// +// -------------------------------------------------------------------------------------------------------------------- + +namespace HandBrakeWPF.Converters.Options +{ + using System; + using System.Globalization; + using System.Windows.Data; + + public class FileSizeConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value != null) + { + return (long)value / 1000 / 1000 / 1000; + } + + return null; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + long size; + if (value != null && long.TryParse(value.ToString(), out size)) + { + return size * 1000 * 1000 * 1000; + } + + return null; + } + } +} diff --git a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj index d37f10acd..b77dcadda 100644 --- a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj +++ b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj @@ -159,6 +159,7 @@ + diff --git a/win/CS/HandBrakeWPF/Properties/ResourcesUI.Designer.cs b/win/CS/HandBrakeWPF/Properties/ResourcesUI.Designer.cs index c822e1e00..e04dbe4b5 100644 --- a/win/CS/HandBrakeWPF/Properties/ResourcesUI.Designer.cs +++ b/win/CS/HandBrakeWPF/Properties/ResourcesUI.Designer.cs @@ -1194,6 +1194,15 @@ namespace HandBrakeWPF.Properties { } } + /// + /// Looks up a localized string similar to Low diskspace warning level (GB):. + /// + public static string Options_LowDiskspaceSize { + get { + return ResourceManager.GetString("Options_LowDiskspaceSize", resourceCulture); + } + } + /// /// Looks up a localized string similar to Minimize to system tray (Requires Restart). /// diff --git a/win/CS/HandBrakeWPF/Properties/ResourcesUI.resx b/win/CS/HandBrakeWPF/Properties/ResourcesUI.resx index 30e783a93..87e584e96 100644 --- a/win/CS/HandBrakeWPF/Properties/ResourcesUI.resx +++ b/win/CS/HandBrakeWPF/Properties/ResourcesUI.resx @@ -890,4 +890,7 @@ This will not affect your current settings in the Subtitle tab. Use QSV Decoding for non QSV encoders. + + Low diskspace warning level (GB): + \ No newline at end of file diff --git a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs index f48902aec..3c6261641 100644 --- a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs @@ -1819,21 +1819,6 @@ namespace HandBrakeWPF.ViewModels this.Destination = saveFileDialog.FileName; - // Disk Space Check - string drive = Path.GetPathRoot(this.Destination); - if (drive != null && !drive.StartsWith(@"\\")) - { - DriveInfo c = new DriveInfo(drive); - if (c.AvailableFreeSpace < this.userSettingService.GetUserSetting(UserSettingConstants.PauseOnLowDiskspaceLevel)) - { - this.errorService.ShowMessageBox( - Resources.MainViewModel_LowDiskSpaceWarning, - Resources.MainViewModel_LowDiskSpace, - MessageBoxButton.OK, - MessageBoxImage.Warning); - } - } - // Set the Extension Dropdown. This will also set Mp4/m4v correctly. if (!string.IsNullOrEmpty(saveFileDialog.FileName)) { diff --git a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs index 17154f922..d261ff16b 100644 --- a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs @@ -91,8 +91,8 @@ namespace HandBrakeWPF.ViewModels private bool isClScaling; private bool showQueueInline; private bool pauseOnLowDiskspace; - - private bool useQsvDecodeForNonQsvEnc; + private long pauseOnLowDiskspaceLevel; + private bool useQsvDecodeForNonQsvEnc; #endregion @@ -616,7 +616,24 @@ namespace HandBrakeWPF.ViewModels this.pauseOnLowDiskspace = value; this.NotifyOfPropertyChange(() => this.PauseOnLowDiskspace); } - } + } + + /// + /// Get or sets the value that HB warns about low disk space. + /// + public long PauseOnLowDiskspaceLevel + { + get + { + return this.pauseOnLowDiskspaceLevel; + } + + set + { + this.pauseOnLowDiskspaceLevel = value; + this.NotifyOfPropertyChange(() => this.pauseOnLowDiskspaceLevel); + } + } /// /// Gets or sets PriorityLevelOptions. @@ -1264,7 +1281,8 @@ namespace HandBrakeWPF.ViewModels this.PreventSleep = userSettingService.GetUserSetting(UserSettingConstants.PreventSleep); this.PauseOnLowDiskspace = userSettingService.GetUserSetting(UserSettingConstants.PauseOnLowDiskspace); - + this.PauseOnLowDiskspaceLevel = this.userSettingService.GetUserSetting(UserSettingConstants.PauseOnLowDiskspaceLevel); + // Log Verbosity Level this.logVerbosityOptions.Clear(); this.logVerbosityOptions.Add(0); @@ -1374,6 +1392,7 @@ namespace HandBrakeWPF.ViewModels userSettingService.SetUserSetting(UserSettingConstants.ProcessPriority, this.SelectedPriority); userSettingService.SetUserSetting(UserSettingConstants.PreventSleep, this.PreventSleep); userSettingService.SetUserSetting(UserSettingConstants.PauseOnLowDiskspace, this.PauseOnLowDiskspace); + userSettingService.SetUserSetting(UserSettingConstants.PauseOnLowDiskspaceLevel, this.PauseOnLowDiskspaceLevel); userSettingService.SetUserSetting(UserSettingConstants.Verbosity, this.SelectedVerbosity); userSettingService.SetUserSetting(UserSettingConstants.SaveLogWithVideo, this.CopyLogToEncodeDirectory); userSettingService.SetUserSetting(UserSettingConstants.SaveLogToCopyDirectory, this.CopyLogToSepcficedLocation); diff --git a/win/CS/HandBrakeWPF/Views/OptionsView.xaml b/win/CS/HandBrakeWPF/Views/OptionsView.xaml index da8bd67c7..8fcd517ac 100644 --- a/win/CS/HandBrakeWPF/Views/OptionsView.xaml +++ b/win/CS/HandBrakeWPF/Views/OptionsView.xaml @@ -36,6 +36,7 @@ + @@ -262,7 +263,10 @@ - + + + + @@ -276,8 +280,7 @@ - - + -- cgit v1.2.3