123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using UnityEditor;
- using UnityEngine.Scripting;
- using Terra.Arbitrator.Settings;
- namespace Terra.Arbitrator.GUI
- {
- [Preserve]
- internal class BetterGitSettingsProvider : SettingsProvider
- {
- private const string SettingsPath = "Project/Better Git";
- private BetterGitSettingsProvider(string path, SettingsScope scope = SettingsScope.User) : base(path, scope) {}
- /// <summary>
- /// This static method is what registers our settings provider with Unity.
- /// </summary>
- [SettingsProvider]
- public static SettingsProvider CreateSettingsProvider()
- {
- var provider = new BetterGitSettingsProvider(SettingsPath, SettingsScope.Project);
- return provider;
- }
- /// <summary>
- /// This is where we draw the UI for our settings page.
- /// </summary>
- public override void OnGUI(string searchContext)
- {
- var username = BetterGitSettings.Username;
- var email = BetterGitSettings.Email;
- var authUsername = BetterGitSettings.AuthUsername;
- var authPassword = BetterGitSettings.AuthPassword;
-
- EditorGUILayout.Space();
- EditorGUILayout.LabelField("Git Credentials", EditorStyles.boldLabel);
- EditorGUILayout.HelpBox("These credentials will be used for Git operations like Push. They are saved per-user and shared across your projects. Changes are saved automatically.", MessageType.Info);
-
- EditorGUILayout.Space();
-
- EditorGUI.BeginChangeCheck();
- username = EditorGUILayout.TextField("Username", username);
- email = EditorGUILayout.TextField("Email Address", email);
-
- EditorGUILayout.Space(20);
- EditorGUILayout.LabelField("HTTPS Authentication", EditorStyles.boldLabel);
- EditorGUILayout.HelpBox("Use these fields to provide credentials for private servers like Gogs or other systems that require a username and password/token for HTTPS operations.", MessageType.Info);
- authUsername = EditorGUILayout.TextField("Auth Username", authUsername);
- authPassword = EditorGUILayout.PasswordField("Auth Password / Token", authPassword);
-
- if (!EditorGUI.EndChangeCheck()) return;
-
- BetterGitSettings.Username = username;
- BetterGitSettings.Email = email;
- BetterGitSettings.AuthUsername = authUsername;
- BetterGitSettings.AuthPassword = authPassword;
- }
- }
- }
|