void TextMarkRegistry::documentRenamed(IDocument *document, const QString &oldName, const QString &newName) { TextDocument *baseTextDocument = qobject_cast<TextDocument *>(document); if (!document) return; FileName oldFileName = FileName::fromString(oldName); FileName newFileName = FileName::fromString(newName); if (!m_marks.contains(oldFileName)) return; QSet<TextMark *> toBeMoved; foreach (TextMark *mark, baseTextDocument->marks()) toBeMoved.insert(mark); m_marks[oldFileName].subtract(toBeMoved); m_marks[newFileName].unite(toBeMoved); foreach (TextMark *mark, toBeMoved) mark->updateFileName(newName); }