config: get urls in a simpler way and clean up

This commit is contained in:
Hylke 2011-07-02 17:05:05 +01:00
parent c8df2ce85a
commit b57a59cc60
2 changed files with 35 additions and 23 deletions

View file

@ -131,6 +131,7 @@ namespace SparkleLib {
}
}
public void AddFolder (string name, string url, string backend)
{
XmlNode node_name = CreateElement ("name");
@ -168,6 +169,7 @@ namespace SparkleLib {
return true;
}
public void RemoveFolder (string name)
{
foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) {
@ -178,20 +180,6 @@ namespace SparkleLib {
Save ();
}
private XmlNode GetFolder (string name)
{
return SelectSingleNode(String.Format("/sparkleshare/folder[name='{0}']", name));
}
private string GetFolderValue (string name, string key)
{
XmlNode folder = this.GetFolder(name);
if ((folder != null) && (folder[key] != null)) {
return folder[key].InnerText;
}
return null;
}
public bool FolderExists (string name)
{
@ -199,32 +187,39 @@ namespace SparkleLib {
return folder != null;
}
public string GetBackendForFolder (string name)
{
return this.GetFolderValue(name, "backend");
}
public string GetUrlForFolder (string name)
{
return this.GetFolderValue(name, "url");
}
public List<string> GetUrls ()
{
List<string> Urls = new List<string> ();
foreach (string folder_name in SparkleLib.SparkleConfig.DefaultConfig.Folders) {
Urls.Add( GetUrlForFolder(folder_name).Replace("ssh://", "").Replace("git://", "").Split('/')[0] );
}
return Urls;
public List<string> Domains {
get {
List<string> domains = new List<string> ();
foreach (XmlNode node_folder in SelectNodes ("/sparkleshare/folder")) {
Uri uri = new Uri (node_folder ["url"].InnerText);
domains.Add (uri.Host);
}
return domains;
}
}
public string GetAnnouncementsForFolder (string name)
{
return this.GetFolderValue(name, "announcements");
}
public string GetAnnouncementUrlForFolder (string name)
{
// examples?
@ -273,6 +268,23 @@ namespace SparkleLib {
Save (Path);
SparkleHelpers.DebugInfo ("Config", "Updated \"" + Path + "\"");
}
private XmlNode GetFolder (string name)
{
return SelectSingleNode(String.Format("/sparkleshare/folder[name='{0}']", name));
}
private string GetFolderValue (string name, string key)
{
XmlNode folder = this.GetFolder(name);
if ((folder != null) && (folder[key] != null)) {
return folder[key].InnerText;
}
return null;
}
}

View file

@ -684,7 +684,7 @@ namespace SparkleShare {
TreeModel ServerEntryCompletion ()
{
ListStore store = new ListStore (typeof (string));
List<string> Urls = SparkleLib.SparkleConfig.DefaultConfig.GetUrls();
List<string> Urls = SparkleLib.SparkleConfig.DefaultConfig.Domains;
store.AppendValues ("user@localhost");
store.AppendValues ("user@example.com");