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); } } }
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); }