]> granicus.if.org Git - handbrake/commitdiff
WinGui: Reselect the last selected preset (if still available) when editing a queue...
authorsr55 <sr55.hb@outlook.com>
Sat, 13 Jan 2018 20:30:44 +0000 (20:30 +0000)
committersr55 <sr55.hb@outlook.com>
Sat, 13 Jan 2018 20:31:06 +0000 (20:31 +0000)
win/CS/HandBrakeWPF/Services/Queue/Model/QueueTask.cs
win/CS/HandBrakeWPF/ViewModels/Interfaces/IMainViewModel.cs
win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
win/CS/HandBrakeWPF/ViewModels/QueueViewModel.cs
win/CS/HandBrakeWPF/ViewModels/StaticPreviewViewModel.cs
win/CS/HandBrakeWPF/ViewModels/SummaryViewModel.cs

index 334842d31fbac052c61ee3e161fe5c004ab2659c..eed9069aa98b8eb0eb92b417a74bb769e7966dd1 100644 (file)
@@ -13,6 +13,7 @@ namespace HandBrakeWPF.Services.Queue.Model
 \r
     using HandBrake.ApplicationServices.Model;\r
 \r
+    using HandBrakeWPF.Services.Presets.Model;\r
     using HandBrakeWPF.Utilities;\r
 \r
     using EncodeTask = HandBrakeWPF.Services.Encode.Model.EncodeTask;\r
