Project: Added button to open preferences and project settings

This commit is contained in:
Anders Ejlersen 2023-08-31 17:41:20 +02:00
parent 5e0634e069
commit 41604b98e7
7 changed files with 57 additions and 5 deletions

View file

@ -2,11 +2,12 @@
namespace Module.NavigationTool.Editor.Toolbar 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_SAVE_ENABLED = "ToolbarSettings.IsProjectSaveEnabled";
private const string PREF_PROJECT_SETTINGS_ENABLED = "ToolbarSettings.IsProjectSettingsEnabled";
public static bool IsProjectSaveEnabled public static bool IsProjectSaveEnabled
{ {
@ -14,6 +15,12 @@ namespace Module.NavigationTool.Editor.Toolbar
set => EditorPrefs.SetBool(PREF_PROJECT_SAVE_ENABLED, value); 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() public void Initialize()
{ {
} }
@ -21,6 +28,7 @@ namespace Module.NavigationTool.Editor.Toolbar
public void Draw() public void Draw()
{ {
IsProjectSaveEnabled = EditorGUILayout.Toggle("Enable Save button", IsProjectSaveEnabled); IsProjectSaveEnabled = EditorGUILayout.Toggle("Enable Save button", IsProjectSaveEnabled);
IsProjectSettingsEnabled = EditorGUILayout.Toggle("Enable Project Settings button", IsProjectSettingsEnabled);
} }
} }
} }

View file

@ -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;
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 8a8e120b2d684dc2bf1c158296f6e97c
timeCreated: 1693489784

View file

@ -6,14 +6,14 @@ using UTools = UnityEditor.Tools;
namespace Module.NavigationTool.Editor.Toolbar namespace Module.NavigationTool.Editor.Toolbar
{ {
[UsedImplicitly] [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 bool Enabled => true;
public override EToolbarPlacement Placement => EToolbarPlacement.Right; public override EToolbarPlacement Placement => EToolbarPlacement.Right;
public override int Priority => (int)EToolbarPriority.Low; 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) protected override void Draw(Rect rect)
{ {

View file

@ -19,6 +19,7 @@ namespace Module.NavigationTool.Editor.Toolbar
public GUIContent iconSceneSingle; public GUIContent iconSceneSingle;
public GUIContent iconDisconnect; public GUIContent iconDisconnect;
public GUIContent iconProject; public GUIContent iconProject;
public GUIContent iconSettings;
private GUISkin skin; private GUISkin skin;
@ -63,6 +64,7 @@ namespace Module.NavigationTool.Editor.Toolbar
iconSceneSingle = EditorGUIUtility.IconContent("d_winbtn_win_max_h"); iconSceneSingle = EditorGUIUtility.IconContent("d_winbtn_win_max_h");
iconDisconnect = EditorGUIUtility.IconContent("d_CacheServerDisconnected"); iconDisconnect = EditorGUIUtility.IconContent("d_CacheServerDisconnected");
iconProject = EditorGUIUtility.IconContent("Project"); iconProject = EditorGUIUtility.IconContent("Project");
iconSettings = new GUIContent(EditorGUIUtility.IconContent("Settings"));
} }
} }
} }