diff --git a/SparkleShare/Common/BaseController.cs b/SparkleShare/Common/BaseController.cs index ddca2c20..7cae39f6 100644 --- a/SparkleShare/Common/BaseController.cs +++ b/SparkleShare/Common/BaseController.cs @@ -205,14 +205,13 @@ namespace SparkleShare { { string version = InstallationInfo.Version; - if (InstallationInfo.Directory.StartsWith ("/app", StringComparison.InvariantCulture)) + if (InstallationInfo.IsFlatpak) version += " (Flatpak)"; Logger.LogInfo ("Environment", "SparkleShare " + version); Logger.LogInfo ("Environment", "Git LFS " + Sparkles.Git.GitCommand.GitLFSVersion); Logger.LogInfo ("Environment", "Git " + Sparkles.Git.GitCommand.GitVersion); - // TODO: Nice OS version names for Linux (Fedora 24, Ubuntu 16.04, etc.) if (InstallationInfo.OperatingSystem == OS.Mac) Logger.LogInfo ("Environment", InstallationInfo.MacOSVersion ()); else @@ -641,10 +640,9 @@ namespace SparkleShare { { this.fetcher.EnableFetchedRepoCrypto (password); FinishFetcher (StorageType.Encrypted); - } // TODO: make this the main method. password optional. need to know storage type before Complete to allow crypto in lfs - // Make sure IsCryptoPasswordCorrect works with SparkleShare.txt checkout and LFS - - + } + + public void FinishFetcher (StorageType selected_storage_type) { this.watcher.EnableRaisingEvents = false; @@ -655,17 +653,17 @@ namespace SparkleShare { try { Directory.Move (this.fetcher.TargetFolder, target_folder_path); - + } catch (Exception e) { Logger.LogInfo ("Controller", "Error moving directory, trying again...", e); - + try { ClearDirectoryAttributes (this.fetcher.TargetFolder); Directory.Move (this.fetcher.TargetFolder, target_folder_path); - + } catch (Exception x) { Logger.LogInfo ("Controller", "Error moving directory", x); - + this.fetcher.Dispose (); this.fetcher = null; this.watcher.EnableRaisingEvents = true; @@ -674,7 +672,7 @@ namespace SparkleShare { } string backend = BaseFetcher.GetBackend (this.fetcher.RemoteUrl.ToString ()); - + Config.AddFolder (target_folder_name, identifier, this.fetcher.RemoteUrl.ToString (), backend); if (this.fetcher.FetchedRepoStorageType != StorageType.Plain) { diff --git a/SparkleShare/Common/SetupController.cs b/SparkleShare/Common/SetupController.cs index 289bf1c8..8a9f72d9 100644 --- a/SparkleShare/Common/SetupController.cs +++ b/SparkleShare/Common/SetupController.cs @@ -536,7 +536,6 @@ namespace SparkleShare { string folder_name = Path.GetFileName (PreviousPath); folder_name = folder_name.ReplaceUnderscoreWithSpace (); - // TODO: Open SparkleShare/$HOST SparkleShare.Controller.OpenSparkleShareFolder (folder_name); FinishPageCompleted (); } diff --git a/SparkleShare/Linux/UserInterface.cs b/SparkleShare/Linux/UserInterface.cs index 33c0731e..570dcdbe 100644 --- a/SparkleShare/Linux/UserInterface.cs +++ b/SparkleShare/Linux/UserInterface.cs @@ -115,6 +115,7 @@ namespace SparkleShare Setup.Application = application; EventLog.Application = application; About.Application = application; + Note.Application = application; SparkleShare.Controller.UIHasLoaded (); } diff --git a/Sparkles/ChangeSet.cs b/Sparkles/ChangeSet.cs index 7a98e7b8..8358012f 100644 --- a/Sparkles/ChangeSet.cs +++ b/Sparkles/ChangeSet.cs @@ -44,7 +44,7 @@ namespace Sparkles { public string ToMessage () { string message = "added: {0}"; - + switch (Changes [0].Type) { case ChangeType.Edited: message = "edited: {0}"; break; case ChangeType.Deleted: message = "deleted: {0}"; break; @@ -64,7 +64,7 @@ namespace Sparkles { public ChangeType Type; public DateTime Timestamp; public bool IsFolder; - + public string Path; public string MovedToPath; } diff --git a/Sparkles/Configuration.cs b/Sparkles/Configuration.cs index e29c4403..e0b46bae 100644 --- a/Sparkles/Configuration.cs +++ b/Sparkles/Configuration.cs @@ -16,9 +16,10 @@ using System; -using System.IO; using System.Collections.Generic; +using System.IO; using System.Xml; +using System.Xml.Linq; namespace Sparkles { @@ -42,6 +43,7 @@ namespace Sparkles { public readonly string FilePath; public readonly string TmpPath; public readonly string BinPath; + public readonly string LogFilePath; @@ -115,11 +117,10 @@ namespace Sparkles { CreateInitialConfig (); } else { - throw new XmlException (FilePath + " does not contain a valid config XML structure."); + throw; } } finally { - Load (FilePath); TmpPath = Path.Combine (DirectoryPath, "tmp"); Directory.CreateDirectory (TmpPath); } @@ -138,17 +139,16 @@ namespace Sparkles { user_name = user_name.TrimEnd (','); } - // TODO: Don't do this manually - string n = Environment.NewLine; - File.WriteAllText (FilePath, - "" + n + - "" + n + - " " + n + - " " + user_name + "" + n + - " Unknown" + n + - " " + n + - " True" + n + - ""); + XElement xml = + new XElement ("sparkleshare", + new XElement ("user", + new XElement ("name", user_name), + new XElement ("email", "Unknown") + ), + new XElement ("notifications", bool.TrueString) + ); + + LoadXml (xml.ToString ()); } @@ -351,9 +351,6 @@ namespace Sparkles { void Save () { - if (!File.Exists (FilePath)) - throw new FileNotFoundException (FilePath + " does not exist"); - Save (FilePath); Logger.LogInfo ("Config", "Wrote to '" + FilePath + "'"); } diff --git a/Sparkles/Preset.cs b/Sparkles/Preset.cs index 86d68fca..0828c926 100644 --- a/Sparkles/Preset.cs +++ b/Sparkles/Preset.cs @@ -17,6 +17,7 @@ using System; using System.Xml; +using System.Xml.Linq; using IO = System.IO; @@ -80,33 +81,31 @@ namespace Sparkles { if (IO.File.Exists (preset_path)) return null; - // TODO: Don't write manually - string preset_xml = "" + - "" + - " " + - " " + - " " + name + "" + - " " + description + "" + - " own-server.png" + - " " + - "
" + - " " + address_value + "" + - " " + address_example + "" + - "
" + - " " + - " " + path_value + "" + - " " + path_example + "" + - " " + - "
" + - "
"; + string icon_name = "own-server.png"; - preset_xml = preset_xml.Replace ("", ""); - preset_xml = preset_xml.Replace ("", ""); + XElement xml = + new XElement ("sparkleshare", + new XElement ("preset", + new XElement ("info", + new XElement ("name", name), + new XElement ("description", description), + new XElement ("icon", icon_name) + ), + new XElement ("address", + new XElement ("value", address_value), + new XElement ("example", address_example) + ), + new XElement ("path", + new XElement ("value", path_value), + new XElement ("example", path_example) + ) + ) + ); if (!IO.Directory.Exists (LocalPresetsPath)) IO.Directory.CreateDirectory (LocalPresetsPath); - IO.File.WriteAllText (preset_path, preset_xml); + IO.File.WriteAllText (preset_path, xml.ToString ()); return new Preset (preset_path); } diff --git a/Sparkles/Sparkles.csproj b/Sparkles/Sparkles.csproj index 3ff026fa..b7cb50a2 100644 --- a/Sparkles/Sparkles.csproj +++ b/Sparkles/Sparkles.csproj @@ -60,6 +60,7 @@ +