예제 #1
0
        private void    CreateStreamForCategory(int consoleIndex, Row row)
        {
            // StreamLog does not receive output from compiler.
            if ((row.log.mode & (Mode.ScriptCompileError | Mode.ScriptCompileWarning)) != 0)
            {
                return;
            }

            // Category has a priority over all rules.
            string category;
            int    hash = row.log.condition.GetHashCode();

            if (MainModule.methodsCategories.TryGetValue(hash, out category) == false)
            {
                ILogContentGetter log = row as ILogContentGetter;

                if (log != null)
                {
                    category = log.Category;
                }
                else
                {
                    category = null;
                }

                MainModule.methodsCategories.Add(hash, category);
            }

            if (category != null)
            {
                for (int j = 0; j < this.streams.Count; j++)
                {
                    if (this.streams[j].onlyCategory == true && this.streams[j].name == category)
                    {
                        return;
                    }
                }

                MainModuleSettings mainSettings = HQ.Settings.Get <MainModuleSettings>();
                StreamLog          stream       = new StreamLog();
                stream.onlyCategory = true;
                stream.name         = category;
                stream.Init(this.console, this);

                foreach (ILogFilter filter in mainSettings.GenerateFilters())
                {
                    stream.groupFilters.filters.Add(filter);
                }

                this.streams.Add(stream);

                if (this.StreamAdded != null)
                {
                    this.StreamAdded(stream);
                }
            }
        }
예제 #2
0
        private Rect    DrawStreamTabs(Rect r)
        {
            float maxWidth = r.width;

            r.y     += 2F;
            r.height = Constants.SingleLineHeight;

            MainModuleSettings mainSettings = HQ.Settings.Get <MainModuleSettings>();
            ConsoleSettings    settings     = HQ.Settings.Get <ConsoleSettings>();
            Vars vars = this.perWindowVars.Get(RowUtility.drawingWindow);

            // Switch stream
            if (settings.inputsManager.Check("Navigation", ConsoleConstants.SwitchNextStreamCommand) == true)
            {
                vars.workingStream += 1;
                if (vars.workingStream >= this.streams.Count)
                {
                    vars.workingStream = 0;
                }

                Event.current.Use();
            }
            else if (settings.inputsManager.Check("Navigation", ConsoleConstants.SwitchPreviousStreamCommand) == true)
            {
                vars.workingStream -= 1;
                // Handle CompilerStream.
                if (vars.workingStream == 0 && this.compilerStream.totalCount == 0)
                {
                    vars.workingStream = this.streams.Count - 1;
                }
                if (vars.workingStream < 0)
                {
                    vars.workingStream = this.streams.Count - 1;
                }

                Event.current.Use();
            }

            for (int i = 0; i < this.streams.Count; i++)
            {
                r = this.streams[i].OnTabGUI(r, i);
            }

            r.width = 16F;

            if (GUI.Button(r, "+", HQ.Settings.Get <GeneralSettings>().MenuButtonStyle) == true)
            {
                if (this.CheckMaxStreams(this.streams.Count - 2) == true)
                {
                    StreamLog stream = new StreamLog();
                    stream.Init(this.console, this);
                    stream.FilterAltered += this.console.SaveModules;
                    stream.OptionAltered += this.console.SaveModules;

                    foreach (ILogFilter filter in mainSettings.GenerateFilters())
                    {
                        stream.groupFilters.filters.Add(filter);
                    }

                    this.streams.Add(stream);

                    this.console.SaveModules();

                    if (this.streams.Count == 1)
                    {
                        vars.workingStream = 0;
                    }

                    if (this.StreamAdded != null)
                    {
                        this.StreamAdded(stream);
                    }

                    stream.RefreshFilteredRows();
                }
            }

            r.x    += r.width;
            r.width = maxWidth - r.x;

            return(r);
        }