Пример #1
0
            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;
                }
            }
Пример #2
0
            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;
                }
            }
Пример #3
0
        /// <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();
            }
        }
Пример #4
0
        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;
        }
Пример #5
0
        /// <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();
            }
        }