private int oldPreviewerParentIndex; // The index of videoPlayer in oldPreviewerParent.Children. /// <summary> /// /// </summary> /// <param name="filePreviewer"> We pass the file previewer object in from MainWindow so it will have the same state</param> /// <param name="browsableFiles"> All of the files that the user can flip between with the arrow buttons</param> /// <param name="currentFile"> The file start with showing</param> public Fullscreen(FilePreviewer filePreviewer, TaggedFilePath[] browsableFiles, int currentFileIndex) { InitializeComponent(); // Open the starting file this.browsableFiles = browsableFiles; this.currentFileIndex = currentFileIndex; // HACK: Embed the file previewer in this window // This way it will have the same state(time, volume, etc.) this.filePreviewer = filePreviewer; oldPreviewerParent = filePreviewer.Parent as Grid; oldPreviewerParentIndex = oldPreviewerParent.Children.IndexOf(filePreviewer); oldPreviewerParent.Children.Remove(filePreviewer); grid.Children.Insert(0, filePreviewer); }
/// <summary> /// Tries to set preview for selected file in archive. /// </summary> /// <param name="filePath">Path to file from archive.</param> private void SetPreview(string fileName) { if (Archive == null || Archive.IsDisposed) { return; } if (!IsEnabled || !Archive.Archive.ContainsFile(fileName)) { return; // TODO set error preview? } int fileIndex = Archive.Archive.GetFileIndex(fileName); if (fileIndex == -1) { return; // TODO set error preview? } PreviewFileType fileType = FilePreviewer.ResolveFileTypeFromFileName(fileName); if (m_previewWorker.IsBusy) { if (fileType == PreviewFileType.Unknown) { m_previewWorker.CancelAsync(); SetUnknownPreview(fileName); return; } else { SetQueueFileName(fileName); } } else { if (fileType == PreviewFileType.Unknown) { SetUnknownPreview(fileName); return; } m_previewWorker.RunWorkerAsync(new object[] { Archive, fileIndex, fileType }); } }
private void LoadPreviewInBackground(object sender, DoWorkEventArgs args) { args.Result = FilePreviewer.LoadPreview(args); }