private void HandleLinkRename (string old_title, Note renamed, bool rename_links)
{
// Check again, things may have changed
if (!ContainsText (old_title))
return;
string old_title_lower = old_title.ToLower ();
NoteTag link_tag = TagTable.LinkTag;
// Replace existing links with the new title.
TextTagEnumerator enumerator = new TextTagEnumerator (Buffer, link_tag);
foreach (TextRange range in enumerator) {
if (range.Text.ToLower () != old_title_lower)
continue;
if (!rename_links) {
Logger.Debug ("Removing link tag from text '{0}'",
range.Text);
Buffer.RemoveTag (link_tag, range.Start, range.End);
} else {
Logger.Debug ("Replacing '{0}' with '{1}'",
range.Text,
renamed.Title);
Gtk.TextIter start_iter = range.Start;
Gtk.TextIter end_iter = range.End;
Buffer.Delete (ref start_iter, ref end_iter);
start_iter = range.Start;
Buffer.InsertWithTags (ref start_iter, renamed.Title, link_tag);
}
}
}