@@ -73,6 +73,11 @@ public partial class FrmLogDocument : DockContent, ILogHandler, ILogContainer, I
7373 /// </summary>
7474 private readonly DockContent mBookmarks ;
7575
76+ /// <summary>
77+ /// The <see cref="DockContent"/> that shows statistic data.
78+ /// </summary>
79+ private readonly DockContent mLogStatistic ;
80+
7681 /// <summary>
7782 /// The <see cref="DockContent"/> that shows filter settings.
7883 /// </summary>
@@ -157,6 +162,11 @@ public IList<LogFilter> Filter
157162 {
158163 LogLevel currentLevel = LogLevel . None ;
159164
165+ if ( tsbShowTrace . Checked )
166+ {
167+ currentLevel |= LogLevel . Trace ;
168+ }
169+
160170 if ( tsbShowDebug . Checked )
161171 {
162172 currentLevel |= LogLevel . Debug ;
@@ -224,46 +234,15 @@ public int TimeShiftValue
224234 /// </summary>
225235 private void InitializeDefaultLayout ( )
226236 {
227- mLogWindow . Show (
228- LogDockPanel
229- , DockState . Document ) ;
230-
231- mLogScript . Show (
232- LogDockPanel
233- , DockState . Document ) ;
234-
235- if ( mMessageDetails != null )
236- {
237- mMessageDetails . Show (
238- LogDockPanel
239- , DockState . DockBottom ) ;
240- }
241-
242- if ( mBookmarks != null )
243- {
244- mBookmarks . Show (
245- LogDockPanel
246- , DockState . DockBottom ) ;
247- }
248-
249- if ( mFilter != null )
250- {
251- mFilter . Show (
252- LogDockPanel
253- , DockState . DockBottom ) ;
254- }
255-
256- if ( mMessageDetails != null )
257- {
258- mMessageDetails . Activate ( ) ;
259- }
260-
261- if ( mLoggerTree != null )
262- {
263- mLoggerTree . Show (
264- LogDockPanel
265- , DockState . DockRight ) ;
266- }
237+ mLogWindow ? . Show ( LogDockPanel , DockState . Document ) ;
238+ mLogScript ? . Show ( LogDockPanel , DockState . Document ) ;
239+ mMessageDetails ? . Show ( LogDockPanel , DockState . DockBottom ) ;
240+ mBookmarks ? . Show ( LogDockPanel , DockState . DockBottom ) ;
241+ mFilter ? . Show ( LogDockPanel , DockState . DockBottom ) ;
242+ mLogStatistic ? . Show ( LogDockPanel , DockState . DockBottom ) ;
243+ mLoggerTree ? . Show ( LogDockPanel , DockState . DockRight ) ;
244+
245+ mMessageDetails ? . Activate ( ) ;
267246 }
268247
269248 /// <summary>
@@ -305,6 +284,7 @@ protected override void OnLoad(EventArgs e)
305284 tsbShowLoggerTree . Checked = mLoggerTree != null && ! mLoggerTree . IsHidden ;
306285 tsbShowBookmarks . Checked = mBookmarks != null && ! mBookmarks . IsHidden ;
307286 tsbShowFilter . Checked = mFilter != null && ! mFilter . IsHidden ;
287+ tsbShowStatistic . Checked = mLogStatistic != null && ! mLogStatistic . IsHidden ;
308288
309289 if ( mLogProvider != null )
310290 {
@@ -369,6 +349,9 @@ private IDockContent GetContentFromPersistString(string persistString)
369349
370350 case "Com.Couchcoding.Logbert.Dialogs.Docking.FrmLogTree" :
371351 return mLoggerTree ;
352+
353+ case "Com.Couchcoding.Logbert.Dialogs.Docking.FrmLogStatistic" :
354+ return mLogStatistic ;
372355 }
373356
374357 Logger . Warn (
@@ -405,9 +388,10 @@ private void LogMessagesChanged(int delta)
405388 }
406389
407390 // Update the log presenter windows.
408- ( ( ILogPresenter ) mLogWindow ) . LogMessagesChanged ( logMessageCopy , delta ) ;
409- ( ( ILogPresenter ) mLoggerTree ) . LogMessagesChanged ( logMessageCopy , delta ) ;
410- ( ( ILogPresenter ) mLogScript ) . LogMessagesChanged ( logMessageCopy , delta ) ;
391+ ( ( ILogPresenter ) mLogWindow ) . LogMessagesChanged ( logMessageCopy , delta ) ;
392+ ( ( ILogPresenter ) mLoggerTree ) . LogMessagesChanged ( logMessageCopy , delta ) ;
393+ ( ( ILogPresenter ) mLogScript ) . LogMessagesChanged ( logMessageCopy , delta ) ;
394+ ( ( ILogPresenter ) mLogStatistic ) . LogMessagesChanged ( logMessageCopy , delta ) ;
411395 }
412396
413397 if ( tsbTraceLastMessage . Checked && mLogMessages . Count > 0 )
@@ -479,6 +463,7 @@ public void ClearAll()
479463 ( ( ILogPresenter ) mBookmarks ) . ClearAll ( ) ;
480464 ( ( ILogPresenter ) mFilter ) . ClearAll ( ) ;
481465 ( ( ILogPresenter ) mLogScript ) . ClearAll ( ) ;
466+ ( ( ILogPresenter ) mLogStatistic ) . ClearAll ( ) ;
482467
483468 // Force an update of the UI.
484469 TmrUpdateTick ( this , EventArgs . Empty ) ;
@@ -628,7 +613,7 @@ private void TsbShowBookmarksClick(object sender, EventArgs e)
628613 }
629614
630615 /// <summary>
631- /// Handles the Click event of the show gilter <see cref="ToolStripButton"/>.
616+ /// Handles the Click event of the show filter <see cref="ToolStripButton"/>.
632617 /// <para>
633618 /// Shows or hides the filter window.
634619 /// </para>
@@ -648,6 +633,27 @@ private void TsbShowFilterClick(object sender, EventArgs e)
648633 }
649634 }
650635
636+ /// <summary>
637+ /// Handles the Click event of the show statistic <see cref="ToolStripButton"/>.
638+ /// <para>
639+ /// Shows or hides the statistic window.
640+ /// </para>
641+ /// </summary>
642+ private void TsbShowStatisticClick ( object sender , EventArgs e )
643+ {
644+ if ( mLogStatistic != null )
645+ {
646+ if ( tsbShowStatistic . Checked )
647+ {
648+ mLogStatistic . Show ( LogDockPanel ) ;
649+ }
650+ else
651+ {
652+ mLogStatistic . Hide ( ) ;
653+ }
654+ }
655+ }
656+
651657 /// <summary>
652658 /// Handles the Click event of the start, stop <see cref="ToolStripButton"/>.
653659 /// <para>
@@ -1162,6 +1168,12 @@ public FrmLogDocument(ILogProvider logProvider)
11621168
11631169 mLogScript = new FrmLogScript ( ( IBookmarkProvider ) mLogWindow , this ) ;
11641170 mBookmarks = new FrmLogBookmarks ( ( IBookmarkProvider ) mLogWindow ) ;
1171+ mLogStatistic = new FrmLogStatistic ( mLogProvider ) ;
1172+
1173+ mLogStatistic . VisibleChanged += ( sender , e ) =>
1174+ {
1175+ tsbShowStatistic . Checked = ! mLogStatistic . IsHidden ;
1176+ } ;
11651177
11661178 mBookmarks . VisibleChanged += ( sender , e ) =>
11671179 {
0 commit comments