From 3d707244b73bcd47b45fbddf9e35c9947f8bf344 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Fri, 22 Jul 2011 22:27:16 +0200 Subject: [PATCH 1/2] FolderPaths --- SparkleLib/SparkleConfig.cs | 36 +++++++++++++++++++++++++++++++ SparkleShare/SparkleController.cs | 21 +++++++++++++++++- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/SparkleLib/SparkleConfig.cs b/SparkleLib/SparkleConfig.cs index cb69040a..96b0bdd1 100644 --- a/SparkleLib/SparkleConfig.cs +++ b/SparkleLib/SparkleConfig.cs @@ -132,6 +132,27 @@ namespace SparkleLib { } + public List FolderPaths { + get { + List folders = new List (); + + foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) { + Uri uri = new Uri (node_folder ["url"].InnerText); + String path = uri.LocalPath; + if (!folders.Contains (path)) + folders.Add (path); + + if (1 < path.Length && "/" == path.Substring (0, 1)) + if (!folders.Contains (path.Substring (1))) + folders.Add (path.Substring (1)); + + } + + return folders; + } + } + + public void AddFolder (string name, string url, string backend) { XmlNode node_name = CreateElement ("name"); @@ -215,6 +236,21 @@ namespace SparkleLib { } + public List HostsWithUsername { + get { + List hosts = new List (); + + foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) { + Uri uri = new Uri (node_folder ["url"].InnerText); + + if ("git" != uri.UserInfo && !hosts.Contains (uri.UserInfo + "@" + uri.Host)) + hosts.Add (uri.UserInfo + "@" + uri.Host); + } + + return hosts; + } + } + public string GetAnnouncementsForFolder (string name) { return this.GetFolderValue(name, "announcements"); diff --git a/SparkleShare/SparkleController.cs b/SparkleShare/SparkleController.cs index 931a8ea0..cece6489 100644 --- a/SparkleShare/SparkleController.cs +++ b/SparkleShare/SparkleController.cs @@ -224,6 +224,25 @@ namespace SparkleShare { } + public List FolderPaths { + get { + List folders = SparkleConfig.DefaultConfig.FolderPaths; + folders.Sort (); + return folders; + } + } + + + public List PreviousHosts { + get { + List hosts = SparkleConfig.DefaultConfig.HostsWithUsername; + hosts.AddRange(SparkleConfig.DefaultConfig.Hosts); + hosts.Sort (); + return hosts; + } + } + + public List UnsyncedFolders { get { List unsynced_folders = new List (); @@ -236,7 +255,7 @@ namespace SparkleShare { return unsynced_folders; } } - + public List GetLog () { From 9a4d34b4e9006b8f15ade29277d660408ed59486 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Fri, 22 Jul 2011 23:01:17 +0200 Subject: [PATCH 2/2] Server and Folder completion --- SparkleShare/SparkleSetup.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/SparkleShare/SparkleSetup.cs b/SparkleShare/SparkleSetup.cs index 0e7ecb72..21e1ae36 100644 --- a/SparkleShare/SparkleSetup.cs +++ b/SparkleShare/SparkleSetup.cs @@ -150,8 +150,8 @@ namespace SparkleShare { ListStore server_store = new ListStore (typeof (string)); - //TODO foreach (string host in SparkleShare.Controller.PreviousHosts) - // server_store.AppendValues (host); + foreach (string host in SparkleShare.Controller.PreviousHosts) + server_store.AppendValues (host); ServerEntry.Completion.Model = server_store; ServerEntry.Completion.TextColumn = 0; @@ -236,6 +236,15 @@ namespace SparkleShare { FolderEntry = new SparkleEntry (); FolderEntry.ExampleText = _("Folder"); + FolderEntry.Completion = new EntryCompletion(); + + ListStore folder_store = new ListStore (typeof (string)); + + foreach (string host in SparkleShare.Controller.FolderPaths) + folder_store.AppendValues (host); + + FolderEntry.Completion.Model = folder_store; + FolderEntry.Completion.TextColumn = 0; FolderEntry.Changed += delegate { CheckAddPage ();