Exemple #1
0
        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);
                        }
                    }
                }
            }
        }
Exemple #6
0
 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);
        }
Exemple #8
0
        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);
         }
     }
 }
Exemple #10
0
 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;
        }
Exemple #12
0
 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);
        }
Exemple #14
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 = 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 });
            }
        }
Exemple #16
0
        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);
        }