/// <summary> /// Initializes a new instance of the <see cref="Tomboy.AppDelegate"/> class. /// </summary> public AppDelegate () { var storage_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "Library", "Application Support", "Tomboy"); // TODO, set it in a generic way noteStorage = new DiskStorage (storage_path); noteStorage.SetBackupPath(backupPathUri); if (!Directory.Exists(backupPathUri)) noteStorage.Backup(); //FIXME: Need to better handle status messages. Logger.Debug ("Backup Path set to {0}", backupPathUri); NoteEngine = new Engine (noteStorage); // keep track of note for syncing // TODO move this into an Add-in one day var manifest_path = Path.Combine (storage_path, "manifest.xml"); manifestTracker = new ManifestTracker (NoteEngine, manifest_path); // Create our cache directory if (!Directory.Exists (BaseUrlPath)) Directory.CreateDirectory (BaseUrlPath); // Currently lazy load because otherwise the Dock Menu throws an error about there being no notes. if (Notes == null) Notes = NoteEngine.GetNotes (); NoteEngine.NoteAdded += HandleNoteAdded; NoteEngine.NoteRemoved += HandleNoteRemoved; NoteEngine.NoteUpdated += HandleNoteUpdated; settings = SettingsSync.Read(); Notebooks = new List<string>(); currentNotebook = "All Notebooks"; PopulateNotebookList(); }
/// <summary> /// Reads from the Settings.xml file and returns all the settings /// </summary> public static SettingsSync Read() { Init(); if (System.IO.File.Exists(settingsFile)) { XmlReader reader = XmlTextReader.Create(settingsFile); SettingsSync settings = Read(reader); reader.Close(); return settings; } else { SettingsSync settings = new SettingsSync(); settings.autoSync = true; settings.syncURL = ""; return settings; } }
/// <summary> /// Read the specified reader. /// </summary> /// <param name="reader">Reader.</param> private static SettingsSync Read(XmlReader reader) { SettingsSync settings = new SettingsSync (); try{ while(reader.Read ()){ switch(reader.NodeType){ case XmlNodeType.Element: switch(reader.Name){ case "settings": break; case "sync-url": settings.syncURL = reader.ReadString (); break; case "auto-sync": string temp = reader.ReadString (); settings.autoSync = (temp.Equals ("True")) ? settings.autoSync = true : settings.autoSync = false; break; } break; } } }catch(XmlException e){ //Console.Write(e.ToString); } return settings; }
/// <summary> /// Write the specified xml and settings. /// </summary> /// <param name="xml">Xml.</param> /// <param name="settings">Settings.</param> private static void Write(XmlWriter xml, SettingsSync settings) { xml.WriteStartDocument (); xml.WriteStartElement (null, "settings", null); xml.WriteStartElement (null, "sync-url", null); xml.WriteString (settings.syncURL); xml.WriteEndElement (); xml.WriteStartElement (null, "auto-sync", null); string temp = ""; temp = (settings.autoSync == true) ? temp = "True" : temp = "False"; xml.WriteString (temp); xml.WriteEndElement (); xml.WriteEndElement (); }
/// <summary> /// Write API provided to clients to use for saving the settings /// </summary> /// <param name="settings">Settings.</param> public static void Write(SettingsSync settings) { Init(); var xmlSettings = new XmlWriterSettings (); xmlSettings.Indent = true; xmlSettings.IndentChars = "\t"; XmlWriter writer = XmlWriter.Create (settingsFile, xmlSettings); Write (writer, settings); writer.Close (); }