diff --git a/Editor/Toolbar/Tools/Settings/ToolbarProjectSettings.cs b/Editor/Toolbar/Tools/Settings/ToolbarUnitySettings.cs similarity index 51% rename from Editor/Toolbar/Tools/Settings/ToolbarProjectSettings.cs rename to Editor/Toolbar/Tools/Settings/ToolbarUnitySettings.cs index 29db65b..a59e720 100644 --- a/Editor/Toolbar/Tools/Settings/ToolbarProjectSettings.cs +++ b/Editor/Toolbar/Tools/Settings/ToolbarUnitySettings.cs @@ -2,11 +2,12 @@ namespace Module.NavigationTool.Editor.Toolbar { - internal sealed class ToolbarProjectSettings : IToolbarSettings + internal sealed class ToolbarUnitySettings : IToolbarSettings { - public string Title => "Project"; + public string Title => "Unity Project"; private const string PREF_PROJECT_SAVE_ENABLED = "ToolbarSettings.IsProjectSaveEnabled"; + private const string PREF_PROJECT_SETTINGS_ENABLED = "ToolbarSettings.IsProjectSettingsEnabled"; public static bool IsProjectSaveEnabled { @@ -14,6 +15,12 @@ namespace Module.NavigationTool.Editor.Toolbar set => EditorPrefs.SetBool(PREF_PROJECT_SAVE_ENABLED, value); } + public static bool IsProjectSettingsEnabled + { + get => EditorPrefs.GetBool(PREF_PROJECT_SETTINGS_ENABLED, false); + set => EditorPrefs.SetBool(PREF_PROJECT_SETTINGS_ENABLED, value); + } + public void Initialize() { } @@ -21,6 +28,7 @@ namespace Module.NavigationTool.Editor.Toolbar public void Draw() { IsProjectSaveEnabled = EditorGUILayout.Toggle("Enable Save button", IsProjectSaveEnabled); + IsProjectSettingsEnabled = EditorGUILayout.Toggle("Enable Project Settings button", IsProjectSettingsEnabled); } } } \ No newline at end of file diff --git a/Editor/Toolbar/Tools/Settings/ToolbarProjectSettings.cs.meta b/Editor/Toolbar/Tools/Settings/ToolbarUnitySettings.cs.meta similarity index 100% rename from Editor/Toolbar/Tools/Settings/ToolbarProjectSettings.cs.meta rename to Editor/Toolbar/Tools/Settings/ToolbarUnitySettings.cs.meta diff --git a/Editor/Toolbar/Tools/ToolUnityProjectOpenSettings.cs b/Editor/Toolbar/Tools/ToolUnityProjectOpenSettings.cs new file mode 100644 index 0000000..766546b --- /dev/null +++ b/Editor/Toolbar/Tools/ToolUnityProjectOpenSettings.cs @@ -0,0 +1,39 @@ +using JetBrains.Annotations; +using UnityEditor; +using UnityEngine; +using UTools = UnityEditor.Tools; + +namespace Module.NavigationTool.Editor.Toolbar +{ + [UsedImplicitly] + internal sealed class ToolUnityProjectOpenSettings : AbstractToolbarDrawer + { + public override bool Visible => ToolbarUnitySettings.IsProjectSettingsEnabled; + public override bool Enabled => true; + public override EToolbarPlacement Placement => EToolbarPlacement.Right; + public override int Priority => (int)EToolbarPriority.Low; + + private static readonly GUIContent LABEL = new GUIContent(string.Empty, "Opens Preferences/Project Settings"); + private static readonly string[] OPTIONS = { "Preferences", "Project Settings" }; + + protected override void Draw(Rect rect) + { + int temp = EditorGUI.Popup(rect, -1, OPTIONS, styles.popup); + GUI.Label(rect, styles.iconSettings, styles.button); + GUI.Label(rect, LABEL, styles.labelCenter); + + if (temp == -1) + return; + + if (temp == 0) + SettingsService.OpenUserPreferences("Module/Toolbar"); + else + SettingsService.OpenProjectSettings("Module/Toolbar"); + } + + public override float CalculateWidth() + { + return 24.0f; + } + } +} \ No newline at end of file diff --git a/Editor/Toolbar/Tools/ToolUnityProjectOpenSettings.cs.meta b/Editor/Toolbar/Tools/ToolUnityProjectOpenSettings.cs.meta new file mode 100644 index 0000000..20ccb0c --- /dev/null +++ b/Editor/Toolbar/Tools/ToolUnityProjectOpenSettings.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8a8e120b2d684dc2bf1c158296f6e97c +timeCreated: 1693489784 \ No newline at end of file diff --git a/Editor/Toolbar/Tools/ToolProjectSave.cs b/Editor/Toolbar/Tools/ToolUnityProjectSave.cs similarity index 80% rename from Editor/Toolbar/Tools/ToolProjectSave.cs rename to Editor/Toolbar/Tools/ToolUnityProjectSave.cs index 6258352..ead9e86 100644 --- a/Editor/Toolbar/Tools/ToolProjectSave.cs +++ b/Editor/Toolbar/Tools/ToolUnityProjectSave.cs @@ -6,14 +6,14 @@ using UTools = UnityEditor.Tools; namespace Module.NavigationTool.Editor.Toolbar { [UsedImplicitly] - internal sealed class ToolProjectSave : AbstractToolbarDrawer + internal sealed class ToolUnityProjectSave : AbstractToolbarDrawer { - public override bool Visible => ToolbarProjectSettings.IsProjectSaveEnabled; + public override bool Visible => ToolbarUnitySettings.IsProjectSaveEnabled; public override bool Enabled => true; public override EToolbarPlacement Placement => EToolbarPlacement.Right; public override int Priority => (int)EToolbarPriority.Low; - private static readonly GUIContent LABEL = new GUIContent(string.Empty, "Deletes all PlayerPrefs entries"); + private static readonly GUIContent LABEL = new GUIContent(string.Empty, "Saves all changed assets"); protected override void Draw(Rect rect) { diff --git a/Editor/Toolbar/Tools/ToolProjectSave.cs.meta b/Editor/Toolbar/Tools/ToolUnityProjectSave.cs.meta similarity index 100% rename from Editor/Toolbar/Tools/ToolProjectSave.cs.meta rename to Editor/Toolbar/Tools/ToolUnityProjectSave.cs.meta diff --git a/Editor/Toolbar/Utilities/Styles.cs b/Editor/Toolbar/Utilities/Styles.cs index e9af760..0ab72fc 100644 --- a/Editor/Toolbar/Utilities/Styles.cs +++ b/Editor/Toolbar/Utilities/Styles.cs @@ -19,6 +19,7 @@ namespace Module.NavigationTool.Editor.Toolbar public GUIContent iconSceneSingle; public GUIContent iconDisconnect; public GUIContent iconProject; + public GUIContent iconSettings; private GUISkin skin; @@ -63,6 +64,7 @@ namespace Module.NavigationTool.Editor.Toolbar iconSceneSingle = EditorGUIUtility.IconContent("d_winbtn_win_max_h"); iconDisconnect = EditorGUIUtility.IconContent("d_CacheServerDisconnected"); iconProject = EditorGUIUtility.IconContent("Project"); + iconSettings = new GUIContent(EditorGUIUtility.IconContent("Settings")); } } } \ No newline at end of file