public virtual async Task InitiateAsync() { Settings.Initiate(); Settings.KnownMonitors.AbsoluteCapacity = MaxKnownMonitorsCount; Settings.PropertyChanged += OnSettingsChanged; NotifyIconContainer.ShowIcon("pack://application:,,,/Monitorian.Core;component/Resources/Icons/TrayIcon.ico", ProductInfo.Title); _current.MainWindow = new MainWindow(this); _current.MainWindow.Deactivated += (sender, e) => MonitorsResetByKey(); if (StartupAgent.IsWindowShowExpected()) { _current.MainWindow.Show(); } if (Settings.MakesOperationLog) { _recorder = new OperationRecorder("Initiated"); } await ScanAsync(); StartupAgent.Requested += (sender, e) => e.Response = OnRequested(sender, e.Args); NotifyIconContainer.MouseLeftButtonClick += OnMainWindowShowRequestedBySelf; NotifyIconContainer.MouseRightButtonClick += OnMenuWindowShowRequested; _displayWatcher.Subscribe(() => OnMonitorsChangeInferred(nameof(DisplayWatcher))); _powerWatcher.Subscribe((e) => OnMonitorsChangeInferred($"{nameof(PowerWatcher)} - {e.Mode}"), PowerManagement.GetOnPowerSettingChanged()); _brightnessWatcher.Subscribe((instanceName, brightness) => Update(instanceName, brightness)); }
/// <summary> /// 将字幕加载进该视图模型 /// </summary> /// <param name="subtitle">字幕实例</param> public void LoadSubtitle(Subtitle subtitle) { //清楚视图模型中的字幕集合。 Items.Clear(); if (subtitle != null) { RegisterEventsForSubtitle(subtitle); _subtitle = subtitle; //为视图模型重新添加新字幕中的对话。 foreach (var d in subtitle.Dialogues) { var dialogueViewModel = new DialogueViewModel(d); RegisterEventsForDialogueViewModel(dialogueViewModel); Items.Add(dialogueViewModel); } //AddNewBlankDialogueViewModel(); OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset)); OperationRecorder = new OperationRecorder(); RegisterEventsForOperationRecorder(OperationRecorder); } else { throw new ArgumentNullException(nameof(subtitle)); } }
protected virtual void OnSettingsInitiated() { if (Settings.MakesOperationLog) { Recorder = new("Initiated"); } }
protected virtual void OnSettingsChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(Settings.EnablesUnison)) { OnSettingsEnablesUnisonChanged(); } if (e.PropertyName == nameof(Settings.MakesOperationLog)) { _recorder = Settings.MakesOperationLog ? new OperationRecorder("Enabled") : null; } }
protected virtual void OnSettingsChanged(object sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case nameof(Settings.EnablesUnison): OnSettingsEnablesUnisonChanged(); break; case nameof(Settings.MakesOperationLog): Recorder = Settings.MakesOperationLog ? new("Enabled") : null; break; } }
public void LoadRecorder(OperationRecorder recorder) { _recorder = recorder; RegisterEventsForRecorder(); UpdateButtonStatus(null, null); }
public OperationRecorderViewModel(OperationRecorder recorder) { _recorder = recorder; RegisterEventsForRecorder(); UpdateButtonStatus(null, null); }
/// <summary> /// 为操作记录器注册事件。 /// </summary> /// <param name="recorder"></param> private static void RegisterEventsForOperationRecorder(OperationRecorder recorder) { recorder.Undoing += Recorder_Undoing; recorder.Redoing += Recorder_Redoing; }