void DrawActions()
        {
            if (!activeView.desc.showActions)
            {
                return;
            }

            var table = activeView.table;

            EditorGUILayout.BeginVertical(GUI.skin.box, GUILayout.ExpandWidth(true));

            m_Preferences.actions = Utility.BoldFoldout(m_Preferences.actions, Contents.ActionsFoldout);
            if (m_Preferences.actions)
            {
                EditorGUI.indentLevel++;

                EditorGUILayout.BeginHorizontal();

                GUI.enabled = activeView.desc.showMuteOptions;
                EditorGUILayout.LabelField("Selected :", GUILayout.ExpandWidth(true), GUILayout.Width(80));

                if (GUILayout.Button(Contents.MuteButton, GUILayout.ExpandWidth(true), GUILayout.Width(100)))
                {
                    var analytic      = ProjectAuditorAnalytics.BeginAnalytic();
                    var selectedItems = table.GetSelectedItems();
                    foreach (var item in selectedItems)
                    {
                        SetRuleForItem(item, Rule.Severity.None);
                    }

                    if (!m_Preferences.mutedIssues)
                    {
                        table.SetSelection(new List <int>());
                    }

                    ProjectAuditorAnalytics.SendUIButtonEventWithSelectionSummary(ProjectAuditorAnalytics.UIButton.Mute,
                                                                                  analytic, table.GetSelectedItems());
                }

                if (GUILayout.Button(Contents.UnmuteButton, GUILayout.ExpandWidth(true), GUILayout.Width(100)))
                {
                    var analytic      = ProjectAuditorAnalytics.BeginAnalytic();
                    var selectedItems = table.GetSelectedItems();
                    foreach (var item in selectedItems)
                    {
                        ClearRulesForItem(item);
                    }

                    ProjectAuditorAnalytics.SendUIButtonEventWithSelectionSummary(
                        ProjectAuditorAnalytics.UIButton.Unmute, analytic, table.GetSelectedItems());
                }

                GUI.enabled = true;

                EditorGUILayout.EndHorizontal();

                EditorGUI.indentLevel--;
            }
            EditorGUILayout.EndVertical();
        }
Exemplo n.º 2
0
        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();
        }