示例#1
0
        public MainViewModel(Settings settings,
                             LanguageManager languageManager,
                             HotKeyManager hotKeyManager,
                             IPreviewWindow previewWindow,
                             IDialogService dialogService,
                             RecordingModel recordingModel,
                             MainModel mainModel) : base(settings, languageManager)
        {
            _dialogService = dialogService;

            ShowPreviewCommand = new DelegateCommand(previewWindow.Show);

            #region Commands
            RefreshCommand = recordingModel
                             .ObserveProperty(model => model.RecorderState)
                             .Select(recorderState => recorderState == RecorderState.NotRecording)
                             .ToReactiveCommand()
                             .WithSubscribe(() =>
            {
                mainModel.Refresh();

                Refreshed?.Invoke();
            });

            OpenOutputFolderCommand = new DelegateCommand(OpenOutputFolder);

            SelectOutputFolderCommand = new DelegateCommand(SelectOutputFolder);

            ResetFFmpegFolderCommand = new DelegateCommand(() => settings.FFmpeg.FolderPath = "");

            TrayLeftClickCommand = new DelegateCommand(() => hotKeyManager.FakeHotKey(settings.Tray.LeftClickAction));
            #endregion
        }