forked from qt-creator/qt-creator
TextEditor: Simplify TextMarkRegistry further
Change-Id: I61bbc99f0f8e378edbfb5733bffce7b424a36f2e Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -30,7 +30,6 @@ namespace TextEditor {
|
||||
|
||||
class TextMarkRegistry : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TextMarkRegistry(QObject *parent);
|
||||
|
||||
@@ -45,10 +44,9 @@ private:
|
||||
const FilePath &newPath);
|
||||
void allDocumentsRenamed(const FilePath &oldPath, const FilePath &newPath);
|
||||
|
||||
QHash<Utils::FilePath, QSet<TextMark *> > m_marks;
|
||||
};
|
||||
|
||||
TextMarkRegistry *m_instance = nullptr;
|
||||
static QHash<FilePath, QSet<TextMark *>> s_marks;
|
||||
|
||||
class AnnotationColors
|
||||
{
|
||||
@@ -463,8 +461,6 @@ void TextMark::setIsLocationMarker(bool newIsLocationMarker)
|
||||
TextMarkRegistry::TextMarkRegistry(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
m_instance = this;
|
||||
|
||||
connect(EditorManager::instance(), &EditorManager::editorOpened,
|
||||
this, &TextMarkRegistry::editorOpened);
|
||||
|
||||
@@ -481,14 +477,14 @@ void TextMarkRegistry::add(TextMark *mark)
|
||||
|
||||
void TextMarkRegistry::add(TextMark *mark, TextDocument *document)
|
||||
{
|
||||
m_instance->m_marks[mark->filePath()].insert(mark);
|
||||
s_marks[mark->filePath()].insert(mark);
|
||||
if (document)
|
||||
document->addMark(mark);
|
||||
}
|
||||
|
||||
bool TextMarkRegistry::remove(TextMark *mark)
|
||||
{
|
||||
return m_instance->m_marks[mark->filePath()].remove(mark);
|
||||
return s_marks[mark->filePath()].remove(mark);
|
||||
}
|
||||
|
||||
void TextMarkRegistry::editorOpened(IEditor *editor)
|
||||
@@ -496,10 +492,10 @@ void TextMarkRegistry::editorOpened(IEditor *editor)
|
||||
auto document = qobject_cast<TextDocument *>(editor ? editor->document() : nullptr);
|
||||
if (!document)
|
||||
return;
|
||||
if (!m_marks.contains(document->filePath()))
|
||||
if (!s_marks.contains(document->filePath()))
|
||||
return;
|
||||
|
||||
const QSet<TextMark *> marks = m_marks.value(document->filePath());
|
||||
const QSet<TextMark *> marks = s_marks.value(document->filePath());
|
||||
for (TextMark *mark : marks)
|
||||
document->addMark(mark);
|
||||
}
|
||||
@@ -511,7 +507,7 @@ void TextMarkRegistry::documentRenamed(IDocument *document,
|
||||
auto baseTextDocument = qobject_cast<TextDocument *>(document);
|
||||
if (!baseTextDocument)
|
||||
return;
|
||||
if (!m_marks.contains(oldPath))
|
||||
if (!s_marks.contains(oldPath))
|
||||
return;
|
||||
|
||||
QSet<TextMark *> toBeMoved;
|
||||
@@ -519,8 +515,8 @@ void TextMarkRegistry::documentRenamed(IDocument *document,
|
||||
for (TextMark *mark : marks)
|
||||
toBeMoved.insert(mark);
|
||||
|
||||
m_marks[oldPath].subtract(toBeMoved);
|
||||
m_marks[newPath].unite(toBeMoved);
|
||||
s_marks[oldPath].subtract(toBeMoved);
|
||||
s_marks[newPath].unite(toBeMoved);
|
||||
|
||||
for (TextMark *mark : std::as_const(toBeMoved))
|
||||
mark->updateFilePath(newPath);
|
||||
@@ -528,13 +524,13 @@ void TextMarkRegistry::documentRenamed(IDocument *document,
|
||||
|
||||
void TextMarkRegistry::allDocumentsRenamed(const FilePath &oldPath, const FilePath &newPath)
|
||||
{
|
||||
if (!m_marks.contains(oldPath))
|
||||
if (!s_marks.contains(oldPath))
|
||||
return;
|
||||
|
||||
const QSet<TextMark *> oldFileNameMarks = m_marks.value(oldPath);
|
||||
const QSet<TextMark *> oldFileNameMarks = s_marks.value(oldPath);
|
||||
|
||||
m_marks[newPath].unite(oldFileNameMarks);
|
||||
m_marks[oldPath].clear();
|
||||
s_marks[newPath].unite(oldFileNameMarks);
|
||||
s_marks[oldPath].clear();
|
||||
|
||||
for (TextMark *mark : oldFileNameMarks)
|
||||
mark->updateFilePath(newPath);
|
||||
@@ -574,5 +570,3 @@ void setupTextMarkRegistry(QObject *guard)
|
||||
}
|
||||
|
||||
} // namespace TextEditor
|
||||
|
||||
#include "textmark.moc"
|
||||
|
Reference in New Issue
Block a user