/// <summary> /// Place the specified note into the specified notebook. If the /// note already belongs to a notebook, it will be removed from that /// notebook first. /// </summary> /// <param name="note"> /// A <see cref="Note"/> /// </param> /// <param name="notebook"> /// A <see cref="Notebook"/>. If Notebook is null, the note will /// be removed from its current notebook. /// </param> /// <returns>True if the note was successfully moved.</returns> bool NotebookManager::move_note_to_notebook (const Note::Ptr & note, const Notebook::Ptr & notebook) { if (!note) { return false; } // NOTE: In the future we may want to allow notes // to exist in multiple notebooks. For now, to // alleviate the confusion, only allow a note to // exist in one notebook at a time. Notebook::Ptr currentNotebook = get_notebook_from_note (note); if (currentNotebook == notebook) return true; // It's already there. if(currentNotebook) { note->remove_tag (currentNotebook->get_tag()); m_note_removed_from_notebook(*note, currentNotebook); } // Only attempt to add the notebook tag when this // menu item is not the "No notebook" menu item. if(notebook) { note->add_tag(notebook->get_tag()); m_note_added_to_notebook(*note, notebook); } return true; }
bool RemoteControl::RemoveTagFromNote(const std::string& uri, const std::string& tag_name) { Note::Ptr note = m_manager.find_by_uri (uri); if (!note) return false; Tag::Ptr tag = TagManager::obj().get_tag (tag_name); if (tag) { note->remove_tag (tag); } return true; }