private void FileSizeChanged(object sender, LogEventArgs e) { if (sender.GetType().IsAssignableFrom(typeof(LogWindow))) { int diff = e.LineCount - e.PrevLineCount; if (diff < 0) { return; } LogWindowData data = ((LogWindow)sender).Tag as LogWindowData; if (data != null) { lock (data) { data.diffSum = data.diffSum + diff; if (data.diffSum > DIFF_MAX) { data.diffSum = DIFF_MAX; } } //if (this.dockPanel.ActiveContent != null && // this.dockPanel.ActiveContent != sender || data.tailState != 0) if (CurrentLogWindow != null && CurrentLogWindow != sender || data.tailState != 0) { data.dirty = true; } Icon icon = GetIcon(diff, data); BeginInvoke(new SetTabIconDelegate(SetTabIcon), (LogWindow)sender, icon); } } }
private void AddLogWindow(LogWindow logWindow, string title, bool doNotAddToPanel) { logWindow.CloseButton = true; logWindow.TabPageContextMenuStrip = tabContextMenuStrip; SetTooltipText(logWindow, title); logWindow.DockAreas = DockAreas.Document | DockAreas.Float; if (!doNotAddToPanel) { logWindow.Show(dockPanel); } LogWindowData data = new LogWindowData(); data.diffSum = 0; logWindow.Tag = data; lock (logWindowList) { logWindowList.Add(logWindow); } logWindow.FileSizeChanged += FileSizeChanged; logWindow.TailFollowed += TailFollowed; logWindow.Disposed += logWindow_Disposed; logWindow.FileNotFound += logWindow_FileNotFound; logWindow.FileRespawned += logWindow_FileRespawned; logWindow.FilterListChanged += logWindow_FilterListChanged; logWindow.CurrentHighlightGroupChanged += logWindow_CurrentHighlightGroupChanged; logWindow.SyncModeChanged += logWindow_SyncModeChanged; logWindow.Visible = true; }
private void FileNotFound(LogWindow logWin) { LogWindowData data = logWin.Tag as LogWindowData; BeginInvoke(new SetTabIconDelegate(SetTabIcon), logWin, deadIcon); dateTimeDragControl.Visible = false; }
private void FileRespawned(LogWindow logWin) { LogWindowData data = logWin.Tag as LogWindowData; Icon icon = GetIcon(0, data); BeginInvoke(new SetTabIconDelegate(SetTabIcon), logWin, icon); }
private void LedThreadProc() { Thread.CurrentThread.Name = "LED Thread"; while (!shouldStop) { try { Thread.Sleep(200); } catch { return; } lock (logWindowList) { foreach (LogWindow logWindow in logWindowList) { LogWindowData data = logWindow.Tag as LogWindowData; if (data.diffSum > 0) { data.diffSum -= 10; if (data.diffSum < 0) { data.diffSum = 0; } Icon icon = GetIcon(data.diffSum, data); BeginInvoke(new SetTabIconDelegate(SetTabIcon), logWindow, icon); } } } } }
private void reloadToolStripMenuItem_Click(object sender, EventArgs e) { if (CurrentLogWindow != null) { LogWindowData data = CurrentLogWindow.Tag as LogWindowData; Icon icon = GetIcon(0, data); BeginInvoke(new SetTabIconDelegate(SetTabIcon), CurrentLogWindow, icon); CurrentLogWindow.Reload(); } }
private Icon GetIcon(int diff, LogWindowData data) { Icon icon = ledIcons[ GetLevelFromDiff(diff), data.dirty ? 1 : 0, Preferences.showTailState ? data.tailState : 3, data.syncMode ]; return(icon); }
private void ShowLedPeak(LogWindow logWin) { LogWindowData data = logWin.Tag as LogWindowData; lock (data) { data.diffSum = DIFF_MAX; } Icon icon = GetIcon(data.diffSum, data); BeginInvoke(new SetTabIconDelegate(SetTabIcon), logWin, icon); }
private void SetTabIcons(Preferences preferences) { tailLedBrush[0] = new SolidBrush(preferences.showTailColor); CreateIcons(); lock (logWindowList) { foreach (LogWindow logWindow in logWindowList) { LogWindowData data = logWindow.Tag as LogWindowData; Icon icon = GetIcon(data.diffSum, data); BeginInvoke(new SetTabIconDelegate(SetTabIcon), logWindow, icon); } } }
private void logWindow_SyncModeChanged(object sender, SyncModeEventArgs e) { if (!Disposing) { LogWindowData data = ((LogWindow)sender).Tag as LogWindowData; data.syncMode = e.IsTimeSynced ? 1 : 0; Icon icon = GetIcon(data.diffSum, data); BeginInvoke(new SetTabIconDelegate(SetTabIcon), (LogWindow)sender, icon); } else { _logger.Warn("Received SyncModeChanged event while disposing. Event ignored."); } }
private void DisconnectEventHandlers(LogWindow logWindow) { logWindow.FileSizeChanged -= FileSizeChanged; logWindow.TailFollowed -= TailFollowed; logWindow.Disposed -= logWindow_Disposed; logWindow.FileNotFound -= logWindow_FileNotFound; logWindow.FileRespawned -= logWindow_FileRespawned; logWindow.FilterListChanged -= logWindow_FilterListChanged; logWindow.CurrentHighlightGroupChanged -= logWindow_CurrentHighlightGroupChanged; logWindow.SyncModeChanged -= logWindow_SyncModeChanged; LogWindowData data = logWindow.Tag as LogWindowData; //data.tabPage.MouseClick -= tabPage_MouseClick; //data.tabPage.TabDoubleClick -= tabPage_TabDoubleClick; //data.tabPage.ContextMenuStrip = null; //data.tabPage = null; }
private void TailFollowed(object sender, EventArgs e) { if (dockPanel.ActiveContent == null) { return; } if (sender.GetType().IsAssignableFrom(typeof(LogWindow))) { if (dockPanel.ActiveContent == sender) { LogWindowData data = ((LogWindow)sender).Tag as LogWindowData; data.dirty = false; Icon icon = GetIcon(data.diffSum, data); BeginInvoke(new SetTabIconDelegate(SetTabIcon), (LogWindow)sender, icon); } } }
public LogWindow AddFilterTab(FilterPipe pipe, string title, ILogLineColumnizer preProcessColumnizer) { LogWindow logWin = AddFileTab(pipe.FileName, true, title, false, preProcessColumnizer); if (pipe.FilterParams.searchText.Length > 0) { ToolTip tip = new ToolTip(this.components); tip.SetToolTip(logWin, "Filter: \"" + pipe.FilterParams.searchText + "\"" + (pipe.FilterParams.isInvert ? " (Invert match)" : "") + (pipe.FilterParams.columnRestrict ? "\nColumn restrict" : "") ); tip.AutomaticDelay = 10; tip.AutoPopDelay = 5000; LogWindowData data = logWin.Tag as LogWindowData; data.toolTip = tip; } return(logWin); }
/// <summary> /// Creates a temp file with the text content of the clipboard and opens the temp file in a new tab. /// </summary> private void PasteFromClipboard() { if (Clipboard.ContainsText()) { string text = Clipboard.GetText(); string fileName = Path.GetTempFileName(); using (FileStream fStream = new FileStream(fileName, FileMode.Append, FileAccess.Write, FileShare.Read)) using (StreamWriter writer = new StreamWriter(fStream, Encoding.Unicode)) { writer.Write(text); writer.Close(); } string title = "Clipboard"; LogWindow logWindow = AddTempFileTab(fileName, title); LogWindowData data = logWindow.Tag as LogWindowData; if (data != null) { SetTooltipText(logWindow, "Pasted on " + DateTime.Now); } } }
// called from LogWindow when follow tail was changed public void FollowTailChanged(LogWindow logWindow, bool isEnabled, bool offByTrigger) { LogWindowData data = logWindow.Tag as LogWindowData; if (data == null) { return; } if (isEnabled) { data.tailState = 0; } else { data.tailState = offByTrigger ? 2 : 1; } if (this.Preferences.showTailState) { Icon icon = GetIcon(data.diffSum, data); this.BeginInvoke(new SetTabIconDelegate(SetTabIcon), new object[] { logWindow, icon }); } }
private void tabColorToolStripMenuItem_Click(object sender, EventArgs e) { LogWindow logWindow = dockPanel.ActiveContent as LogWindow; LogWindowData data = logWindow.Tag as LogWindowData; if (data == null) { return; } ColorDialog dlg = new ColorDialog(); dlg.Color = data.color; if (dlg.ShowDialog() == DialogResult.OK) { data.color = dlg.Color; setTabColor(logWindow, data.color); } List <ColorEntry> delList = new List <ColorEntry>(); foreach (ColorEntry entry in ConfigManager.Settings.fileColors) { if (entry.fileName.ToLower().Equals(logWindow.FileName.ToLower())) { delList.Add(entry); } } foreach (ColorEntry entry in delList) { ConfigManager.Settings.fileColors.Remove(entry); } ConfigManager.Settings.fileColors.Add(new ColorEntry(logWindow.FileName, dlg.Color)); while (ConfigManager.Settings.fileColors.Count > MAX_COLOR_HISTORY) { ConfigManager.Settings.fileColors.RemoveAt(0); } }
public LogWindow AddFileTab(string givenFileName, bool isTempFile, string title, bool forcePersistenceLoading, ILogLineColumnizer preProcessColumnizer, bool doNotAddToDockPanel) { string logFileName = FindFilenameForSettings(givenFileName); LogWindow win = FindWindowForFile(logFileName); if (win != null) { if (!isTempFile) { AddToFileHistory(givenFileName); } SelectTab(win); return(win); } EncodingOptions encodingOptions = new EncodingOptions(); FillDefaultEncodingFromSettings(encodingOptions); LogWindow logWindow = new LogWindow(this, logFileName, isTempFile, forcePersistenceLoading); logWindow.GivenFileName = givenFileName; if (preProcessColumnizer != null) { logWindow.ForceColumnizerForLoading(preProcessColumnizer); } if (isTempFile) { logWindow.TempTitleName = title; encodingOptions.Encoding = new UnicodeEncoding(false, false); } AddLogWindow(logWindow, title, doNotAddToDockPanel); if (!isTempFile) { AddToFileHistory(givenFileName); } LogWindowData data = logWindow.Tag as LogWindowData; data.color = this.defaultTabColor; setTabColor(logWindow, this.defaultTabColor); //data.tabPage.BorderColor = this.defaultTabBorderColor; if (!isTempFile) { foreach (ColorEntry colorEntry in ConfigManager.Settings.fileColors) { if (colorEntry.fileName.ToLower().Equals(logFileName.ToLower())) { data.color = colorEntry.color; setTabColor(logWindow, colorEntry.color); break; } } } if (!isTempFile) { SetTooltipText(logWindow, logFileName); } if (givenFileName.EndsWith(".lxp")) { logWindow.ForcedPersistenceFileName = givenFileName; } // this.BeginInvoke(new LoadFileDelegate(logWindow.LoadFile), new object[] { logFileName, encoding }); LoadFileDelegate loadFileFx = new LoadFileDelegate(logWindow.LoadFile); loadFileFx.BeginInvoke(logFileName, encodingOptions, null, null); return(logWindow); }