public VideoPlayerViewModel(MediaPlayerBuilder playerService,
                                    IVideoLibrary videoLibrary, IVolumeService volumeController, IBrightnessService brightnessController,
                                    IOrientationService orientationService, IStatusBarService statusBarService, IFileService fileService)
        {
            App.DebugLog("");
            this.videoLibrary       = videoLibrary;
            this.orientationService = orientationService;
            this.statusBarService   = statusBarService;
            FilePickerVM            = new FilePickerViewModel(fileService);
            FilePickerVM.SubtitleFileTappedCommand = new Command <object>(o => SubtitleFileTapped(o));
            ToggleFavoriteCommand           = new Command(ToggleFavorite);
            ToggleControlsVisibilityCommand = new Command(ToggleControlsVisibility);
            ToggleAudioTracksCommand        = new Command(ToggleAudioTracks);
            ToggleSubtitlesCommand          = new Command(ToggleSubtitles);
            ToggleMediaInfoCommand          = new Command(ToggleMediaInfo);
            SelectSubtitlesCommand          = new Command <object>(SelectSubtitles, (e) => canChangeSubtitles);
            SelectAudioTrackCommand         = new Command <object>(SelectAudioTrack, (e) => canChangeAudioTrack);
            OpenSubtitlesFromFileCommand    = new Command(OpenSubtitlesFilePicker);

            volumeViewModel     = new VolumeViewModel(volumeController);
            brightnessViewModel = new BrightnessViewModel(brightnessController);

            favoriteScenes = new FavoritesCollection(favoriteSceneDuration);

            VlcPlayerHelper = new VlcPlayerHelper(playerService);
        }
Example #2
0
        private void FileView_DoubleClick()
        {
            FilePickerViewModel vm = DataContext as FilePickerViewModel;

            if (vm.SelectedIndex > -1)
            {
                if (vm.SelectedEntry is FolderEntry folder)
                {
                    if (folder != null)
                    {
                        folder.LoadAllOnDemand();
                        (DataContext as FilePickerViewModel).SelectedFolder = folder;
                    }
                }
                else if (vm.SelectedEntry is FileEntry file)
                {
                    RaiseDialogClosedEvent(file.Path);

                    if (!SuppressCloseCommand && DialogHost.CloseDialogCommand.CanExecute(null, null))
                    {
                        DialogHost.CloseDialogCommand.Execute(null, null);
                    }
                }
            }
        }
Example #3
0
        public FilePicker()
        {
            InitializeComponent();
            FilePickerViewModel vm = DataContext as FilePickerViewModel;

            vm.SetFilters(Filter);
            vm.DefaultDestinationSelected += FilePicker_DefaultDestinationSelected;
        }
Example #4
0
        public override async Task <IScriptCommand> ExecuteAsync(ParameterDic pm)
        {
            IWindowManager   wm     = pm.GetValue <IWindowManager>(WindowManagerKey) ?? new WindowManager();
            IEventAggregator events = pm.GetValue <IEventAggregator>(EventAggregatorKey) ?? new EventAggregator();

            IExplorerInitializer initializer = new ScriptCommandInitializer()
            {
                StartupParameters = pm,
                WindowManager     = wm,
                Events            = events,
                OnModelCreated    = ScriptCommands.Run(OnModelCreatedKey),
                OnViewAttached    = ScriptCommands.Run(OnViewAttachedKey)
            };

            ExplorerViewModel evm = null;

            switch (ExplorerMode)
            {
            case Script.ExplorerMode.Normal:
                evm = new ExplorerViewModel(wm, events)
                {
                    Initializer = initializer
                };
                break;

            case Script.ExplorerMode.FileOpen:
                evm = new FilePickerViewModel(wm, events)
                {
                    Initializer = initializer,
                    PickerMode  = FilePickerMode.Open
                };
                break;

            case Script.ExplorerMode.FileSave:
                evm = new FilePickerViewModel(wm, events)
                {
                    Initializer = initializer,
                    PickerMode  = FilePickerMode.Save
                };
                break;

            case Script.ExplorerMode.DirectoryOpen:
                evm = new DirectoryPickerViewModel(wm, events)
                {
                    Initializer = initializer
                };
                break;

            default:
                return(ResultCommand.Error(new NotSupportedException(ExplorerMode.ToString())));
            }

            logger.Info(String.Format("Creating {0}", evm));
            pm.SetValue(DestinationKey, evm, false);

            return(NextCommand);
        }
