private static void DrawPreferences(SerializedObject preferences)
        {
            if (linkLable == null)
            {
                linkLable = new GUIStyle(EditorStyles.label);
                linkLable.normal.textColor = new Color(0.0f, 0.0f, 1.0f);
                linkLable.hover.textColor  = new Color(0.0f, 0.0f, 1.0f);
                linkLable.active.textColor = new Color(0.5f, 0.0f, 0.5f);
            }
            if (pageStyle == null)
            {
                pageStyle = new GUIStyle
                {
                    padding = new RectOffset(12, 12, 0, 0)
                };
            }

            EditorGUILayout.BeginVertical(pageStyle);

            using (new EditorGUILayout.HorizontalScope())
            {
                EditorGUILayout.LabelField(versionString);

                GUILayout.FlexibleSpace();

                if (GUILayout.Button("Issue Tracker", linkLable))
                {
                    Application.OpenURL(ProductInformation.IssueTracker);
                }
            }

            GUILayout.Space(10);

            using (new EditorGUILayout.HorizontalScope())
            {
                if (GUILayout.Button("Ask a Question"))
                {
                    EditorProductInformation.SubmitIssue(EditorProductInformation.IssueType.Question);
                }
                if (GUILayout.Button("Report a Bug"))
                {
                    EditorProductInformation.SubmitIssue(EditorProductInformation.IssueType.Bug);
                }
                if (GUILayout.Button("Request a Feature"))
                {
                    EditorProductInformation.SubmitIssue(EditorProductInformation.IssueType.Feature);
                }
            }
            if (GUILayout.Button("Check for Updates"))
            {
                AssetIconsUpdateCheckerWindow.Open();
            }

            GUILayout.Space(10);

            preferences.Update();

            EditorGUI.BeginChangeCheck();

            foreach (string propertyString in propertyStrings)
            {
                var property = preferences.FindProperty(propertyString);
                EditorGUILayout.PropertyField(property, new GUIContent(property.displayName, property.tooltip));
            }

            if (EditorGUI.EndChangeCheck())
            {
                preferences.ApplyModifiedProperties();

                EditorPrefs.SetString(AssetIconsPreferences.EditorPrefsKey,
                                      JsonUtility.ToJson(AssetIconsPreferences.CurrentPreferences));
            }

            EditorGUILayout.EndVertical();
        }