diff --git a/src/plugins/clangcodemodel/clangfixitoperation.cpp b/src/plugins/clangcodemodel/clangfixitoperation.cpp index a05d1898870..b303a755e51 100644 --- a/src/plugins/clangcodemodel/clangfixitoperation.cpp +++ b/src/plugins/clangcodemodel/clangfixitoperation.cpp @@ -46,7 +46,7 @@ static FileToFixits fixitsPerFile(const QList &fixIts) void ClangFixItOperation::perform() { - const TextEditor::RefactoringFileFactory refactoringChanges; + const TextEditor::PlainRefactoringFileFactory refactoringChanges; const FileToFixits fileToFixIts = fixitsPerFile(fixIts); for (auto i = fileToFixIts.cbegin(), end = fileToFixIts.cend(); i != end; ++i) { diff --git a/src/plugins/clangtools/documentquickfixfactory.cpp b/src/plugins/clangtools/documentquickfixfactory.cpp index e737b3af6e7..41a570126f1 100644 --- a/src/plugins/clangtools/documentquickfixfactory.cpp +++ b/src/plugins/clangtools/documentquickfixfactory.cpp @@ -41,7 +41,7 @@ static Range toRange(const QTextDocument *doc, DiagnosticRange locations) void ClangToolQuickFixOperation::perform() { - TextEditor::RefactoringFileFactory changes; + TextEditor::PlainRefactoringFileFactory changes; QMap refactoringFiles; for (const ExplainingStep &step : m_diagnostic.explainingSteps) { diff --git a/src/plugins/cppeditor/cppmodelmanager.cpp b/src/plugins/cppeditor/cppmodelmanager.cpp index 2ed1177388f..2aa13841f96 100644 --- a/src/plugins/cppeditor/cppmodelmanager.cpp +++ b/src/plugins/cppeditor/cppmodelmanager.cpp @@ -1839,7 +1839,7 @@ void CppModelManager::renameIncludes(const FilePath &oldFilePath, const FilePath if (oldFilePath.absolutePath() != newFilePath.absolutePath()) return; - const TextEditor::RefactoringFileFactory changes; + const TextEditor::PlainRefactoringFileFactory changes; QString oldFileName = oldFilePath.fileName(); QString newFileName = newFilePath.fileName(); diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 49779f16462..912bb622281 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -1739,7 +1739,7 @@ void Client::log(const QString &message) const TextEditor::RefactoringFilePtr Client::createRefactoringFile(const FilePath &filePath) const { - return TextEditor::RefactoringFileFactory().file(filePath); + return TextEditor::PlainRefactoringFileFactory().file(filePath); } void Client::setCompletionResultsLimit(int limit) diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index b6ef9b4ff5a..399e275fe4f 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -539,7 +539,7 @@ FilePaths BaseFileFind::replaceAll(const QString &text, const SearchResultItems if (items.isEmpty()) return {}; - RefactoringFileFactory refactoring; + PlainRefactoringFileFactory refactoring; QHash changes; for (const SearchResultItem &item : items) diff --git a/src/plugins/texteditor/refactoringchanges.cpp b/src/plugins/texteditor/refactoringchanges.cpp index 8287ee09c17..88a2366a8d9 100644 --- a/src/plugins/texteditor/refactoringchanges.cpp +++ b/src/plugins/texteditor/refactoringchanges.cpp @@ -26,13 +26,6 @@ using namespace Utils; namespace TextEditor { -RefactoringFileFactory::~RefactoringFileFactory() = default; - -RefactoringFilePtr RefactoringFileFactory::file(const FilePath &filePath) const -{ - return RefactoringFilePtr(new RefactoringFile(filePath)); -} - RefactoringFile::RefactoringFile(QTextDocument *document, const FilePath &filePath) : m_filePath(filePath) , m_document(document) @@ -474,4 +467,11 @@ RefactoringSelections RefactoringFile::rangesToSelections(QTextDocument *documen return selections; } +RefactoringFileFactory::~RefactoringFileFactory() = default; + +RefactoringFilePtr PlainRefactoringFileFactory::file(const Utils::FilePath &filePath) const +{ + return RefactoringFilePtr(new RefactoringFile(filePath)); +} + } // namespace TextEditor diff --git a/src/plugins/texteditor/refactoringchanges.h b/src/plugins/texteditor/refactoringchanges.h index 43e3524a2d3..5d270b2f652 100644 --- a/src/plugins/texteditor/refactoringchanges.h +++ b/src/plugins/texteditor/refactoringchanges.h @@ -20,12 +20,12 @@ class QTextDocument; QT_END_NAMESPACE namespace TextEditor { -class TextDocument; -class TextEditorWidget; +class PlainRefactoringFileFactory; class RefactoringFile; using RefactoringFilePtr = QSharedPointer; -class RefactoringFileFactory; using RefactoringSelections = QVector>; +class TextDocument; +class TextEditorWidget; // ### listen to the m_editor::destroyed signal? class TEXTEDITOR_EXPORT RefactoringFile @@ -103,17 +103,20 @@ protected: bool m_appliedOnce = false; bool m_formattingEnabled = false; - friend class RefactoringFileFactory; // access to constructor + friend class PlainRefactoringFileFactory; // access to constructor }; class TEXTEDITOR_EXPORT RefactoringFileFactory { public: virtual ~RefactoringFileFactory(); + virtual RefactoringFilePtr file(const Utils::FilePath &filePath) const = 0; +}; - // TODO: Make pure virtual and introduce dedicated subclass for generic refactoring, - // so no one instantiates this one by mistake. - virtual RefactoringFilePtr file(const Utils::FilePath &filePath) const; +class TEXTEDITOR_EXPORT PlainRefactoringFileFactory final : public RefactoringFileFactory +{ +public: + RefactoringFilePtr file(const Utils::FilePath &filePath) const override; }; } // namespace TextEditor diff --git a/src/plugins/texteditor/textdocument.cpp b/src/plugins/texteditor/textdocument.cpp index 4276c81ad71..be0d1a95774 100644 --- a/src/plugins/texteditor/textdocument.cpp +++ b/src/plugins/texteditor/textdocument.cpp @@ -514,7 +514,7 @@ bool TextDocument::applyChangeSet(const ChangeSet &changeSet) { if (changeSet.isEmpty()) return true; - RefactoringFileFactory changes; + PlainRefactoringFileFactory changes; const RefactoringFilePtr file = changes.file(filePath()); file->setChangeSet(changeSet); return file->apply();