using Unity.PlasticSCM.Editor.Inspector.Properties;
using Unity.PlasticSCM.Editor.Settings;
using Unity.PlasticSCM.Editor.UI;
using UnityEditor;
namespace Unity.PlasticSCM.Editor
{
internal static class SwitchUVCSPlugin
{
internal static UVCSWindow On(UVCSPlugin uvcsPlugin)
{
uvcsPlugin.Enable();
UVCSWindow window = ShowWindow.UVCS();
UVCSPluginIsEnabledPreference.Enable();
return window;
}
internal static UVCSWindow OnIfNeeded(UVCSPlugin uvcsPlugin)
{
if (!UVCSPluginIsEnabledPreference.IsEnabled())
{
UVCSWindow result = On(uvcsPlugin);
ReloadSettings();
return result;
}
return ShowWindow.UVCS();
}
internal static void Off(UVCSPlugin uvcsPlugin)
{
UVCSPluginIsEnabledPreference.Disable();
CloseWindowIfOpened.UVCS();
CloseWindowIfOpened.BranchExplorer();
CleanSelectionIfNeeded();
uvcsPlugin.Shutdown();
}
static void ReloadSettings()
{
UVCSProjectSettingsProvider activeSettingsProvider =
UVCSPlugin.Instance.ActiveUVCSSettingsProvider;
if (activeSettingsProvider == null)
return;
activeSettingsProvider.ReloadSettings();
activeSettingsProvider.Repaint();
}
static void CleanSelectionIfNeeded()
{
if (!(Selection.activeObject is SelectedRepObjectInfoData))
return;
Selection.activeObject = null;
}
}
}