150 lines
4.8 KiB
C#
150 lines
4.8 KiB
C#
using System.Linq;
|
|
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using UnityEngine.UIElements;
|
|
using UnityEditor.UIElements;
|
|
|
|
using Codice.CM.Common;
|
|
using PlasticGui;
|
|
using Unity.PlasticSCM.Editor;
|
|
using Unity.PlasticSCM.Editor.UI.UIElements;
|
|
using Unity.PlasticSCM.Editor.Inspector;
|
|
using Unity.PlasticSCM.Editor.SceneView;
|
|
|
|
internal class TurnOffPlasticWindow : EditorWindow
|
|
{
|
|
internal static void ShowWindow()
|
|
{
|
|
TurnOffPlasticWindow window = GetWindow<TurnOffPlasticWindow>();
|
|
window.titleContent = new GUIContent(PlasticLocalization.GetString(
|
|
PlasticLocalization.Name.TurnOffPlasticSCM));
|
|
window.minSize = new Vector2(500, 350);
|
|
window.maxSize = new Vector2(500, 350);
|
|
window.Show();
|
|
}
|
|
|
|
void OnEnable()
|
|
{
|
|
mProgress = 0;
|
|
EditorApplication.update += UpdateProgress;
|
|
InitializeLayoutAndStyles();
|
|
BuildComponents();
|
|
}
|
|
|
|
void OnDestroy()
|
|
{
|
|
Dispose();
|
|
}
|
|
|
|
void Dispose()
|
|
{
|
|
mTurnOffButton.clicked -= CreateButton_Clicked;
|
|
EditorApplication.update -= UpdateProgress;
|
|
}
|
|
|
|
void InitializeLayoutAndStyles()
|
|
{
|
|
mRoot = rootVisualElement;
|
|
mRoot.LoadLayout(typeof(TurnOffPlasticWindow).Name);
|
|
mRoot.LoadStyle(typeof(TurnOffPlasticWindow).Name);
|
|
}
|
|
|
|
void BuildComponents()
|
|
{
|
|
mRoot = rootVisualElement;
|
|
mTurnOffButton = mRoot.Query<Button>("turnoff-button").First();
|
|
mTurnOffButton.text = PlasticLocalization.GetString(
|
|
PlasticLocalization.Name.TurnOffPlasticSCM);
|
|
mTurnOffButton.clicked += CreateButton_Clicked;
|
|
|
|
mTurnOffLabel = mRoot.Query<Label>("turnoff-label").First();
|
|
mTurnOffLabel.text = PlasticLocalization.GetString(
|
|
PlasticLocalization.Name.TurnOffPlasticSCMDescrition);
|
|
|
|
mTurnedOffLabel = mRoot.Query<Label>("progress-label").First();
|
|
mTurnedOffLabel.text = string.Empty;
|
|
|
|
mRoot.Add(mProgressBar = new ProgressBar());
|
|
mProgressBar.style.marginLeft = 120f;
|
|
mProgressBar.style.marginBottom = 2f;
|
|
mProgressBar.title = string.Empty;
|
|
mProgressBar.style.width = 300f;
|
|
mProgressBar.style.display = DisplayStyle.None;
|
|
}
|
|
|
|
void UpdateProgress()
|
|
{
|
|
if (mProgress == 0) return;
|
|
|
|
mProgressBar.style.display = DisplayStyle.Flex;
|
|
|
|
if (mProgress == 1)
|
|
{
|
|
mProgressBar.value = 20f;
|
|
mProgressBar.title = mProgressBar.value.ToString() + "%";
|
|
mTurnedOffLabel.text = PlasticLocalization.GetString(
|
|
PlasticLocalization.Name.TurnOffPlasticSCMClosingWindow);
|
|
mPlasticWindow = Resources.FindObjectsOfTypeAll<PlasticWindow>().First();
|
|
mPlasticWindow.Close();
|
|
mProgress = 2;
|
|
return;
|
|
}
|
|
if (mProgress == 2)
|
|
{
|
|
mProgressBar.value = 50f;
|
|
mProgressBar.title = mProgressBar.value.ToString() +"%";
|
|
mTurnedOffLabel.text = PlasticLocalization.GetString(
|
|
PlasticLocalization.Name.TurnOffPlasticSCMCleaning);
|
|
SetupCloudProjectId.SetCloudProjectId("");
|
|
mProgress = 3;
|
|
return;
|
|
}
|
|
if (mProgress == 3)
|
|
{
|
|
mProgressBar.value = 75f;
|
|
mProgressBar.title = mProgressBar.value.ToString() +"%";
|
|
mTurnedOffLabel.text = PlasticLocalization.GetString(
|
|
PlasticLocalization.Name.TurnOffPlasticSCMDeleting);
|
|
WorkspaceInfo workspaceInfo =
|
|
FindWorkspace.InfoForApplicationPath(
|
|
Application.dataPath,
|
|
PlasticApp.PlasticAPI);
|
|
Plastic.API.RemoveWorkspace(workspaceInfo);
|
|
DrawInspectorOperations.Disable();
|
|
DrawSceneOperations.Disable();
|
|
mProgress = 4;
|
|
return;
|
|
}
|
|
if (mProgress == 4)
|
|
{
|
|
mProgressBar.value = 100f;
|
|
mProgressBar.title = mProgressBar.value.ToString() +"%";
|
|
mTurnedOffLabel.text = PlasticLocalization.GetString(
|
|
PlasticLocalization.Name.Done);
|
|
mProgress = 9999;
|
|
return;
|
|
}
|
|
}
|
|
|
|
void CreateButton_Clicked()
|
|
{
|
|
if (mProgress != 0) return;
|
|
if (EditorUtility.DisplayDialog(PlasticLocalization.GetString(
|
|
PlasticLocalization.Name.TurningOffPlasticSCM),
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.TurnOffPlasticSCMAreYouSure),
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.YesButton),
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.NoButton)))
|
|
{
|
|
mProgress = 1;
|
|
}
|
|
}
|
|
|
|
VisualElement mRoot;
|
|
Button mTurnOffButton;
|
|
Label mTurnOffLabel;
|
|
Label mTurnedOffLabel;
|
|
ProgressBar mProgressBar;
|
|
int mProgress;
|
|
PlasticWindow mPlasticWindow;
|
|
} |