in src/dotnet/RiderPlugin.UnrealLink/Settings/UnrealLinkOptionsPage.cs [150:222]
private void SetupInstallButtons()
{
AddHeader(Strings.Settings_ManualInstallation_Header_Text);
var owner = Shell.Instance.GetComponents<RealSolutionManagerBase>()
.FirstOrDefault(it => it.CurrentSolution != null);
var solution = owner?.CurrentSolution;
var unrealPluginInstaller = solution?.GetComponent<UnrealPluginInstaller>();
var installInEngineButton = AddButton(Strings.InstallRiderLinkInEngine_Text, () =>
{
unrealPluginInstaller?.HandleManualInstallPlugin(
new InstallPluginDescription(PluginInstallLocation.Engine, ForceInstall.Yes)
);
});
AddCommentText(Strings.InstallRiderLinkPluginInEngineDescription_Text);
var installInGameButton = AddButton(Strings.InstallRiderLinkInGame_Text, () =>
{
unrealPluginInstaller?.HandleManualInstallPlugin(
new InstallPluginDescription(PluginInstallLocation.Game, ForceInstall.Yes)
);
});
AddCommentText(Strings.InstallRiderLinkPluginInGameDescription_Text);
var extractInEngineButton = AddButton(Strings.ExtractRiderLinkInEngine_Text, () =>
{
unrealPluginInstaller?.HandleManualInstallPlugin(
new InstallPluginDescription(PluginInstallLocation.Engine, ForceInstall.Yes, false)
);
});
AddCommentText(Strings.ExtractRiderLinkPluginInEngineDescription_Text);
var extractInGameButton = AddButton(Strings.ExtractRiderLinkInGame_Text, () =>
{
unrealPluginInstaller?.HandleManualInstallPlugin(
new InstallPluginDescription(PluginInstallLocation.Game, ForceInstall.Yes, false)
);
});
AddCommentText(Strings.ExtractRiderLinkPluginInGameDescription_Text);
var installationInProgressText = AddText(Strings.RiderLinkInstallationIsInProgress_Text);
installationInProgressText.Visible.Value = ControlVisibility.Hidden;
var unrealHost = solution?.GetComponent<UnrealHost>();
unrealHost?.myModel.RiderLinkInstallationInProgress.Advise(unrealPluginInstaller.Lifetime,
installationInProgress =>
{
installInEngineButton.Enabled.Value = !installationInProgress;
foreach (var beControl in installInEngineButton.Descendants<BeControl>())
{
beControl.Enabled.Value = !installationInProgress;
}
installInGameButton.Enabled.Value = !installationInProgress;
foreach (var beControl in installInGameButton.Descendants<BeControl>())
{
beControl.Enabled.Value = !installationInProgress;
}
extractInEngineButton.Enabled.Value = !installationInProgress;
foreach (var beControl in extractInEngineButton.Descendants<BeControl>())
{
beControl.Enabled.Value = !installationInProgress;
}
extractInGameButton.Enabled.Value = !installationInProgress;
foreach (var beControl in extractInGameButton.Descendants<BeControl>())
{
beControl.Enabled.Value = !installationInProgress;
}
installationInProgressText.Visible.Value = installationInProgress ?
ControlVisibility.Visible :
ControlVisibility.Hidden;
}
);
}