private void SetTabIcon(LogWindow.LogWindow logWindow, Icon icon) { if (logWindow != null) { logWindow.Icon = icon; logWindow.DockHandler.Pane?.TabStripControl.Invalidate(false); } }
private void RemoveLogWindow(LogWindow.LogWindow logWindow) { lock (_logWindowList) { _logWindowList.Remove(logWindow); } DisconnectEventHandlers(logWindow); }
private void SetTabColor(LogWindow.LogWindow logWindow, Color color) { //tabPage.BackLowColor = color; //tabPage.BackLowColorDisabled = Color.FromArgb(255, // Math.Max(0, color.R - 50), // Math.Max(0, color.G - 50), // Math.Max(0, color.B - 50) // ); }
private void OnFindInExplorerToolStripMenuItemClick(object sender, EventArgs e) { LogWindow.LogWindow logWindow = dockPanel.ActiveContent as LogWindow.LogWindow; Process explorer = new Process(); explorer.StartInfo.FileName = "explorer.exe"; explorer.StartInfo.Arguments = "/e,/select," + logWindow.Title; explorer.StartInfo.UseShellExecute = false; explorer.Start(); }
private void OnLogWindowDisposed(object sender, EventArgs e) { LogWindow.LogWindow logWindow = sender as LogWindow.LogWindow; if (sender == CurrentLogWindow) { ChangeCurrentLogWindow(null); } RemoveLogWindow(logWindow); logWindow.Tag = null; }
private void ShowLedPeak(LogWindow.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 RemoveAndDisposeLogWindow(LogWindow.LogWindow logWindow, bool dontAsk) { if (CurrentLogWindow == logWindow) { ChangeCurrentLogWindow(null); } lock (_logWindowList) { _logWindowList.Remove(logWindow); } logWindow.Close(dontAsk); }
public void ScrollAllTabsToTimestamp(DateTime timestamp, LogWindow.LogWindow senderWindow) { lock (_logWindowList) { foreach (LogWindow.LogWindow logWindow in _logWindowList) { if (logWindow != senderWindow) { if (logWindow.ScrollToTimestamp(timestamp, false, false)) { ShowLedPeak(logWindow); } } } } }
private void DisconnectEventHandlers(LogWindow.LogWindow logWindow) { logWindow.FileSizeChanged -= OnFileSizeChanged; logWindow.TailFollowed -= OnTailFollowed; logWindow.Disposed -= OnLogWindowDisposed; logWindow.FileNotFound -= OnLogWindowFileNotFound; logWindow.FileRespawned -= OnLogWindowFileRespawned; logWindow.FilterListChanged -= OnLogWindowFilterListChanged; logWindow.CurrentHighlightGroupChanged -= OnLogWindowCurrentHighlightGroupChanged; logWindow.SyncModeChanged -= OnLogWindowSyncModeChanged; LogWindowData data = logWindow.Tag as LogWindowData; //data.tabPage.MouseClick -= tabPage_MouseClick; //data.tabPage.TabDoubleClick -= tabPage_TabDoubleClick; //data.tabPage.ContextMenuStrip = null; //data.tabPage = null; }
public LogWindow.LogWindow AddMultiFileTab(string[] fileNames) { if (fileNames.Length < 1) { return(null); } LogWindow.LogWindow logWindow = new LogWindow.LogWindow(this, fileNames[fileNames.Length - 1], false, false); AddLogWindow(logWindow, fileNames[fileNames.Length - 1], false); multiFileToolStripMenuItem.Checked = true; multiFileEnabledStripMenuItem.Checked = true; EncodingOptions encodingOptions = new EncodingOptions(); FillDefaultEncodingFromSettings(encodingOptions); BeginInvoke(new LoadMultiFilesDelegate(logWindow.LoadFilesAsMulti), fileNames, encodingOptions); AddToFileHistory(fileNames[0]); return(logWindow); }
public LogWindow.LogWindow AddFilterTab(FilterPipe pipe, string title, ILogLineColumnizer preProcessColumnizer) { LogWindow.LogWindow logWin = AddFileTab(pipe.FileName, true, title, false, preProcessColumnizer); if (pipe.FilterParams.searchText.Length > 0) { ToolTip tip = new ToolTip(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); }
private IDockContent DeserializeDockContent(string persistString) { if (persistString.Equals(WindowTypes.BookmarkWindow.ToString())) { return(_bookmarkWindow); } if (persistString.StartsWith(WindowTypes.LogWindow.ToString())) { string fileName = persistString.Substring(WindowTypes.LogWindow.ToString().Length + 1); LogWindow.LogWindow win = FindWindowForFile(fileName); if (win != null) { return(win); } _logger.Warn("Layout data contains non-existing LogWindow for {0}", fileName); } return(null); }
private void OnTabColorToolStripMenuItemClick(object sender, EventArgs e) { LogWindow.LogWindow logWindow = dockPanel.ActiveContent as LogWindow.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); } }
/// <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 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 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 (Preferences.showTailState) { Icon icon = GetIcon(data.diffSum, data); BeginInvoke(new SetTabIconDelegate(SetTabIcon), logWindow, icon); } }
private void SetTooltipText(LogWindow.LogWindow logWindow, string logFileName) { logWindow.ToolTipText = logFileName; }
public void SelectTab(LogWindow.LogWindow logWindow) { logWindow.Activate(); }
private void DisconnectBookmarkWindow(LogWindow.LogWindow logWindow) { _bookmarkWindow.SetBookmarkData(null); _bookmarkWindow.SetCurrentFile(null); }
private void DisconnectToolWindows(LogWindow.LogWindow logWindow) { DisconnectBookmarkWindow(logWindow); }
private void ChangeCurrentLogWindow(LogWindow.LogWindow newLogWindow) { if (newLogWindow == _currentLogWindow) { return; // do nothing if wishing to set the same window } LogWindow.LogWindow oldLogWindow = _currentLogWindow; _currentLogWindow = newLogWindow; string titleName = _showInstanceNumbers ? "LogExpert #" + _instanceNumber : "LogExpert"; if (oldLogWindow != null) { oldLogWindow.StatusLineEvent -= OnStatusLineEvent; oldLogWindow.ProgressBarUpdate -= OnProgressBarUpdate; oldLogWindow.GuiStateUpdate -= OnGuiStateUpdate; oldLogWindow.ColumnizerChanged -= OnColumnizerChanged; oldLogWindow.BookmarkAdded -= OnBookmarkAdded; oldLogWindow.BookmarkRemoved -= OnBookmarkRemoved; oldLogWindow.BookmarkTextChanged -= OnBookmarkTextChanged; DisconnectToolWindows(oldLogWindow); } if (newLogWindow != null) { newLogWindow.StatusLineEvent += OnStatusLineEvent; newLogWindow.ProgressBarUpdate += OnProgressBarUpdate; newLogWindow.GuiStateUpdate += OnGuiStateUpdate; newLogWindow.ColumnizerChanged += OnColumnizerChanged; newLogWindow.BookmarkAdded += OnBookmarkAdded; newLogWindow.BookmarkRemoved += OnBookmarkRemoved; newLogWindow.BookmarkTextChanged += OnBookmarkTextChanged; if (newLogWindow.IsTempFile) { Text = titleName + @" - " + newLogWindow.TempTitleName; } else { Text = titleName + @" - " + newLogWindow.FileName; } multiFileToolStripMenuItem.Checked = CurrentLogWindow.IsMultiFile; multiFileToolStripMenuItem.Enabled = true; multiFileEnabledStripMenuItem.Checked = CurrentLogWindow.IsMultiFile; cellSelectModeToolStripMenuItem.Checked = true; cellSelectModeToolStripMenuItem.Enabled = true; closeFileToolStripMenuItem.Enabled = true; searchToolStripMenuItem.Enabled = true; filterToolStripMenuItem.Enabled = true; goToLineToolStripMenuItem.Enabled = true; //ConnectToolWindows(newLogWindow); } else { Text = titleName; multiFileToolStripMenuItem.Checked = false; multiFileEnabledStripMenuItem.Checked = false; checkBoxFollowTail.Checked = false; mainMenuStrip.Enabled = true; timeshiftToolStripMenuItem.Enabled = false; timeshiftToolStripMenuItem.Checked = false; timeshiftMenuTextBox.Text = ""; timeshiftMenuTextBox.Enabled = false; multiFileToolStripMenuItem.Enabled = false; cellSelectModeToolStripMenuItem.Checked = false; cellSelectModeToolStripMenuItem.Enabled = false; closeFileToolStripMenuItem.Enabled = false; searchToolStripMenuItem.Enabled = false; filterToolStripMenuItem.Enabled = false; goToLineToolStripMenuItem.Enabled = false; dragControlDateTime.Visible = false; } }
private void OnCopyPathToClipboardToolStripMenuItemClick(object sender, EventArgs e) { LogWindow.LogWindow logWindow = dockPanel.ActiveContent as LogWindow.LogWindow; Clipboard.SetText(logWindow.Title); }
private void StartTool(string cmd, string args, bool sysoutPipe, string columnizerName, string workingDir) { if (string.IsNullOrEmpty(cmd)) { return; } Process process = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo(cmd, args); if (!Util.IsNull(workingDir)) { startInfo.WorkingDirectory = workingDir; } process.StartInfo = startInfo; process.EnableRaisingEvents = true; if (sysoutPipe) { ILogLineColumnizer columnizer = ColumnizerPicker.DecideColumnizerByName(columnizerName, PluginRegistry.GetInstance().RegisteredColumnizers); _logger.Info("Starting external tool with sysout redirection: {0} {1}", cmd, args); startInfo.UseShellExecute = false; startInfo.RedirectStandardOutput = true; //process.OutputDataReceived += pipe.DataReceivedEventHandler; try { process.Start(); } catch (Win32Exception e) { _logger.Error(e); MessageBox.Show(e.Message); return; } SysoutPipe pipe = new SysoutPipe(process.StandardOutput); LogWindow.LogWindow logWin = AddTempFileTab(pipe.FileName, CurrentLogWindow.IsTempFile ? CurrentLogWindow.TempTitleName : Util.GetNameFromPath(CurrentLogWindow.FileName) + "->E"); logWin.ForceColumnizer(columnizer); process.Exited += pipe.ProcessExitedEventHandler; //process.BeginOutputReadLine(); } else { _logger.Info("Starting external tool: {0} {1}", cmd, args); try { startInfo.UseShellExecute = false; process.Start(); } catch (Exception e) { _logger.Error(e); MessageBox.Show(e.Message); } } }
public LogWindow.LogWindow AddFileTab(string givenFileName, bool isTempFile, string title, bool forcePersistenceLoading, ILogLineColumnizer preProcessColumnizer, bool doNotAddToDockPanel = false) { string logFileName = FindFilenameForSettings(givenFileName); LogWindow.LogWindow win = FindWindowForFile(logFileName); if (win != null) { if (!isTempFile) { AddToFileHistory(givenFileName); } SelectTab(win); return(win); } EncodingOptions encodingOptions = new EncodingOptions(); FillDefaultEncodingFromSettings(encodingOptions); LogWindow.LogWindow logWindow = new LogWindow.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 = _defaultTabColor; SetTabColor(logWindow, _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 = logWindow.LoadFile; loadFileFx.BeginInvoke(logFileName, encodingOptions, null, null); return(logWindow); }