private void RebuildLogsView() { m_state = UCL_Settings.ConsoleWindowState; var logs = UCL_LogEntries.GetLog(); var preFiltredLogs = new List <UCL_LogInfo>(); foreach (var log in logs) { var tag = UCL_Settings.Instance.GetTag(log.TagName); if (m_state.IsTagEnabled(tag)) { preFiltredLogs.Add(log); } } m_logsView.RebuildLogsView(preFiltredLogs); m_tagsMessagesCount = new Dictionary <string, int>(); foreach (var log in logs) { IncrementMessagesCountForTag(log.TagName); } }
private void DrawToolbar() { GUILayout.BeginHorizontal(EditorStyles.toolbar); { bool clear = GUILayout.Button("Clear", EditorStyles.toolbarButton); if (clear) { UCL_LogEntries.Clear(); } GUILayout.Space(6); bool val = false; if (m_state.DisplayCollapse) { val = UCL_LogEntries.HasFlag(UCL_ConsoleFlags.Collapse); val = GUILayout.Toggle(val, "Collapse", EditorStyles.toolbarButton); UCL_LogEntries.SetFlag(UCL_ConsoleFlags.Collapse, val); } if (m_state.DisplayClearOnPlay) { val = UCL_LogEntries.HasFlag(UCL_ConsoleFlags.ClearOnPlay); val = GUILayout.Toggle(val, "Clear on Play", EditorStyles.toolbarButton); UCL_LogEntries.SetFlag(UCL_ConsoleFlags.ClearOnPlay, val); } if (m_state.DisplayPauseOnError) { val = UCL_LogEntries.HasFlag(UCL_ConsoleFlags.ErrorPause); val = GUILayout.Toggle(val, "Error Pause", EditorStyles.toolbarButton); UCL_LogEntries.SetFlag(UCL_ConsoleFlags.ErrorPause, val); } if (UnDockedUsedTagsCount > 0) { if (GUILayout.Button("Tags (" + UnDockedUsedTagsCount + ")", EditorStyles.toolbarDropDown)) { GenericMenu toolsMenu = new GenericMenu(); foreach (var pair in m_tagsMessagesCount) { var tag = UCL_Settings.Instance.GetTag(pair.Key); if (m_state.IsTagDocked(tag)) { continue; } bool enabled = m_state.IsTagEnabled(tag); toolsMenu.AddItem(new GUIContent(tag.Name + " (" + pair.Value + ")"), enabled, () => { enabled = !enabled; m_state.SetTagEnabledState(tag, enabled); UCL_Settings.SaveConsoleWindowState(m_state); }); } toolsMenu.ShowAsContext(); } } GUILayout.FlexibleSpace(); if (m_state.DisplaySearchBar) { GUILayout.BeginHorizontal(m_toolbarStyle); { GUI.SetNextControlName(SEARCH_BAR_CONTROL_NAME); m_searchString = EditorGUILayout.TextField(m_searchString, m_toolbarSearchTextFieldStyle, GUILayout.MinWidth(200f)); if (GUILayout.Button("", m_toolbarSearchCancelButtonStyle)) { m_searchString = ""; GUI.FocusControl(null); } m_logsView.SerSearthcString(m_searchString); } GUILayout.EndHorizontal(); } for (int i = UCL_Settings.Instance.Tags.Count - 1; i >= 0; i--) { var tag = UCL_Settings.Instance.Tags[i]; //just a stupid workaround we have to make // since gui list plgun an add a null balue to the tags list just for a second if (tag == null) { continue; } if (m_state.IsTagDocked(tag)) { var content = new GUIContent(GetMessagesCountForTag(tag.Name).ToString(), tag.Icon); EditorGUI.BeginChangeCheck(); bool enabled = GUILayout.Toggle(m_state.IsTagEnabled(tag), content, EditorStyles.toolbarButton); if (EditorGUI.EndChangeCheck()) { m_state.SetTagEnabledState(tag, enabled); UCL_Settings.SaveConsoleWindowState(m_state); } } } } GUILayout.EndHorizontal(); }