Example #1
0
        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);
            }
        }
Example #2
0
        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());
            }
        }