diff --git a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/CLI-uplink.cs b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/CLI-uplink.cs index d3536a0..7b1c003 100644 --- a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/CLI-uplink.cs +++ b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/CLI-uplink.cs @@ -5,12 +5,9 @@ public class CLIUplink { string filename; - public CLIUplink(string path=".\\", string filename= "uplink_windows_amd64.exe") + public CLIUplink(string path= ".\\uplink_windows_amd64.exe") { - string last = path.Substring(path.Length - 1); - if (last != "\\" && last != "/") - path += "\\"; - this.filename = path + filename; + this.filename = path; } public void test(string cmd) diff --git a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/DialogBox.cs b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/DialogBox.cs index 4e9f1de..f0d4fb9 100644 --- a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/DialogBox.cs +++ b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/DialogBox.cs @@ -89,5 +89,24 @@ public static DialogResult Alert(string title, string message) DialogResult dialogResult = form.ShowDialog(); return dialogResult; } + + public static string FilePrompt(string title) + { + var filePath = string.Empty; + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.InitialDirectory = @"c:\"; + openFileDialog.Filter = "Application files (*.exe)|*.exe|All files (*.*)|*.*"; + openFileDialog.RestoreDirectory = true; + + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + filePath = openFileDialog.FileName; + return filePath; + } + + return null; + } + } } } diff --git a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/Program.cs b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/Program.cs index 915bc2b..e892e9b 100644 --- a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/Program.cs +++ b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/Program.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -10,6 +11,7 @@ static class Program { public static CLIUplink cli; public static List> Buckets = null; + public static string UplinkCLIPath = @"%userprofile%\storj-uplink\uplink_windows_amd64.exe"; /// /// Point d'entrée principal de l'application. /// @@ -18,7 +20,22 @@ static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - cli = new CLIUplink(@"C:\Users\Charles\storj-uplink"); + + Tools.LoadSettings(); + + while(UplinkCLIPath == null || !File.Exists(UplinkCLIPath)) + { + if (DialogBox.Alert("Uplink CLI location", "Please select the Uplink CLI file in the following window.") == DialogResult.OK) + { + UplinkCLIPath = DialogBox.FilePrompt("Uplink CLI Path"); + } + else + System.Environment.Exit(2); + } + Tools.SaveSettings(); + + cli = new CLIUplink(UplinkCLIPath); + if (!cli.IsRegistered()) { if(DialogBox.Alert("Log in to Tardigrade Network", "This client has to be used with Uplink CLI.\nPlease first login using your API token first.\n\nDetailled informations can be found at https://documentation.tardigrade.io/api-reference/uplink-cli.\n\n") == DialogResult.OK) @@ -35,6 +52,7 @@ static void Main() // System.Environment.Exit(1); } } + Application.Run(new MainGUI()); } } diff --git a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui.csproj b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui.csproj index a858847..bfe6abe 100644 --- a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui.csproj +++ b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui.csproj @@ -32,6 +32,9 @@ prompt 4 + + main.ico + @@ -82,5 +85,8 @@ + + + \ No newline at end of file diff --git a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/Tools.cs b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/Tools.cs index 2b89136..358bf73 100644 --- a/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/Tools.cs +++ b/StorjTardigradeWindowsGui/StorjTardigradeWindowsGui/Tools.cs @@ -1,4 +1,5 @@ -using System; +using Microsoft.Win32; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -20,5 +21,26 @@ internal static void PrintListOfDict(List> d) } Console.WriteLine(); } + + internal static bool LoadSettings() + { + RegistryKey key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\StorjTardigradeWindowsGui"); + if(key != null) + { + Program.UplinkCLIPath = (string) key.GetValue("UplinkCLIPath"); + + if (Program.UplinkCLIPath == null) + return false; + return true; + } + + return false; + } + + internal static void SaveSettings() + { + RegistryKey key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\StorjTardigradeWindowsGui"); + key.SetValue("UplinkCLIPath", Program.UplinkCLIPath); + } } }