diff --git a/.vs/rcloneExplorer/v14/.suo b/.vs/rcloneExplorer/v14/.suo index 2247538..674de4e 100644 Binary files a/.vs/rcloneExplorer/v14/.suo and b/.vs/rcloneExplorer/v14/.suo differ diff --git a/README.md b/README.md index 446b5f0..9664d6f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ #rcloneExplorer
- + >rcloneExplorer works by taking output from rclone, which does all the heavy lifting. Remotes which have been set up via rclones config proces should be fully usable in rcloneExplorer. rcloneExplorer can only access rclone configured remotes. @@ -23,7 +23,7 @@ rcloneExplorer can only access rclone configured remotes.

###Syncing - + >rcloneExplorer provides a simple GUI to set up and schedule a regular sync option, to keep your files backed up and safe on a regular basis. [Currently a WIP]

@@ -33,7 +33,7 @@ rcloneExplorer can only access rclone configured remotes.

###File Transfers - + >You can easily upload & download files to and from configured remotes, with a nice easy to use GUI and transparent on-the-fly encryption/decryption as needed.

@@ -43,5 +43,5 @@ rcloneExplorer can only access rclone configured remotes.

###GUI for Config Management - + >

A lot of people seem intimidated by the rclone CLI, especially during the initial configuration. In an attempt to remedy this rcloneExplorer now has an easy to use configuration 'wizard' which can be used to manage remotes and encryption settings

diff --git a/rcloneExplorer/rcloneExplorer.Auxiliary.SetupWiz.cs b/rcloneExplorer/rcloneExplorer.Auxiliary.SetupWiz.cs index 2185e22..03c8892 100644 --- a/rcloneExplorer/rcloneExplorer.Auxiliary.SetupWiz.cs +++ b/rcloneExplorer/rcloneExplorer.Auxiliary.SetupWiz.cs @@ -6,6 +6,7 @@ using System.IO; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; @@ -14,7 +15,7 @@ namespace rcloneExplorer public partial class rcloneExplorerSetupWiz : Form { rcloneExplorerInternalExec internalExecHandler; - rcloneExplorerExploreHandler exploreHandler; + rcloneExplorerExploreHandler exploreHandler; IniFile iniSettings; string[] providers = { "crypt", "amazon cloud drive", "s3", "b2", "dropbox", "google cloud storage", "drive", "hubic", "onedrive", "swift", "yandex" }; @@ -69,19 +70,19 @@ private void loadConfigs() private void openSelectedRemote() { - if (lstConfigs.SelectedItems.Count>0) - { - if (!String.IsNullOrEmpty(lstConfigs.SelectedItems[0].Text)) - { - //write newly selected config to ini - iniSettings.Write("rcloneRemote", lstConfigs.SelectedItems[0].Text.ToString()); + if (lstConfigs.SelectedItems.Count > 0 && !String.IsNullOrEmpty(lstConfigs.SelectedItems[0].Text)) + { + //write newly selected config to ini + iniSettings.Write("rcloneRemote", lstConfigs.SelectedItems[0].Text.ToString()); + //not doing first time setup so clear the CD and refresh view + if (!rcloneExplorer.initialSetup) { //set current path to root rcloneExplorer.remoteCD = ""; //refresh the explorer lst exploreHandler.refreshlstExplorer(); - //close config screen - this.Close(); - } + } + //close config screen + this.Close(); } } @@ -145,7 +146,7 @@ private void cmbProviderList_TextChanged(object sender, EventArgs e) //if user doesnt enter a valid remote name, keep asking while (String.IsNullOrEmpty(nRemoteName.Trim())) { - nRemoteName = PromptGenerator.ShowDialog("Remote Name:", ""); + nRemoteName = PromptGenerator.ShowDialog("Remote Name:", "Please enter an alphanumeric name for the remote"); } //build command list diff --git a/rcloneExplorer/rcloneExplorer.Core.Initialization.cs b/rcloneExplorer/rcloneExplorer.Core.Initialization.cs index 212104b..3a57871 100644 --- a/rcloneExplorer/rcloneExplorer.Core.Initialization.cs +++ b/rcloneExplorer/rcloneExplorer.Core.Initialization.cs @@ -32,10 +32,8 @@ public void initRcloneSettings() //config found, checking for settings if (string.IsNullOrEmpty(iniSettings.Read("rcloneRemote"))) { - MessageBox.Show("ERR: Incorrect config\r\n\r\nPlease add an rclone remote Name to the config ini"); - Process.Start("cmd.exe", "/c rclone config"); - Process.Start("notepad.exe", "rcloneExplorer.ini"); - Environment.Exit(0); + MessageBox.Show("ERR: Incorrect config\r\n\r\nLoading config, this may take a minute..."); + rcloneExplorer.initialSetup = true; } else { @@ -57,10 +55,8 @@ public void initRcloneSettings() iniSettings.Write("rcloneSyncBandwidthLimit", "0"); iniSettings.Write("rcloneSyncMinFileSize", "0"); iniSettings.Write("rcloneSyncMaxFileSize", "0"); - MessageBox.Show("No ini file found!\r\n\r\nPlease add an rclone remote Name to the config ini"); - Process.Start("cmd.exe", "/c rclone config"); - Process.Start("notepad.exe", "rcloneExplorer.ini"); - Environment.Exit(0); + MessageBox.Show("ERR: No ini file found!\r\n\r\nLoading config, this may take a minute..."); + rcloneExplorer.initialSetup = true; } if (System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\ffplay.exe")) { diff --git a/rcloneExplorer/rcloneExplorer.cs b/rcloneExplorer/rcloneExplorer.cs index e90624f..50f4069 100644 --- a/rcloneExplorer/rcloneExplorer.cs +++ b/rcloneExplorer/rcloneExplorer.cs @@ -29,6 +29,7 @@ public partial class rcloneExplorer : Form public static string remoteCD = ""; public static long totalFilesize = 0; public static bool loaded = false; + public static bool initialSetup = false; public static bool streamingEnabled = false; public static System.Windows.Forms.Timer transferTimer = new System.Windows.Forms.Timer(); @@ -45,6 +46,12 @@ public rcloneExplorer() tickHandler.init(); //init rclone settings InitializationHandler.initRcloneSettings(); + //wait for initial setup to complete if need be + if (initialSetup) { + var SetupWiz = new rcloneExplorerSetupWiz(); + var waitforcomplete = SetupWiz.ShowDialog(); + initialSetup = false; + } //start the splashscreen in a background thread so the main form can work away new Thread(() => {