public override void OnGUI(string searchContext)
        {
            EditorGUIUtility.labelWidth     = 300;
            ProfilerUserSettings.frameCount = EditorGUILayout.IntSlider(Content.k_FrameCountText, ProfilerUserSettings.frameCount, ProfilerUserSettings.kMinFrameCount, ProfilerUserSettings.kMaxFrameCount);
            if (ProfilerUserSettings.frameCount > 600)
            {
                EditorGUILayout.HelpBox(Content.k_FrameCountWarningText);
            }

            ProfilerUserSettings.showStatsLabelsOnCurrentFrame = EditorGUILayout.Toggle(ProfilerWindow.Styles.showStatsLabelsOnCurrentFrameLabel, ProfilerUserSettings.showStatsLabelsOnCurrentFrame);

            var defaultRecordStateIndex = EditorGUILayout.Popup(Content.k_DefaultRecordState,
                                                                ProfilerUserSettings.rememberLastRecordState ? 0 : (ProfilerUserSettings.defaultRecordState ? 1 : 2), Content.k_RecordStates);

            if (defaultRecordStateIndex == 0)
            {
                ProfilerUserSettings.rememberLastRecordState = true;
            }
            else
            {
                ProfilerUserSettings.rememberLastRecordState = false;
                ProfilerUserSettings.defaultRecordState      = defaultRecordStateIndex == 1;
            }

            var defaultModeIndexIndex = EditorGUILayout.Popup(Content.k_DefaultTargetMode, (int)ProfilerUserSettings.defaultTargetMode, Content.k_TargetModes);

            ProfilerUserSettings.defaultTargetMode = (ProfilerEditorTargetMode)defaultModeIndexIndex;

            GUI.SetNextControlName("connectionID");
            connectionID = EditorGUILayout.TextField("Custom connection ID", connectionID);

            if ((Event.current.isKey && Event.current.keyCode == KeyCode.Space &&
                 GUI.GetNameOfFocusedControl() == "connectionID"))
            {
                connectionID = connectionID.Replace(" ", "_");
                Repaint();
            }

            if ((Event.current.isKey && Event.current.keyCode == KeyCode.Return && GUI.GetNameOfFocusedControl() == "connectionID") || GUI.GetNameOfFocusedControl() != "connectionID")
            {
                ValidateConnectionId();
            }

            Rect r = GUILayoutUtility.GetRect(100, 40);

            if (ProfilerUserSettings.ValidCustomConnectionID(connectionID))
            {
                EditorGUI.HelpBox(r, $"Connection ID cannot contain \", * or be more than 26 characters in length. Spaces will be converted to underscores.",
                                  MessageType.Info);
            }
            else
            {
                EditorGUI.HelpBox(r,
                                  $"Connection ID contains \", * or is more than 26 characters in length and will be reverted",
                                  MessageType.Error);
            }
        }
 private void ValidateConnectionId()
 {
     if (ProfilerUserSettings.ValidCustomConnectionID(connectionID))
     {
         ProfilerUserSettings.customConnectionID = connectionID;
     }
     else
     {
         connectionID = ProfilerUserSettings.customConnectionID;
         Repaint();
     }
 }