]> granicus.if.org Git - handbrake/commitdiff
WinGui: Remove disk space warning from browser and allow the low level to be configur...
authorsr55 <sr55.hb@outlook.com>
Sun, 5 Mar 2017 22:02:26 +0000 (22:02 +0000)
committersr55 <sr55.hb@outlook.com>
Sun, 5 Mar 2017 22:02:26 +0000 (22:02 +0000)
win/CS/HandBrakeWPF/Converters/Options/FileSizeConverter.cs [new file with mode: 0644]
win/CS/HandBrakeWPF/HandBrakeWPF.csproj
win/CS/HandBrakeWPF/Properties/ResourcesUI.Designer.cs
win/CS/HandBrakeWPF/Properties/ResourcesUI.resx
win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs
win/CS/HandBrakeWPF/Views/OptionsView.xaml

diff --git a/win/CS/HandBrakeWPF/Converters/Options/FileSizeConverter.cs b/win/CS/HandBrakeWPF/Converters/Options/FileSizeConverter.cs
new file mode 100644 (file)
index 0000000..219fdf3
--- /dev/null
@@ -0,0 +1,39 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="FileSizeConverter.cs" company="HandBrake Project (http://handbrake.fr)">
+//   This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
+// </copyright>
+// <summary>
+//   Defines the LogLevelConverter type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+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;
+        }
+    }
+}
index d37f10acd05b3ff9daf45df4c77421796d7d65b5..b77dcaddac7048436241146f14f07f79e864f6e5 100644 (file)
     <Compile Include="Converters\Audio\AudioBehaviourConverter.cs" />\r
     <Compile Include="Converters\EnumToDescConverter.cs" />\r
     <Compile Include="Converters\Filters\DenoisePresetConverter.cs" />\r
+    <Compile Include="Converters\Options\FileSizeConverter.cs" />\r
     <Compile Include="Converters\Options\LogLevelConverter.cs" />\r
     <Compile Include="Converters\PresetsMenuConverter.cs" />\r
     <Compile Include="Converters\Queue\PictureSettingsDescConveter.cs" />\r
index c822e1e004e274e624a8ddf6e9ec753774b50d8b..e04dbe4b57a493de942b9987851e80bc18a7391d 100644 (file)
@@ -1194,6 +1194,15 @@ namespace HandBrakeWPF.Properties {
             }\r
         }\r
         \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Low diskspace warning level (GB):.\r
+        /// </summary>\r
+        public static string Options_LowDiskspaceSize {\r
+            get {\r
+                return ResourceManager.GetString("Options_LowDiskspaceSize", resourceCulture);\r
+            }\r
+        }\r
+        \r
         /// <summary>\r
         ///   Looks up a localized string similar to Minimize to system tray (Requires Restart).\r
         /// </summary>\r
index 30e783a93d304471a1c5413449e9a24553eb3a1a..87e584e96efa2d233387c74df3834db3a87fa782 100644 (file)
@@ -890,4 +890,7 @@ This will not affect your current settings in the Subtitle tab.</value>
   <data name="Options_QsvDecodeForNonFullPath" xml:space="preserve">\r
     <value>Use QSV Decoding for non QSV encoders.</value>\r
   </data>\r
+  <data name="Options_LowDiskspaceSize" xml:space="preserve">\r
+    <value>Low diskspace warning level (GB):</value>\r
+  </data>\r
 </root>
\ No newline at end of file
index f48902aecf8b999837b54cd22db8a5a26bcd9d3b..3c62616411a2b9352649ec890104df4ec312bce9 100644 (file)
@@ -1819,21 +1819,6 @@ namespace HandBrakeWPF.ViewModels
 \r
                 this.Destination = saveFileDialog.FileName;\r
 \r
-                // Disk Space Check\r
-                string drive = Path.GetPathRoot(this.Destination);             \r
-                if (drive != null && !drive.StartsWith(@"\\"))\r
-                {\r
-                    DriveInfo c = new DriveInfo(drive);\r
-                    if (c.AvailableFreeSpace < this.userSettingService.GetUserSetting<long>(UserSettingConstants.PauseOnLowDiskspaceLevel))\r
-                    {\r
-                        this.errorService.ShowMessageBox(\r
-                            Resources.MainViewModel_LowDiskSpaceWarning,\r
-                            Resources.MainViewModel_LowDiskSpace,\r
-                            MessageBoxButton.OK,\r
-                            MessageBoxImage.Warning);\r
-                    }\r
-                }\r
-\r
                 // Set the Extension Dropdown. This will also set Mp4/m4v correctly.\r
                 if (!string.IsNullOrEmpty(saveFileDialog.FileName))\r
                 {\r
index 17154f92273e232be01bedafbc10b486c1fa58cd..d261ff16b3057cac9a42e9388301d3ee99e8b1d1 100644 (file)
@@ -91,8 +91,8 @@ namespace HandBrakeWPF.ViewModels
         private bool isClScaling;\r
         private bool showQueueInline;\r
         private bool pauseOnLowDiskspace;\r
-\r
-        private bool useQsvDecodeForNonQsvEnc;\r
+        private long pauseOnLowDiskspaceLevel;\r
+        private bool useQsvDecodeForNonQsvEnc;  \r
 \r
         #endregion\r
 \r
@@ -616,7 +616,24 @@ namespace HandBrakeWPF.ViewModels
                 this.pauseOnLowDiskspace = value;\r
                 this.NotifyOfPropertyChange(() => this.PauseOnLowDiskspace);\r
             }\r
