public void HandlePresetComboKey(KeyEventArgs keyEventArgs) { if (this.SelectedPreset == null || !this.UseEncodingPreset) { return; } int currentIndex = this.PresetsService.AllPresets.IndexOf(this.SelectedPreset); if (keyEventArgs.Key == Key.Up) { if (currentIndex > 0) { this.SelectedPreset = this.PresetsService.AllPresets[currentIndex - 1]; keyEventArgs.Handled = true; } } else if (keyEventArgs.Key == Key.Down) { if (currentIndex < this.PresetsService.AllPresets.Count - 1) { this.SelectedPreset = this.PresetsService.AllPresets[currentIndex + 1]; keyEventArgs.Handled = true; } } }
private void PopulateEncodingPreset(bool useEncodingPreset) { if (useEncodingPreset) { PresetViewModel preset = this.presetsService.AllPresets.FirstOrDefault(p => p.Preset.Name == this.Picker.EncodingPreset); if (preset == null) { preset = this.presetsService.AllPresets.First(); } this.SelectedPreset = preset; } else { this.SelectedPreset = null; } }
// Brings up specified job for editing, doing a scan if necessary. public void EditJob(EncodeJobViewModel jobVM, bool isQueueItem = true) { VCJob job = jobVM.Job; if (this.PresetsVM.SelectedPreset.IsModified) { MessageBoxResult dialogResult = Utilities.MessageBox.Show(this, MainRes.SaveChangesPresetMessage, MainRes.SaveChangesPresetTitle, MessageBoxButton.YesNoCancel); if (dialogResult == MessageBoxResult.Yes) { this.PresetsVM.SavePreset(); } else if (dialogResult == MessageBoxResult.No) { this.PresetsVM.RevertPreset(userInitiated: false); } else if (dialogResult == MessageBoxResult.Cancel) { return; } } if (jobVM.HandBrakeInstance != null && jobVM.HandBrakeInstance == this.ScanInstance) { this.ApplyEncodeJobChoices(jobVM); Messenger.Default.Send(new RefreshPreviewMessage()); } else if (jobVM.VideoSource != null) { // Set current scan to cached scan this.scanInstance = jobVM.HandBrakeInstance; this.SourceData = jobVM.VideoSource; this.LoadVideoSourceMetadata(job, jobVM.VideoSourceMetadata); this.ApplyEncodeJobChoices(jobVM); } else { string jobPath = job.SourcePath; string jobRoot = Path.GetPathRoot(jobPath); // We need to reconstruct the source metadata since the program has shut down since the job // was created. var videoSourceMetadata = new VideoSourceMetadata(); switch (job.SourceType) { case SourceType.Dvd: DriveInformation driveInfo = this.DriveCollection.FirstOrDefault(d => string.Compare(d.RootDirectory, jobRoot, StringComparison.OrdinalIgnoreCase) == 0); if (driveInfo == null) { Ioc.Container.GetInstance<IMessageBoxService>().Show(MainRes.DiscNotInDriveError); return; } videoSourceMetadata.Name = driveInfo.VolumeLabel; videoSourceMetadata.DriveInfo = driveInfo; break; case SourceType.File: videoSourceMetadata.Name = Utilities.GetSourceNameFile(job.SourcePath); break; case SourceType.VideoFolder: videoSourceMetadata.Name = Utilities.GetSourceNameFolder(job.SourcePath); break; } this.LoadVideoSourceMetadata(job, videoSourceMetadata); this.StartScan(job.SourcePath, jobVM); } string presetName = isQueueItem ? MainRes.PresetNameRestoredFromQueue : MainRes.PresetNameRestoredFromCompleted; var queuePreset = new PresetViewModel( new Preset { IsBuiltIn = false, IsModified = false, IsQueue = true, Name = presetName, EncodingProfile = jobVM.Job.EncodingProfile.Clone() }); this.PresetsVM.InsertQueuePreset(queuePreset); if (isQueueItem) { // Since it's been sent back for editing, remove the queue item this.ProcessingVM.EncodeQueue.Remove(jobVM); } this.PresetsVM.SaveUserPresets(); }