Example #5
0
        private void Select_Click(object sender, RoutedEventArgs e)
        {
            FilePickerViewModel vm = DataContext as FilePickerViewModel;

            if (vm.SelectedEntry != null)
            {
                RaiseDialogClosedEvent(vm.SelectedEntry.Path);
            }
            else if (vm.SelectedFolder != null)
            {
                RaiseDialogClosedEvent(vm.SelectedFolder.Path);
            }
        }
Example #6
0
        private void TreeViewItem_Collapsed(object sender, RoutedEventArgs e)
        {
            if (currentFolderSetByMouseDown)
            {
                FilePickerViewModel vm = DataContext as FilePickerViewModel;
                vm.SelectedFolder = originalFolder;
                vm.SelectedEntry  = originalEntry;

                originalFolder = null;
                originalEntry  = null;
                currentFolderSetByMouseDown = false;
            }
        }
Example #7
0
        private void TreeViewItem_Selected(object sender, RoutedEventArgs e)
        {
            TreeViewItem item = e.OriginalSource as TreeViewItem;

            item.BringIntoView();

            if (item.DataContext is FolderEntry entry)
            {
                entry.LoadFilesOnDemand();
                FilePickerViewModel vm = DataContext as FilePickerViewModel;
                vm.SelectedFolder = entry;
                vm.SelectedEntry  = entry;
            }
        }
Example #8
0
        public override async Task <IScriptCommand> ExecuteAsync(ParameterDic pm)
        {
            IWindowManager     wm  = pm.GetValue <IWindowManager>(WindowManagerKey) ?? new WindowManager();
            IExplorerViewModel evm = pm.GetValue <IExplorerViewModel>(ExplorerKey);

            if (evm == null)
            {
                return(ResultCommand.Error(new KeyNotFoundException(ExplorerKey)));
            }
            logger.Info(String.Format("Showing {0}", evm));

            if (evm is DirectoryPickerViewModel)
            {
                DirectoryPickerViewModel dpvm = evm as DirectoryPickerViewModel;
                bool result = wm.ShowDialog(dpvm).Value;
                pm.SetValue(DialogResultKey, result);

                if (result)
                {
                    pm.SetValue(SelectionPathsKey, dpvm.SelectedDirectory.FullPath);
                    pm.SetValue(SelectionEntriesKey, dpvm.SelectedDirectory);
                }
            }
            else if (evm is FilePickerViewModel)
            {
                FilePickerViewModel fpvm = evm as FilePickerViewModel;
                bool result = wm.ShowDialog(fpvm).Value;
                pm.SetValue(DialogResultKey, result);
                if (result)
                {
                    switch (fpvm.PickerMode)
                    {
                    case FilePickerMode.Save:
                        pm.SetValue(SelectionPathsKey, fpvm.FileName);
                        break;

                    case FilePickerMode.Open:
                        pm.SetValue(SelectionPathsKey, fpvm.SelectedFiles.Select(m => m.FullPath).ToArray());
                        pm.SetValue(SelectionEntriesKey, fpvm.SelectedFiles);
                        break;
                    }
                }
            }
            else
            {
                wm.ShowWindow(evm);
            }

            return(NextCommand);
        }
Example #9
0
        private void TreeViewItem_Expanded(object sender, RoutedEventArgs e)
        {
            TreeViewItem item = e.OriginalSource as TreeViewItem;

            if (item.DataContext is FolderEntry entry)
            {
                entry.LoadFoldersOnDemand();
                if (currentFolderSetByMouseDown)
                {
                    FilePickerViewModel vm = DataContext as FilePickerViewModel;
                    vm.SelectedFolder = originalFolder;
                    vm.SelectedEntry  = originalEntry;

                    originalFolder = null;
                    originalEntry  = null;
                    currentFolderSetByMouseDown = false;
                }
            }
        }
Example #10
0
        private void Select_Click(object sender, RoutedEventArgs e)
        {
            FilePickerViewModel vm = DataContext as FilePickerViewModel;

            if (vm.SelectedEntry != null)
            {
                OnDialogClosed(new FilePickerClosedEventArgs(vm.SelectedEntry));
                //RaiseDialogClosedEvent(vm.SelectedEntry.Path);
            }
            else if (vm.SelectedFolder != null)
            {
                OnDialogClosed(new FilePickerClosedEventArgs(vm.SelectedFolder));
                //RaiseDialogClosedEvent(vm.SelectedFolder.Path);
            }

            if (isWindowDialog)
            {
                dialogWindow.Close();
            }
        }
