Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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 });
            }
        }
Ejemplo n.º 3
0
 private void LoadPreviewInBackground(object sender, DoWorkEventArgs args)
 {
     args.Result = FilePreviewer.LoadPreview(args);
 }