45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
using System.Diagnostics;
|
|
using Codice.Client.BaseCommands;
|
|
using Codice.Client.Common;
|
|
using Codice.Client.Common.Threading;
|
|
using PlasticGui;
|
|
using Unity.PlasticSCM.Editor.Tool;
|
|
using Unity.PlasticSCM.Editor.UI.Progress;
|
|
|
|
namespace Unity.PlasticSCM.Editor.Views.Welcome
|
|
{
|
|
static class ConfigurePlasticOperation
|
|
{
|
|
internal static void Run(
|
|
bool isGluonMode,
|
|
ProgressControlsForViews progressControls)
|
|
{
|
|
((IProgressControls)progressControls).ShowProgress(string.Empty);
|
|
|
|
IThreadWaiter waiter = ThreadWaiter.GetWaiter();
|
|
waiter.Execute(
|
|
/*threadOperationDelegate*/ delegate
|
|
{
|
|
Process plasticProcess = LaunchTool.OpenConfigurationForMode(isGluonMode);
|
|
|
|
if (plasticProcess != null)
|
|
plasticProcess.WaitForExit();
|
|
},
|
|
/*afterOperationDelegate*/ delegate
|
|
{
|
|
((IProgressControls)progressControls).HideProgress();
|
|
|
|
ClientConfig.Reset();
|
|
CmConnection.Reset();
|
|
ClientHandlers.Register();
|
|
|
|
if (waiter.Exception == null)
|
|
return;
|
|
|
|
((IProgressControls)progressControls).ShowError(
|
|
waiter.Exception.Message);
|
|
});
|
|
}
|
|
}
|
|
}
|