Files
GameDevTVObstacleDodge/Library/PackageCache/com.unity.collab-proxy@1ec4e416a4af/Editor/Views/PendingChanges/Dialogs/EmptyCommentDialog.cs

83 lines
3.1 KiB
C#
Raw Normal View History

2026-01-08 16:50:20 +00:00
using UnityEditor;
using Codice.Client.Common;
using Codice.Client.Common.EventTracking;
using Codice.CM.Common;
using PlasticGui;
using Unity.PlasticSCM.Editor.UI;
namespace Unity.PlasticSCM.Editor.Views.PendingChanges.Dialogs
{
internal class EmptyCommentDialog
{
internal static bool ShouldContinueWithCheckin(
EditorWindow parentWindow,
WorkspaceInfo wkInfo)
{
return CanProceedWithEmptyComment(false, parentWindow, wkInfo);
}
internal static bool ShouldContinueWithShelve(
EditorWindow parentWindow,
WorkspaceInfo wkInfo)
{
return CanProceedWithEmptyComment(true, parentWindow, wkInfo);
}
static bool CanProceedWithEmptyComment(
bool bShelve,
EditorWindow parentWindow,
WorkspaceInfo wkInfo)
{
bool checkBoxValue;
GuiMessage.GuiMessageResponseButton result = DialogWithCheckBox.Show(
bShelve ?
PlasticLocalization.Name.NoShelveCommentTitle.GetString() :
PlasticLocalization.Name.NoCheckinCommentTitle.GetString(),
bShelve ?
PlasticLocalization.Name.NoShelveCommentMessage.GetString() :
PlasticLocalization.Name.NoCheckinCommentMessage.GetString(),
bShelve ?
PlasticLocalization.Name.SkipAndShelve.GetString() :
PlasticLocalization.Name.SkipAndCheckin.GetString(),
string.Empty,
PlasticLocalization.Name.AddComment.GetString(),
GuiMessage.GuiMessageType.Informational,
new MultiLinkLabelData(PlasticLocalization.Name.DoNotShowMessageAgain.GetString()),
parentWindow,
out checkBoxValue);
if (result == GuiMessage.GuiMessageResponseButton.Neutral ||
result == GuiMessage.GuiMessageResponseButton.None)
return false;
if (checkBoxValue)
{
TrackFeatureUseEvent.For(
PlasticGui.Plastic.API.GetRepositorySpec(wkInfo),
TrackFeatureUseEvent.Features.EmptyComment.PendingChangesCheckinDialogDoNotShowMessageAgain);
if (bShelve)
PlasticGuiConfig.Get().Configuration.ShowEmptyShelveCommentWarning = false;
else
PlasticGuiConfig.Get().Configuration.ShowEmptyCommentWarning = false;
PlasticGuiConfig.Get().Save();
}
if (result == GuiMessage.GuiMessageResponseButton.Positive)
{
TrackFeatureUseEvent.For(
PlasticGui.Plastic.API.GetRepositorySpec(wkInfo),
TrackFeatureUseEvent.Features.EmptyComment.PendingChangesCheckinDialogCheckinAnyway);
return true;
}
TrackFeatureUseEvent.For(
PlasticGui.Plastic.API.GetRepositorySpec(wkInfo),
TrackFeatureUseEvent.Features.EmptyComment.PendingChangesCheckinDialogCancel);
return false;
}
}
}