-        }  \r
+        }\r
+\r
+        /// <summary>\r
+        /// Get or sets the value that HB warns about low disk space.\r
+        /// </summary>\r
+        public long PauseOnLowDiskspaceLevel\r
+        {\r
+            get\r
+            {\r
+                return this.pauseOnLowDiskspaceLevel;\r
+            }\r
+\r
+            set\r
+            {\r
+                this.pauseOnLowDiskspaceLevel = value;\r
+                this.NotifyOfPropertyChange(() => this.pauseOnLowDiskspaceLevel);\r
+            }\r
+        }\r
 \r
         /// <summary>\r
         /// Gets or sets PriorityLevelOptions.\r
@@ -1264,7 +1281,8 @@ namespace HandBrakeWPF.ViewModels
 \r
             this.PreventSleep = userSettingService.GetUserSetting<bool>(UserSettingConstants.PreventSleep);\r
             this.PauseOnLowDiskspace = userSettingService.GetUserSetting<bool>(UserSettingConstants.PauseOnLowDiskspace);\r
-            \r
+            this.PauseOnLowDiskspaceLevel = this.userSettingService.GetUserSetting<long>(UserSettingConstants.PauseOnLowDiskspaceLevel);\r
+\r
             // Log Verbosity Level\r
             this.logVerbosityOptions.Clear();\r
             this.logVerbosityOptions.Add(0);\r
@@ -1374,6 +1392,7 @@ namespace HandBrakeWPF.ViewModels
             userSettingService.SetUserSetting(UserSettingConstants.ProcessPriority, this.SelectedPriority);\r
             userSettingService.SetUserSetting(UserSettingConstants.PreventSleep, this.PreventSleep);\r
             userSettingService.SetUserSetting(UserSettingConstants.PauseOnLowDiskspace, this.PauseOnLowDiskspace);\r
+            userSettingService.SetUserSetting(UserSettingConstants.PauseOnLowDiskspaceLevel, this.PauseOnLowDiskspaceLevel);\r
             userSettingService.SetUserSetting(UserSettingConstants.Verbosity, this.SelectedVerbosity);\r
             userSettingService.SetUserSetting(UserSettingConstants.SaveLogWithVideo, this.CopyLogToEncodeDirectory);\r
             userSettingService.SetUserSetting(UserSettingConstants.SaveLogToCopyDirectory, this.CopyLogToSepcficedLocation);\r
index da8bd67c71e16dd6ad83b068a1e3cdc081428a62..8fcd517acab0dc2883bc4d66e3965e12909c3250 100644 (file)
@@ -36,6 +36,7 @@
         <Options:OptionsTabNameConverter x:Key="tabNameConverter" />\r
         <Converters:EnumComboConverter x:Key="enumComboConverter" />\r
         <Options:LogLevelConverter x:Key="LogLevelConverter" />\r
+        <Options:FileSizeConverter x:Key="fileSizeConverter" />\r
         \r
 \r
         <Converters:BooleanToVisibilityConverter x:Key="boolToVisConverter" />\r
                             <CheckBox Content="{x:Static Properties:ResourcesUI.Options_PreventSleep}" IsChecked="{Binding PreventSleep}" />\r
                             <CheckBox Content="{x:Static Properties:ResourcesUI.Options_PauseQueueOnLowDiskSpace}" \r
                                       IsChecked="{Binding PauseOnLowDiskspace}" />\r
-\r
+                            <StackPanel Orientation="Horizontal" Margin="0,5,0,0">\r
+                                <TextBlock Text="{x:Static Properties:ResourcesUI.Options_LowDiskspaceSize}" VerticalAlignment="Center"  Width="250" />\r
+                                <TextBox x:Name="PauseOnLowDiskspaceLEvel" Text="{Binding PauseOnLowDiskspaceLevel, Converter={StaticResource fileSizeConverter}, UpdateSourceTrigger=PropertyChanged}"  Width="120"/>\r
+                            </StackPanel>\r
                             <StackPanel Orientation="Horizontal" Margin="0,10,0,0">\r
                                 <TextBlock Text="{x:Static Properties:ResourcesUI.Options_PreviewScanCount}" VerticalAlignment="Center" Width="250" />\r
                                 <ComboBox Name="numberOfPreviews" ItemsSource="{Binding PreviewPicturesToScan}" SelectedItem="{Binding SelectedPreviewCount}" Width="120" />\r
                                 <TextBlock Text="{x:Static Properties:ResourcesUI.Options_PriorityLevel}" Width="250" VerticalAlignment="Center" />\r
                                 <ComboBox Name="processPriorityLevel" ItemsSource="{Binding PriorityLevelOptions}" SelectedItem="{Binding SelectedPriority}" Width="120" />\r
                             </StackPanel>\r
-\r
-                        </StackPanel>\r
+                  </StackPanel>\r
                     </StackPanel>\r
 \r
                     <StackPanel Orientation="Vertical" Margin="0,10,0,20">\r