public LogEntry(DebugLogWindow window, ref LogEntryDescription desc) : base(0, 0, 120, DefaultHeight) { DockStyle = DockStyle.Top; IsScrollable = true; _window = window; Desc = desc; switch (desc.Level) { case LogType.Warning: Group = LogGroup.Warning; Icon = _window._iconWarning; break; case LogType.Log: Group = LogGroup.Info; Icon = _window._iconInfo; break; default: Group = LogGroup.Error; Icon = _window._iconError; break; } }
public LogEntry(DebugLogWindow window, ref LogEntryDescription desc) : base(0, 0, 120, DefaultHeight) { AnchorPreset = AnchorPresets.HorizontalStretchTop; IsScrollable = true; _window = window; Desc = desc; switch (desc.Level) { case LogType.Warning: Group = LogGroup.Warning; Icon = _window.IconWarning; break; case LogType.Info: Group = LogGroup.Info; Icon = _window.IconInfo; break; default: Group = LogGroup.Error; Icon = _window.IconError; break; } }
/// <summary> /// Adds the specified log entry. /// </summary> /// <param name="desc">The log entry description.</param> public void Add(ref LogEntryDescription desc) { if (_entriesPanel == null) { return; } // Create new entry switch (_timestampsFormats) { case InterfaceOptions.TimestampsFormats.Utc: desc.Title = $"[{DateTime.UtcNow}] {desc.Title}"; break; case InterfaceOptions.TimestampsFormats.LocalTime: desc.Title = $"[{DateTime.Now}] {desc.Title}"; break; case InterfaceOptions.TimestampsFormats.TimeSinceStartup: desc.Title = string.Format("[{0:g}] ", TimeSpan.FromSeconds(Time.TimeSinceStartup)) + desc.Title; break; } var newEntry = new LogEntry(this, ref desc); // Enqueue lock (_locker) { _pendingEntries.Add(newEntry); } if (newEntry.Group == LogGroup.Warning && _iconType < LogType.Warning) { _iconType = LogType.Warning; UpdateIcon(); } if (newEntry.Group == LogGroup.Error && _iconType < LogType.Error) { _iconType = LogType.Error; UpdateIcon(); } // Pause on Error (we should do it as fast as possible) if (newEntry.Group == LogGroup.Error && _pauseOnErrorButton.Checked && Editor.StateMachine.CurrentState == Editor.StateMachine.PlayingState) { Editor.Simulation.RequestPausePlay(); } }
private void OnEntryChanged(EntryChangedEvent args) { if (args.SelectedItem == null) { return; } if (Entry == null) { Entry = new LogEntryDescription(); } string currentDoc = _container.Resolve <IStateService>().GetCurrentDocument(); Entry.Content = _container.Resolve <IEntryContentService>().GetErrorContentForLine(currentDoc, args.SelectedItem.LineNumber); Entry.Severity = args.SelectedItem.Severity; Entry.Time = args.SelectedItem.Time; }
/// <summary> /// Adds the specified log entry. /// </summary> /// <param name="desc">The log entry description.</param> public void Add(ref LogEntryDescription desc) { if (_entriesPanel == null) { return; } // Create new entry var newEntry = new LogEntry(this, ref desc); // Enqueue lock (_locker) { _pendingEntries.Add(newEntry); } // Pause on Error (we should do it as fast as possible) if (newEntry.Group == LogGroup.Error && _toolstrip.GetButton(2).Checked&& Editor.StateMachine.CurrentState == Editor.StateMachine.PlayingState) { Editor.Simulation.RequestPausePlay(); } }