static void RegisterRemoteControl(NoteManager manager) { try { remote_control = RemoteControlProxy.Register(manager); if (remote_control != null) { Logger.Debug("Tomboy remote control active."); } else { // If Tomboy is already running, open the search window // so the user gets some sort of feedback when they // attempt to run Tomboy again. IRemoteControl remote = null; try { remote = RemoteControlProxy.GetInstance(); remote.DisplaySearch(); } catch {} Logger.Error("Tomboy is already running. Exiting..."); System.Environment.Exit(-1); } } catch (Exception e) { Logger.Warn("Tomboy remote control disabled (DBus exception): {0}", e.Message); } }
public void Execute() { IRemoteControl remote = null; try { remote = RemoteControlProxy.GetInstance(); } catch (Exception e) { Logger.Error("Unable to connect to Tomboy remote control: {0}", e.Message); } if (remote == null) { return; } if (new_note) { string new_uri; if (new_note_name != null) { new_uri = remote.FindNote(new_note_name); if (new_uri == null || new_uri == string.Empty) { new_uri = remote.CreateNamedNote(new_note_name); } } else { new_uri = remote.CreateNote(); } if (new_uri != null) { remote.DisplayNote(new_uri); } } if (open_start_here) { open_note_uri = remote.FindStartHereNote(); } if (open_note_name != null) { open_note_uri = remote.FindNote(open_note_name); } if (open_note_uri != null) { if (highlight_search != null) { remote.DisplayNoteWithSearch(open_note_uri, highlight_search); } else { remote.DisplayNote(open_note_uri); } } if (open_external_note_path != null) { string note_id = Path.GetFileNameWithoutExtension(open_external_note_path); if (note_id != null && note_id != string.Empty) { // Attempt to load the note, assuming it might already // be part of our notes list. if (remote.DisplayNote( string.Format("note://tomboy/{0}", note_id)) == false) { StreamReader sr = File.OpenText(open_external_note_path); if (sr != null) { string noteTitle = null; string noteXml = sr.ReadToEnd(); // Make sure noteXml is parseable XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.LoadXml(noteXml); } catch { noteXml = null; } if (noteXml != null) { noteTitle = NoteArchiver.Instance.GetTitleFromNoteXml(noteXml); if (noteTitle != null) { // Check for conflicting titles string baseTitle = (string)noteTitle.Clone(); for (int i = 1; remote.FindNote(noteTitle) != string.Empty; i++) { noteTitle = baseTitle + " (" + i.ToString() + ")"; } string note_uri = remote.CreateNamedNote(noteTitle); // Update title in the note XML noteXml = NoteArchiver.Instance.GetRenamedNoteXml(noteXml, baseTitle, noteTitle); if (note_uri != null) { // Load in the XML contents of the note file if (remote.SetNoteCompleteXml(note_uri, noteXml)) { remote.DisplayNote(note_uri); } } } } } } } } if (open_search) { if (search_text != null) { remote.DisplaySearchWithText(search_text); } else { remote.DisplaySearch(); } } if (addin_args) { AddinCmdLineArgsDetected(this, new EventArgs()); } }