First commit for private source control. Older commits available on Github.
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEditor.AnimatedValues;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace AYellowpaper.SerializedCollections.Editor
|
||||
{
|
||||
public class EditorUserSettingsProvider : SettingsProvider
|
||||
{
|
||||
public const string PreferencesPath = "Preferences/Serialized Collections";
|
||||
|
||||
private SerializedObject _serializedObject;
|
||||
private SerializedProperty _alwaysShowSearch;
|
||||
private SerializedProperty _pageCountForSearch;
|
||||
private SerializedProperty _elementsPerPage;
|
||||
private AnimBool _searchAnimBool;
|
||||
|
||||
class Styles
|
||||
{
|
||||
}
|
||||
|
||||
[SettingsProvider]
|
||||
public static SettingsProvider CreateProvider()
|
||||
{
|
||||
var provider = new EditorUserSettingsProvider(PreferencesPath, SettingsScope.User);
|
||||
|
||||
provider.keywords = GetSearchKeywordsFromGUIContentProperties<Styles>();
|
||||
return provider;
|
||||
}
|
||||
|
||||
public EditorUserSettingsProvider(string path, SettingsScope scope = SettingsScope.User) : base(path, scope) { }
|
||||
|
||||
public static bool IsSettingsAvailable() => EditorUserSettings.Get() != null;
|
||||
|
||||
public override void OnActivate(string searchContext, VisualElement rootElement)
|
||||
{
|
||||
EnsureSerializedObjectExists();
|
||||
}
|
||||
|
||||
private void EnsureSerializedObjectExists()
|
||||
{
|
||||
if (_serializedObject == null)
|
||||
{
|
||||
_searchAnimBool = new AnimBool();
|
||||
_searchAnimBool.valueChanged.AddListener(new UnityAction(Repaint));
|
||||
_serializedObject = new SerializedObject(EditorUserSettings.Get());
|
||||
_alwaysShowSearch = _serializedObject.FindProperty("_alwaysShowSearch");
|
||||
_pageCountForSearch = _serializedObject.FindProperty("_pageCountForSearch");
|
||||
_elementsPerPage = _serializedObject.FindProperty("_elementsPerPage");
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnGUI(string searchContext)
|
||||
{
|
||||
EnsureSerializedObjectExists();
|
||||
|
||||
EditorGUI.indentLevel = 1;
|
||||
|
||||
_serializedObject.UpdateIfRequiredOrScript();
|
||||
|
||||
EditorGUILayout.PropertyField(_alwaysShowSearch);
|
||||
_searchAnimBool.target = !_alwaysShowSearch.boolValue;
|
||||
using (var group = new EditorGUILayout.FadeGroupScope(_searchAnimBool.faded))
|
||||
{
|
||||
if (group.visible)
|
||||
{
|
||||
EditorGUILayout.PropertyField(_pageCountForSearch);
|
||||
}
|
||||
}
|
||||
EditorGUILayout.PropertyField(_elementsPerPage);
|
||||
|
||||
bool changed =_serializedObject.ApplyModifiedProperties();
|
||||
if (changed)
|
||||
{
|
||||
EditorUserSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user