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 }