Select last mod at start of launcher. Don't run download action elevated.
This commit is contained in:
@@ -101,7 +101,7 @@ namespace OpenRA.Launcher
|
|||||||
string[] args = e.Argument as string[];
|
string[] args = e.Argument as string[];
|
||||||
string url = args[0];
|
string url = args[0];
|
||||||
string dest = args[1];
|
string dest = args[1];
|
||||||
var p = UtilityProgram.CallWithAdmin("--download-url", url, dest);
|
var p = UtilityProgram.Call("--download-url", url, dest);
|
||||||
Regex r = new Regex(@"(\d{1,3})% (\d+)/(\d+) bytes");
|
Regex r = new Regex(@"(\d{1,3})% (\d+)/(\d+) bytes");
|
||||||
|
|
||||||
NamedPipeClientStream pipe = new NamedPipeClientStream(".", "OpenRA.Utility", PipeDirection.In);
|
NamedPipeClientStream pipe = new NamedPipeClientStream(".", "OpenRA.Utility", PipeDirection.In);
|
||||||
|
|||||||
6
OpenRA.Launcher/Launcher.Designer.cs
generated
6
OpenRA.Launcher/Launcher.Designer.cs
generated
@@ -29,7 +29,6 @@
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Mods", -2, -2);
|
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Mods", -2, -2);
|
||||||
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("Broken Mods");
|
|
||||||
this.installButton = new System.Windows.Forms.Button();
|
this.installButton = new System.Windows.Forms.Button();
|
||||||
this.installModDialog = new System.Windows.Forms.OpenFileDialog();
|
this.installModDialog = new System.Windows.Forms.OpenFileDialog();
|
||||||
this.treeView = new System.Windows.Forms.TreeView();
|
this.treeView = new System.Windows.Forms.TreeView();
|
||||||
@@ -67,11 +66,8 @@
|
|||||||
treeNode1.Name = "ModsNode";
|
treeNode1.Name = "ModsNode";
|
||||||
treeNode1.SelectedImageIndex = -2;
|
treeNode1.SelectedImageIndex = -2;
|
||||||
treeNode1.Text = "Mods";
|
treeNode1.Text = "Mods";
|
||||||
treeNode2.Name = "BrokenModsNode";
|
|
||||||
treeNode2.Text = "Broken Mods";
|
|
||||||
this.treeView.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
this.treeView.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
||||||
treeNode1,
|
treeNode1});
|
||||||
treeNode2});
|
|
||||||
this.treeView.ShowLines = false;
|
this.treeView.ShowLines = false;
|
||||||
this.treeView.Size = new System.Drawing.Size(160, 465);
|
this.treeView.Size = new System.Drawing.Size(160, 465);
|
||||||
this.treeView.TabIndex = 3;
|
this.treeView.TabIndex = 3;
|
||||||
|
|||||||
@@ -27,8 +27,6 @@ namespace OpenRA.Launcher
|
|||||||
|
|
||||||
Util.UacShield(installButton);
|
Util.UacShield(installButton);
|
||||||
|
|
||||||
//treeView.Nodes["ModsNode"].ImageIndex = 1;
|
|
||||||
//treeView.Nodes["ModsNode"].SelectedImageIndex = 1;
|
|
||||||
webBrowser.ObjectForScripting = new JSBridge();
|
webBrowser.ObjectForScripting = new JSBridge();
|
||||||
webBrowser.DocumentCompleted += (o, e) =>
|
webBrowser.DocumentCompleted += (o, e) =>
|
||||||
{
|
{
|
||||||
@@ -40,12 +38,8 @@ namespace OpenRA.Launcher
|
|||||||
|
|
||||||
Mod GetMetadata(string mod)
|
Mod GetMetadata(string mod)
|
||||||
{
|
{
|
||||||
string responseString;
|
string responseString = UtilityProgram.CallSimpleResponse("-i", mod);
|
||||||
using (var response = UtilityProgram.Call("-i", mod))
|
|
||||||
{
|
|
||||||
responseString = response.ReadToEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Util.IsError(ref responseString)) return null;
|
if (Util.IsError(ref responseString)) return null;
|
||||||
string[] lines = responseString.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
|
string[] lines = responseString.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
for (int i = 0; i < lines.Length; i++)
|
for (int i = 0; i < lines.Length; i++)
|
||||||
@@ -89,11 +83,7 @@ namespace OpenRA.Launcher
|
|||||||
|
|
||||||
void RefreshMods()
|
void RefreshMods()
|
||||||
{
|
{
|
||||||
string responseString;
|
string responseString = UtilityProgram.CallSimpleResponse("--list-mods");
|
||||||
using (var response = UtilityProgram.Call("--list-mods"))
|
|
||||||
{
|
|
||||||
responseString = response.ReadToEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
string[] mods;
|
string[] mods;
|
||||||
if (!Util.IsError(ref responseString))
|
if (!Util.IsError(ref responseString))
|
||||||
@@ -167,12 +157,23 @@ namespace OpenRA.Launcher
|
|||||||
missing.Nodes.Add(new TreeNode(allMods[s].Title)
|
missing.Nodes.Add(new TreeNode(allMods[s].Title)
|
||||||
{ ForeColor = SystemColors.GrayText, Name = s });
|
{ ForeColor = SystemColors.GrayText, Name = s });
|
||||||
}
|
}
|
||||||
|
string brokenKey = "BrokenModsNode";
|
||||||
treeView.Nodes["BrokenModsNode"].Nodes.Add(unspecified);
|
if (treeView.Nodes[brokenKey] != null)
|
||||||
treeView.Nodes["BrokenModsNode"].Nodes.Add(missing);
|
treeView.Nodes.RemoveByKey(brokenKey);
|
||||||
|
treeView.Nodes.Add(brokenKey, "Broken Mods");
|
||||||
|
treeView.Nodes[brokenKey].Nodes.Add(unspecified);
|
||||||
|
treeView.Nodes[brokenKey].Nodes.Add(missing);
|
||||||
}
|
}
|
||||||
treeView.Nodes["ModsNode"].ExpandAll();
|
treeView.Nodes["ModsNode"].ExpandAll();
|
||||||
treeView.Invalidate();
|
treeView.Invalidate();
|
||||||
|
|
||||||
|
string responseString = UtilityProgram.CallSimpleResponse("--settings-value",
|
||||||
|
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + Path.DirectorySeparatorChar + "OpenRA", "Game.Mods");
|
||||||
|
|
||||||
|
if (Util.IsError(ref responseString))
|
||||||
|
treeView.SelectedNode = treeView.Nodes["ModsNode"].Nodes["ra"];
|
||||||
|
else
|
||||||
|
treeView.SelectedNode = treeView.Nodes["ModsNode"].Nodes[responseString];
|
||||||
}
|
}
|
||||||
|
|
||||||
void treeView_AfterSelect(object sender, TreeViewEventArgs e)
|
void treeView_AfterSelect(object sender, TreeViewEventArgs e)
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ namespace OpenRA.Launcher
|
|||||||
return arguments.ToString();
|
return arguments.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static StreamReader Call(string command, params string[] args)
|
public static Process Call(string command, params string[] args)
|
||||||
{
|
{
|
||||||
Process p = new Process();
|
Process p = new Process();
|
||||||
p.StartInfo.FileName = "OpenRA.Utility.exe";
|
p.StartInfo.FileName = "OpenRA.Utility.exe";
|
||||||
@@ -76,9 +76,21 @@ namespace OpenRA.Launcher
|
|||||||
|
|
||||||
p.Start();
|
p.Start();
|
||||||
|
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string CallSimpleResponse(string command, params string[] args)
|
||||||
|
{
|
||||||
|
var p = Call(command, args);
|
||||||
|
string responseString;
|
||||||
NamedPipeClientStream pipe = new NamedPipeClientStream(".", "OpenRA.Utility", PipeDirection.In);
|
NamedPipeClientStream pipe = new NamedPipeClientStream(".", "OpenRA.Utility", PipeDirection.In);
|
||||||
pipe.Connect();
|
pipe.Connect();
|
||||||
return new StreamReader(pipe);
|
using (var response = new StreamReader(pipe))
|
||||||
|
{
|
||||||
|
responseString = response.ReadToEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
return responseString;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Process CallWithAdmin(string command, params string[] args)
|
public static Process CallWithAdmin(string command, params string[] args)
|
||||||
|
|||||||
Reference in New Issue
Block a user