@@ -24,6 +25,7 @@ namespace HandBrakeWPF.Services.Queue.Model
     {\r
         private static int id;\r
         private QueueItemStatus status;\r
+        private string presetKey;\r
 \r
         #region Properties\r
 \r
@@ -50,12 +52,19 @@ namespace HandBrakeWPF.Services.Queue.Model
         /// <param name="scannedSourcePath">\r
         /// The scanned Source Path.\r
         /// </param>\r
-        public QueueTask(EncodeTask task, HBConfiguration configuration, string scannedSourcePath)\r
+        /// <param name="currentPreset">\r
+        /// The currently active preset.\r
+        /// </param>\r
+        public QueueTask(EncodeTask task, HBConfiguration configuration, string scannedSourcePath, Preset currentPreset)\r
         {\r
             this.Task = task;\r
             this.Configuration = configuration;\r
             this.Status = QueueItemStatus.Waiting;\r
             this.ScannedSourcePath = scannedSourcePath;\r
+            if (currentPreset != null)\r
+            {\r
+                this.presetKey = currentPreset.Name;\r
+            }\r
 \r
             id = id + 1;\r
             this.Id = string.Format("{0}.{1}", GeneralUtilities.ProcessId, id);\r
@@ -99,6 +108,14 @@ namespace HandBrakeWPF.Services.Queue.Model
 \r
         public QueueStats Statistics { get; set; }\r
 \r
+        public string SelectedPresetKey\r
+        {\r
+            get\r
+            {\r
+                return this.presetKey;\r
+            }\r
+        }\r
+\r
         #endregion\r
 \r
         protected bool Equals(QueueTask other)\r
index bcc72b9dd4ae3afa531f4bb1b57ca2552998ab5c..19b1c000149c4438fc5c48bff57a794f1018f7c8 100644 (file)
@@ -11,6 +11,8 @@ namespace HandBrakeWPF.ViewModels.Interfaces
 {\r
     using System.Windows;\r
 \r
+    using HandBrakeWPF.Services.Queue.Model;\r
+\r
     using EncodeTask = HandBrakeWPF.Services.Encode.Model.EncodeTask;\r
 \r
     /// <summary>\r
@@ -96,7 +98,7 @@ namespace HandBrakeWPF.ViewModels.Interfaces
         /// <param name="task">\r
         /// The task.\r
         /// </param>\r
-        void EditQueueJob(EncodeTask task);\r
+        void EditQueueJob(QueueTask task);\r
 \r
         /// <summary>\r
         /// Shutdown this View\r
index fd65c9c679f12b4e719e4a127467b8244136d9ee..9fce1956c0707109874d744ffc35f79e24110ef3 100644 (file)
@@ -87,7 +87,7 @@ namespace HandBrakeWPF.ViewModels
         private bool isEncoding;\r
         private bool showStatusWindow;\r
         private Preset selectedPreset;\r
-        private EncodeTask queueEditTask;\r
+        private QueueTask queueEditTask;\r
         private int lastEncodePercentage;\r
         private bool isPresetPanelShowing;\r
         private bool showSourceSelection;\r
@@ -1504,7 +1504,7 @@ namespace HandBrakeWPF.ViewModels
                 return false;\r
             }\r
 \r
-            QueueTask task = new QueueTask(new EncodeTask(this.CurrentTask), HBConfigurationFactory.Create(), this.ScannedSource.ScanPath);\r
+            QueueTask task = new QueueTask(new EncodeTask(this.CurrentTask), HBConfigurationFactory.Create(), this.ScannedSource.ScanPath, this.SelectedPreset);\r
 \r
             if (!this.queueProcessor.CheckForDestinationPathDuplicates(task.Task.Destination))\r
             {\r
@@ -1711,13 +1711,15 @@ namespace HandBrakeWPF.ViewModels
         /// <summary>\r
         /// Edit a Queue Task\r
         /// </summary>\r
-        /// <param name="task">\r
+        /// <param name="queueTask">\r
         /// The task.\r
         /// </param>\r
-        public void EditQueueJob(EncodeTask task)\r
+        public void EditQueueJob(QueueTask queueTask)\r
         {\r
             // Rescan the source to make sure it's still valid\r
-            this.queueEditTask = task;\r
+            EncodeTask task = queueTask.Task;\r
+\r
+            this.queueEditTask = queueTask;\r
             this.scanService.Scan(task.Source, task.Title, QueueEditAction, HBConfigurationFactory.Create());\r
         }\r
 \r
@@ -2200,6 +2202,16 @@ namespace HandBrakeWPF.ViewModels
             /* TODO Fix this. */\r
             Execute.OnUIThread(() =>\r
             {\r
+                if (this.queueEditTask != null && this.selectedPreset.Name != this.queueEditTask.SelectedPresetKey)\r
+                {\r
+                    Preset foundPreset = this.presetService.GetPreset(this.queueEditTask.SelectedPresetKey);\r
+                    if (foundPreset != null)\r
+                    {\r
+                        this.selectedPreset = foundPreset;\r
+                        this.NotifyOfPropertyChange(() => this.SelectedPreset);\r
+                    }\r
+                }\r
+\r
                 // Copy all the Scan data into the UI\r
                 scannedSource.CopyTo(this.ScannedSource);\r
                 this.NotifyOfPropertyChange(() => this.ScannedSource);\r
@@ -2207,7 +2219,7 @@ namespace HandBrakeWPF.ViewModels
 \r
                 // Select the Users Title\r
                 this.SelectedTitle = this.ScannedSource.Titles.FirstOrDefault();\r
-                this.CurrentTask = new EncodeTask(queueEditTask);\r
+                this.CurrentTask = new EncodeTask(this.queueEditTask.Task);\r
                 this.NotifyOfPropertyChange(() => this.CurrentTask);\r
                 this.HasSource = true;\r
              \r
@@ -2221,6 +2233,7 @@ namespace HandBrakeWPF.ViewModels
                 this.SelectedEndPoint = end;\r
 \r
                 // Update the Tab Controls\r
+                this.SummaryViewModel.UpdateTask(this.CurrentTask);\r
                 this.PictureSettingsViewModel.UpdateTask(this.CurrentTask);\r
                 this.VideoViewModel.UpdateTask(this.CurrentTask);\r
                 this.FiltersViewModel.UpdateTask(this.CurrentTask);\r
@@ -2229,8 +2242,7 @@ namespace HandBrakeWPF.ViewModels
                 this.ChaptersViewModel.UpdateTask(this.CurrentTask);\r
                 this.AdvancedViewModel.UpdateTask(this.CurrentTask);\r
                 this.MetaDataViewModel.UpdateTask(this.CurrentTask);\r
-                this.SummaryViewModel.UpdateTask(this.CurrentTask);\r
-\r
+              \r
                 // Cleanup\r
                 this.ShowStatusWindow = false;\r
                 this.SourceLabel = this.SourceName;\r
index f2b2d7b9b72bd8f77fb05dd028c2530673b4035b..52a09def300f54d09b2652dd3da7b0c4d34c4073 100644 (file)
@@ -450,7 +450,7 @@ namespace HandBrakeWPF.ViewModels
 \r
             // Pass a copy of the job back to the Main Screen\r
             IMainViewModel mvm = IoC.Get<IMainViewModel>();\r
-            mvm.EditQueueJob(new EncodeTask(task.Task));\r
+            mvm.EditQueueJob(task);\r
         }\r
 \r
         public void OpenSourceDirectory(QueueTask task)\r
index d801dd256d7cd233ec17940bff90b41dd91e5a25..8a61aa610518eca2254fda6c649a905a9dd1f0fb 100644 (file)
@@ -605,7 +605,7 @@ namespace HandBrakeWPF.ViewModels
                 encodeTask.SubtitleTracks.Remove(scanTrack);\r
             }\r
 \r
-            QueueTask task = new QueueTask(encodeTask, HBConfigurationFactory.Create(), this.ScannedSource.ScanPath);\r
+            QueueTask task = new QueueTask(encodeTask, HBConfigurationFactory.Create(), this.ScannedSource.ScanPath, null);\r
             ThreadPool.QueueUserWorkItem(this.CreatePreview, task);\r
         }\r
 \r
index 90676cc0ec0105b63dc73777dd303d15b02e197b..ac12baf2c91e3914ce5ff43a3a5702a535785ac1 100644 (file)
@@ -212,12 +212,7 @@ namespace HandBrakeWPF.ViewModels
         {
             get
             {
-                return this.isMkv;
-            }
-            set
-            {
-                this.isMkv = value;
-                this.NotifyOfPropertyChange(() => this.IsMkv);
+                return this.SelectedOutputFormat == OutputFormat.Mkv;
             }
         }
 
@@ -441,19 +436,18 @@ namespace HandBrakeWPF.ViewModels
                         newExtension = ".m4v";
                         break;
                 }
-
-                this.IsMkv = false;
             }
 
             // Now disable controls that are not required. The Following are for MP4 only!
             if (newExtension == ".mkv")
             {
-                this.IsMkv = true;
                 this.OptimizeMP4 = false;
                 this.IPod5GSupport = false;
                 this.AlignAVStart = false;
             }
 
+            this.NotifyOfPropertyChange(() => this.IsMkv);
+
             // Update The browse file extension display
             if (Path.HasExtension(newExtension))
             {