Example #11
0
        private void RootFolderItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (sender is TreeViewItem item)
            {
                item.BringIntoView();

                if (item.DataContext is FolderEntry entry)
                {
                    entry.LoadFoldersOnDemand();
                    entry.LoadFilesOnDemand();
                    FilePickerViewModel vm = DataContext as FilePickerViewModel;
                    originalFolder = vm.SelectedFolder;
                    originalEntry  = vm.SelectedEntry;

                    vm.SelectedFolder = entry;
                    vm.SelectedEntry  = entry;

                    currentFolderSetByMouseDown = true;
                }
            }
        }
Example #12
0
        private void FileView_DoubleClick()
        {
            FilePickerViewModel vm = DataContext as FilePickerViewModel;

            if (vm.SelectedIndex > -1)
            {
                if (vm.SelectedEntry is FolderEntry folder)
                {
                    folder.LoadFoldersOnDemand();
                    if (folder != null)
                    {
                        bool folderAccessSuccess = folder.LoadAllOnDemand();
                        if (folderAccessSuccess)
                        {
                            (DataContext as FilePickerViewModel).SelectedFolder = folder;
                        }
                        else
                        {
                            DialogHost.Show(dialog_accessDenied);
                        }
                    }
                }
                else if (vm.SelectedEntry is FileEntry file)
                {
                    OnDialogClosed(new FilePickerClosedEventArgs(file));
                    //RaiseDialogClosedEvent(file.Path);

                    if (!SuppressCloseCommand && DialogHost.CloseDialogCommand.CanExecute(null, null))
                    {
                        DialogHost.CloseDialogCommand.Execute(null, null);
                    }

                    if (isWindowDialog)
                    {
                        dialogWindow.Close();
                    }
                }
            }
        }
        public TrimmerViewModel(IVideoLibrary videoLibrary, MediaPlayerBuilder playerService,
                                ConverterHelper converterHelper, IFileService fileService)
        {
            App.DebugLog("");
            _videoLibrary    = videoLibrary;
            _converterHelper = converterHelper;
            _fileService     = fileService;
            _converterHelper.ConversionStarted  += ConversionStarted;
            _converterHelper.ConversionProgress += ConversionProgress;
            _converterHelper.ConversionEnded    += ConversionEnded;

            FilePickerVM = new FilePickerViewModel(fileService);
            FilePickerVM.SubtitleFileTappedCommand = new Command <object>(o => SubtitleFileTapped(o));

            VlcPlayerHelper              = new VlcPlayerHelper(playerService);
            vlcPlayerHelper.PlayerReady += VlcPlayerHelper_PlayerReady;

            GoToNextFavSceneCommand  = new Command(GoToNextFavScene);
            GoToPrevFavSceneCommand  = new Command(GoToPrevFavScene);
            IncrementPositionCommand = new Command <object>((e) => IncrementPosition(e));
            DecrementPositionCommand = new Command <object>((e) => DecrementPosition(e));
            JumpToStartCommand       = new Command(() => JumpToStart());
            ChooseSubtitlesCommand   = new Command(ChooseSubtitles);
            ClearSubtitlesCommand    = new Command(ClearSubtitles);

            OffsetOptions = new ObservableCollection <OffsetOption>()
            {
                new OffsetOption("1 sec", TimeSpan.FromSeconds(1)),
                new OffsetOption("10 sec", TimeSpan.FromSeconds(10)),
                new OffsetOption("1 min", TimeSpan.FromMinutes(1)),
                new OffsetOption("10 min", TimeSpan.FromMinutes(10)),
            };
            SelectedOffsetOption = OffsetOptions.First();

            EndPosition   = TimeSpan.FromMinutes(1);
            TotalDuration = EndPosition;
        }
Example #14
0
        private void StepUpHierarchy_Click(object sender, RoutedEventArgs e)
        {
            FilePickerViewModel vm = DataContext as FilePickerViewModel;

            vm.SelectedFolder = vm.SelectedFolder.Parent;
        }
Example #15
0
 public FilePicker()
 {
     InitializeComponent();
     _viewModel = (FilePickerViewModel)rootGrid.DataContext;
     _viewModel.LocationChanged += (sender, args) => this.Location = _viewModel.Location;
 }