void ApplySelection() { var analytic = ProjectAuditorAnalytics.BeginAnalytic(); m_ProjectAuditorWindow.SetAreaSelection(m_AreaTable.GetTreeViewSelection()); var payload = new Dictionary <string, string>(); payload["areas"] = m_ProjectAuditorWindow.GetSelectedAreasSummary(); ProjectAuditorAnalytics.SendUIButtonEventWithKeyValues(ProjectAuditorAnalytics.UIButton.AreaSelectApply, analytic, payload); }
void ApplySelection() { var analytic = ProjectAuditorAnalytics.BeginAnalytic(); var selection = m_MultiSelectionTable.GetTreeViewSelection(); m_ProjectAuditorWindow.SetAssemblySelection(selection); var payload = new Dictionary <string, string>(); string[] selectedAsmNames = selection.GetSelectedStrings(m_Names, false); if (selectedAsmNames == null || selectedAsmNames.Length == 0) { payload["numSelected"] = "0"; payload["numUnityAssemblies"] = "0"; } else { payload["numSelected"] = selectedAsmNames.Length.ToString(); payload["numUnityAssemblies"] = selectedAsmNames.Where(name => name.Contains("Unity")).Count().ToString(); } ProjectAuditorAnalytics.SendUIButtonEventWithKeyValues(ProjectAuditorAnalytics.UIButton.AssemblySelectApply, analytic, payload); }
private void DrawFilters() { if (!IsAnalysisValid()) { return; } EditorGUILayout.BeginVertical( GUI.skin.box /*, GUILayout.Width(LayoutSize.ToolbarWidth), GUILayout.ExpandWidth(true)*/); { EditorGUILayout.BeginHorizontal(); var activeModeIndex = GUILayout.Toolbar(m_ActiveModeIndex, m_ModeNames, GUILayout.MaxWidth(LayoutSize.ModeTabWidth) /*, GUILayout.ExpandWidth(true)*/); EditorGUILayout.EndHorizontal(); DrawAssemblyFilter(); DrawAreaFilter(); EditorGUI.BeginChangeCheck(); var searchRect = GUILayoutUtility.GetRect(1, 1, 18, 18, GUILayout.ExpandWidth(true), GUILayout.Width(200)); EditorGUILayout.BeginHorizontal(); if (m_SearchField == null) { m_SearchField = new SearchField(); } m_SearchText = m_SearchField.OnGUI(searchRect, m_SearchText); m_ActiveIssueTable.searchString = m_SearchText; EditorGUILayout.EndHorizontal(); var shouldRefresh = false; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Selected :", GUILayout.ExpandWidth(true), GUILayout.Width(80)); if (GUILayout.Button(Styles.MuteButton, GUILayout.ExpandWidth(true), GUILayout.Width(100))) { var analytic = ProjectAuditorAnalytics.BeginAnalytic(); var selectedItems = m_ActiveIssueTable.GetSelectedItems(); foreach (var item in selectedItems) { SetRuleForItem(item, Rule.Action.None); } if (!m_ProjectAuditor.config.DisplayMutedIssues) { m_ActiveIssueTable.SetSelection(new List <int>()); } ProjectAuditorAnalytics.SendUIButtonEventWithSelectionSummary(ProjectAuditorAnalytics.UIButton.Mute, analytic, m_ActiveIssueTable.GetSelectedItems()); } if (GUILayout.Button(Styles.UnmuteButton, GUILayout.ExpandWidth(true), GUILayout.Width(100))) { var analytic = ProjectAuditorAnalytics.BeginAnalytic(); var selectedItems = m_ActiveIssueTable.GetSelectedItems(); foreach (var item in selectedItems) { ClearRulesForItem(item); } ProjectAuditorAnalytics.SendUIButtonEventWithSelectionSummary(ProjectAuditorAnalytics.UIButton.Unmute, analytic, m_ActiveIssueTable.GetSelectedItems()); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Show :", GUILayout.ExpandWidth(true), GUILayout.Width(80)); GUI.enabled = m_ActiveAnalysisView.desc.showCritical; bool wasShowingCritical = m_ProjectAuditor.config.DisplayOnlyCriticalIssues; m_ProjectAuditor.config.DisplayOnlyCriticalIssues = EditorGUILayout.ToggleLeft("Only Critical Issues", m_ProjectAuditor.config.DisplayOnlyCriticalIssues, GUILayout.Width(160)); GUI.enabled = true; if (wasShowingCritical != m_ProjectAuditor.config.DisplayOnlyCriticalIssues) { var analytic = ProjectAuditorAnalytics.BeginAnalytic(); var payload = new Dictionary <string, string>(); payload["selected"] = m_ActiveAnalysisView.desc.showCritical ? "true" : "false"; ProjectAuditorAnalytics.SendUIButtonEvent(ProjectAuditorAnalytics.UIButton.OnlyCriticalIssues, analytic); } bool wasDisplayingMuted = m_ProjectAuditor.config.DisplayMutedIssues; m_ProjectAuditor.config.DisplayMutedIssues = EditorGUILayout.ToggleLeft("Muted Issues", m_ProjectAuditor.config.DisplayMutedIssues, GUILayout.Width(127)); if (wasDisplayingMuted != m_ProjectAuditor.config.DisplayMutedIssues) { var analytic = ProjectAuditorAnalytics.BeginAnalytic(); var payload = new Dictionary <string, string>(); payload["selected"] = m_ProjectAuditor.config.DisplayMutedIssues ? "true" : "false"; ProjectAuditorAnalytics.SendUIButtonEventWithKeyValues(ProjectAuditorAnalytics.UIButton.ShowMuted, analytic, payload); } EditorGUILayout.EndHorizontal(); if (EditorGUI.EndChangeCheck()) { shouldRefresh = true; } bool activeModeChanged = (m_ActiveModeIndex != activeModeIndex); if (activeModeChanged) { var analytic = ProjectAuditorAnalytics.BeginAnalytic(); m_ActiveModeIndex = activeModeIndex; RefreshDisplay(); if (m_ActiveModeIndex == (int)IssueCategory.ApiCalls) { ProjectAuditorAnalytics.SendUIButtonEvent(ProjectAuditorAnalytics.UIButton.ApiCalls, analytic); } else if (m_ActiveModeIndex == (int)IssueCategory.ProjectSettings) { ProjectAuditorAnalytics.SendUIButtonEvent(ProjectAuditorAnalytics.UIButton.ProjectSettings, analytic); } else { Debug.LogWarning("Unrecognised active mode: couldn't sent analytics event"); } } else if (shouldRefresh || m_ShouldRefresh || m_AnalysisState == AnalysisState.Completed) { RefreshDisplay(); m_ShouldRefresh = false; } } EditorGUILayout.EndVertical(); }
void DrawFilters() { EditorGUILayout.BeginVertical(GUI.skin.box, GUILayout.ExpandWidth(true)); m_Preferences.filters = BoldFoldout(m_Preferences.filters, Styles.FiltersFoldout); if (m_Preferences.filters) { EditorGUI.indentLevel++; DrawAssemblyFilter(); DrawAreaFilter(); EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(Styles.TextSearchLabel, GUILayout.Width(80)); m_TextFilter.searchText = EditorGUILayout.DelayedTextField(m_TextFilter.searchText, GUILayout.Width(180)); activeAnalysisView.table.searchString = m_TextFilter.searchText; m_TextFilter.matchCase = EditorGUILayout.ToggleLeft(Styles.TextSearchCaseSensitive, m_TextFilter.matchCase, GUILayout.Width(160)); if (m_DeveloperMode) { // this is only available in developer mode because it is still too slow at the moment GUI.enabled = activeAnalysisView.desc.showDependencyView; m_TextFilter.searchDependencies = EditorGUILayout.ToggleLeft("Call Tree (slow)", m_TextFilter.searchDependencies, GUILayout.Width(160)); GUI.enabled = true; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Show :", GUILayout.ExpandWidth(true), GUILayout.Width(80)); GUI.enabled = activeAnalysisView.desc.showCritical; bool wasShowingCritical = m_Preferences.onlyCriticalIssues; m_Preferences.onlyCriticalIssues = EditorGUILayout.ToggleLeft("Only Critical Issues", m_Preferences.onlyCriticalIssues, GUILayout.Width(160)); GUI.enabled = true; if (wasShowingCritical != m_Preferences.onlyCriticalIssues) { var analytic = ProjectAuditorAnalytics.BeginAnalytic(); var payload = new Dictionary <string, string>(); payload["selected"] = activeAnalysisView.desc.showCritical ? "true" : "false"; ProjectAuditorAnalytics.SendUIButtonEvent(ProjectAuditorAnalytics.UIButton.OnlyCriticalIssues, analytic); } bool wasDisplayingMuted = m_Preferences.mutedIssues; m_Preferences.mutedIssues = EditorGUILayout.ToggleLeft("Muted Issues", m_Preferences.mutedIssues, GUILayout.Width(127)); if (wasDisplayingMuted != m_Preferences.mutedIssues) { var analytic = ProjectAuditorAnalytics.BeginAnalytic(); var payload = new Dictionary <string, string>(); payload["selected"] = m_Preferences.mutedIssues ? "true" : "false"; ProjectAuditorAnalytics.SendUIButtonEventWithKeyValues(ProjectAuditorAnalytics.UIButton.ShowMuted, analytic, payload); } EditorGUILayout.EndHorizontal(); if (EditorGUI.EndChangeCheck()) { m_ShouldRefresh = true; } EditorGUI.indentLevel--; } EditorGUILayout.EndVertical(); }