123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- using UnityEditor;
- using UnityEngine;
-
- using Codice.Client.Common;
-
- using Codice.Client.Commands;
- using PlasticGui;
- using PlasticGui.WorkspaceWindow.Update;
- using Unity.PlasticSCM.Editor.UI;
-
- namespace Unity.PlasticSCM.Editor.Views
- {
- internal class ContinueWithPendingChangesQuestionerBuilder :
- SwitchController.IContinueWithPendingChangesQuestionerBuilder
- {
- internal ContinueWithPendingChangesQuestionerBuilder(
- IViewSwitcher viewSwitcher,
- EditorWindow parentWindow)
- {
- mViewSwitcher = viewSwitcher;
- mParentWindow = parentWindow;
- }
-
- public IContinueWithPendingChangesQuestioner Get(string title, string explanation)
- {
- return new ContinueWithPendingChangesQuestioner(
- title,
- explanation,
- mViewSwitcher,
- mParentWindow);
- }
-
- IViewSwitcher mViewSwitcher;
- EditorWindow mParentWindow;
- }
-
- internal class ContinueWithPendingChangesQuestioner : IContinueWithPendingChangesQuestioner
- {
- internal ContinueWithPendingChangesQuestioner(
- string title,
- string explanation,
- IViewSwitcher viewSwitcher,
- EditorWindow parentWindow)
- {
- mTitle = title;
- mExplanation = explanation;
- mViewSwitcher = viewSwitcher;
- mParentWindow = parentWindow;
- }
-
- public bool ContinueWithPendingChanges()
- {
- bool result = false;
-
- GUIActionRunner.RunGUIAction(() =>
- {
- result = ConfirmContinueWithPendingChangesDialog.ConfirmContinue(
- mTitle,
- mExplanation,
- mViewSwitcher,
- mParentWindow);
- });
-
- return result;
- }
-
- string mTitle;
- string mExplanation;
- IViewSwitcher mViewSwitcher;
- EditorWindow mParentWindow;
- }
-
- internal class ConfirmContinueWithPendingChangesDialog : PlasticDialog
- {
- protected override Rect DefaultRect
- {
- get
- {
- var baseRect = base.DefaultRect;
- return new Rect(baseRect.x, baseRect.y, 500, 287);
- }
- }
-
- internal static bool ConfirmContinue(
- string title,
- string explanation,
- IViewSwitcher viewSwitcher,
- EditorWindow parentWindow)
- {
- ConfirmContinueWithPendingChangesDialog dialog = Create(
- title,
- explanation,
- viewSwitcher);
-
- if (dialog.RunModal(parentWindow) != ResponseType.Ok)
- return false;
-
- if (dialog.mIsSwitchToConfirmationChecked)
- SavePreference();
-
- return true;
- }
-
- static ConfirmContinueWithPendingChangesDialog Create(
- string title,
- string explanation,
- IViewSwitcher viewSwitcher)
- {
- var instance = CreateInstance<ConfirmContinueWithPendingChangesDialog>();
- instance.mTitle = title;
- instance.mExplanation = explanation;
- instance.mViewSwitcher = viewSwitcher;
- return instance;
- }
-
- static void SavePreference()
- {
- ClientConfigData data = ClientConfig.Get().GetClientConfigData();
- data.SetPendingChangesOnSwitchAction(UserAction.None);
- ClientConfig.Get().Save(data);
- }
-
- protected override string GetTitle()
- {
- return mTitle;
- }
-
- protected override void OnModalGUI()
- {
- Title(mTitle);
-
- Paragraph(mExplanation);
-
- DoSwitchToConfirmationCheckButton();
-
- GUILayout.Space(10);
-
- DoButtonsArea();
- }
-
- void DoSwitchToConfirmationCheckButton()
- {
- using (new EditorGUILayout.HorizontalScope())
- {
- GUILayout.FlexibleSpace();
-
- mIsSwitchToConfirmationChecked = TitleToggle(
- PlasticLocalization.GetString(
- PlasticLocalization.Name.SwitchToConfirmationCheckButton),
- mIsSwitchToConfirmationChecked);
- }
- }
-
- void DoButtonsArea()
- {
- using (new EditorGUILayout.HorizontalScope())
- {
- GUILayout.FlexibleSpace();
-
- if (Application.platform == RuntimePlatform.WindowsEditor)
- {
- DoContinueButton();
- DoCancelAndViewPendingChangesButton();
- DoCancelButton();
- return;
- }
-
- DoCancelButton();
- DoCancelAndViewPendingChangesButton();
- DoContinueButton();
- }
- }
-
- void DoContinueButton()
- {
- if (!NormalButton(PlasticLocalization.GetString(
- PlasticLocalization.Name.SwitchToConfirmationContinueButton)))
- return;
-
- OkButtonAction();
- }
-
- void DoCancelButton()
- {
- if (!NormalButton(PlasticLocalization.GetString(
- PlasticLocalization.Name.CancelButton)))
- return;
-
- CancelButtonAction();
- }
-
- void DoCancelAndViewPendingChangesButton()
- {
- if (!NormalButton(PlasticLocalization.GetString(
- PlasticLocalization.Name.SwitchToConfirmationCancelViewChangesButton)))
- return;
-
- mViewSwitcher.ShowPendingChanges();
- CancelButtonAction();
- }
-
- string mTitle;
- string mExplanation;
- IViewSwitcher mViewSwitcher;
-
- bool mIsSwitchToConfirmationChecked;
- }
- }
|