From 9ceaf399299512f36a4fda37826bc6e21fbd26e1 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 23 Nov 2022 17:21:15 +0100 Subject: [PATCH] CppEditor: Remove WorkingCopy::{revision,source}(QString) overloads ... and fix fallout. Change-Id: I3748d0f90345c0d92321d465abfc3d324ee49a0c Reviewed-by: Christian Stenger --- .../cppeditor/cpprefactoringchanges.cpp | 31 +++++++++---------- src/plugins/cppeditor/cppworkingcopy.h | 6 ---- src/plugins/designer/qtcreatorintegration.cpp | 31 ++++++++++--------- 3 files changed, 31 insertions(+), 37 deletions(-) diff --git a/src/plugins/cppeditor/cpprefactoringchanges.cpp b/src/plugins/cppeditor/cpprefactoringchanges.cpp index 799d0e71b2d..1a57b5d3943 100644 --- a/src/plugins/cppeditor/cpprefactoringchanges.cpp +++ b/src/plugins/cppeditor/cpprefactoringchanges.cpp @@ -3,8 +3,6 @@ #include "cpprefactoringchanges.h" -#include "cppqtstyleindenter.h" -#include "cppcodeformatter.h" #include "cppeditorconstants.h" #include @@ -12,16 +10,18 @@ #include #include +#include #include #include #include using namespace CPlusPlus; +using namespace Utils; namespace CppEditor { -static std::unique_ptr createIndenter(const Utils::FilePath &filePath, +static std::unique_ptr createIndenter(const FilePath &filePath, QTextDocument *textDocument) { TextEditor::ICodeStylePreferencesFactory *factory @@ -48,18 +48,17 @@ CppRefactoringFilePtr CppRefactoringChanges::file(TextEditor::TextEditorWidget * return result; } -CppRefactoringFilePtr CppRefactoringChanges::file(const Utils::FilePath &filePath) const +CppRefactoringFilePtr CppRefactoringChanges::file(const FilePath &filePath) const { CppRefactoringFilePtr result(new CppRefactoringFile(filePath, m_data)); return result; } -CppRefactoringFileConstPtr CppRefactoringChanges::fileNoEditor(const Utils::FilePath &filePath) const +CppRefactoringFileConstPtr CppRefactoringChanges::fileNoEditor(const FilePath &filePath) const { QTextDocument *document = nullptr; - const QString fileName = filePath.toString(); - if (data()->m_workingCopy.contains(fileName)) - document = new QTextDocument(QString::fromUtf8(data()->m_workingCopy.source(fileName))); + if (data()->m_workingCopy.contains(filePath)) + document = new QTextDocument(QString::fromUtf8(data()->m_workingCopy.source(filePath))); CppRefactoringFilePtr result(new CppRefactoringFile(document, filePath)); result->m_data = m_data; @@ -71,14 +70,14 @@ const Snapshot &CppRefactoringChanges::snapshot() const return data()->m_snapshot; } -CppRefactoringFile::CppRefactoringFile(const Utils::FilePath &filePath, const QSharedPointer &data) +CppRefactoringFile::CppRefactoringFile(const FilePath &filePath, const QSharedPointer &data) : RefactoringFile(filePath, data) { const Snapshot &snapshot = this->data()->m_snapshot; m_cppDocument = snapshot.document(filePath.toString()); } -CppRefactoringFile::CppRefactoringFile(QTextDocument *document, const Utils::FilePath &filePath) +CppRefactoringFile::CppRefactoringFile(QTextDocument *document, const FilePath &filePath) : RefactoringFile(document, filePath) { } @@ -134,7 +133,7 @@ bool CppRefactoringFile::isCursorOn(const AST *ast) const return cursorBegin >= start && cursorBegin <= end; } -Utils::ChangeSet::Range CppRefactoringFile::range(unsigned tokenIndex) const +ChangeSet::Range CppRefactoringFile::range(unsigned tokenIndex) const { const Token &token = tokenAt(tokenIndex); int line, column; @@ -143,7 +142,7 @@ Utils::ChangeSet::Range CppRefactoringFile::range(unsigned tokenIndex) const return {start, start + token.utf16chars()}; } -Utils::ChangeSet::Range CppRefactoringFile::range(const AST *ast) const +ChangeSet::Range CppRefactoringFile::range(const AST *ast) const { return {startOf(ast), endOf(ast)}; } @@ -218,7 +217,7 @@ CppRefactoringChangesData::CppRefactoringChangesData(const Snapshot &snapshot) {} void CppRefactoringChangesData::indentSelection(const QTextCursor &selection, - const Utils::FilePath &filePath, + const FilePath &filePath, const TextEditor::TextDocument *textDocument) const { if (textDocument) { // use the indenter from the textDocument if there is one, can be ClangFormat @@ -231,7 +230,7 @@ void CppRefactoringChangesData::indentSelection(const QTextCursor &selection, } void CppRefactoringChangesData::reindentSelection(const QTextCursor &selection, - const Utils::FilePath &filePath, + const FilePath &filePath, const TextEditor::TextDocument *textDocument) const { if (textDocument) { // use the indenter from the textDocument if there is one, can be ClangFormat @@ -243,9 +242,9 @@ void CppRefactoringChangesData::reindentSelection(const QTextCursor &selection, } } -void CppRefactoringChangesData::fileChanged(const Utils::FilePath &filePath) +void CppRefactoringChangesData::fileChanged(const FilePath &filePath) { m_modelManager->updateSourceFiles({filePath.toString()}); } -} // namespace CppEditor +} // CppEditor diff --git a/src/plugins/cppeditor/cppworkingcopy.h b/src/plugins/cppeditor/cppworkingcopy.h index f94b8c4855b..31ea5758d03 100644 --- a/src/plugins/cppeditor/cppworkingcopy.h +++ b/src/plugins/cppeditor/cppworkingcopy.h @@ -30,15 +30,9 @@ public: bool contains(const Utils::FilePath &fileName) const { return _elements.contains(fileName); } - QByteArray source(const QString &fileName) const - { return source(Utils::FilePath::fromString(fileName)); } - QByteArray source(const Utils::FilePath &fileName) const { return _elements.value(fileName).first; } - unsigned revision(const QString &fileName) const - { return revision(Utils::FilePath::fromString(fileName)); } - unsigned revision(const Utils::FilePath &fileName) const { return _elements.value(fileName).second; } diff --git a/src/plugins/designer/qtcreatorintegration.cpp b/src/plugins/designer/qtcreatorintegration.cpp index a5f66054f43..b077453bf0a 100644 --- a/src/plugins/designer/qtcreatorintegration.cpp +++ b/src/plugins/designer/qtcreatorintegration.cpp @@ -223,16 +223,16 @@ static Function *findDeclaration(const Class *cl, const QString &functionName) return nullptr; } -static inline BaseTextEditor *editorAt(const QString &fileName, int line, int column) +static BaseTextEditor *editorAt(const FilePath &filePath, int line, int column) { return qobject_cast( - Core::EditorManager::openEditorAt({FilePath::fromString(fileName), line, column}, + Core::EditorManager::openEditorAt({filePath, line, column}, Utils::Id(), Core::EditorManager::DoNotMakeVisible)); } static void addDeclaration(const Snapshot &snapshot, - const QString &fileName, + const FilePath &filePath, const Class *cl, const QString &functionName) { @@ -241,13 +241,13 @@ static void addDeclaration(const Snapshot &snapshot, CppEditor::CppRefactoringChanges refactoring(snapshot); CppEditor::InsertionPointLocator find(refactoring); const CppEditor::InsertionLocation loc = find.methodDeclarationInClass( - FilePath::fromString(fileName), cl, CppEditor::InsertionPointLocator::PrivateSlot); + filePath, cl, CppEditor::InsertionPointLocator::PrivateSlot); // //! \todo change this to use the Refactoring changes. // - if (BaseTextEditor *editor = editorAt(fileName, loc.line(), loc.column() - 1)) { + if (BaseTextEditor *editor = editorAt(filePath, loc.line(), loc.column() - 1)) { QTextCursor tc = editor->textCursor(); int pos = tc.position(); tc.beginEditBlock(); @@ -383,20 +383,20 @@ static inline const QStringList uiClassNames(QString formObjectName) return {formObjectName, alt}; } -static Document::Ptr getParsedDocument(const QString &fileName, +static Document::Ptr getParsedDocument(const FilePath &filePath, CppEditor::WorkingCopy &workingCopy, Snapshot &snapshot) { QByteArray src; - if (workingCopy.contains(fileName)) { - src = workingCopy.source(fileName); + if (workingCopy.contains(filePath)) { + src = workingCopy.source(filePath); } else { Utils::FileReader reader; - if (reader.fetch(Utils::FilePath::fromString(fileName))) // ### FIXME error reporting + if (reader.fetch(filePath)) // ### FIXME error reporting src = QString::fromLocal8Bit(reader.data()).toUtf8(); } - Document::Ptr doc = snapshot.preprocessedDocument(src, FilePath::fromString(fileName)); + Document::Ptr doc = snapshot.preprocessedDocument(src, filePath); doc->check(); snapshot.insert(doc); return doc; @@ -503,11 +503,11 @@ bool QtCreatorIntegration::navigateToSlot(const QString &objectName, qDebug() << Q_FUNC_INFO << "Found " << uiClass << declDoc->filePath() << " checking " << functionName << functionNameWithParameterNames; Function *fun = findDeclaration(cl, functionName); - QString declFilePath; + FilePath declFilePath; if (!fun) { // add function declaration to cl CppEditor::WorkingCopy workingCopy = CppEditor::CppModelManager::instance()->workingCopy(); - declFilePath = declDoc->filePath().toString(); + declFilePath = declDoc->filePath(); getParsedDocument(declFilePath, workingCopy, docTable); addDeclaration(docTable, declFilePath, cl, functionNameWithParameterNames); @@ -532,7 +532,7 @@ bool QtCreatorIntegration::navigateToSlot(const QString &objectName, QTC_ASSERT(cl, return false); fun = findDeclaration(cl, functionName); } else { - declFilePath = QLatin1String(fun->fileName()); + declFilePath = FilePath::fromString(QLatin1String(fun->fileName())); } QTC_ASSERT(fun, return false); @@ -543,11 +543,12 @@ bool QtCreatorIntegration::navigateToSlot(const QString &objectName, {FilePath::fromString(QString::fromUtf8(funImpl->fileName())), funImpl->line() + 2}); return true; } - const QString implFilePath = CppEditor::correspondingHeaderOrSource(declFilePath); + const QString implFilePath = CppEditor::correspondingHeaderOrSource(declFilePath.toString()); const CppEditor::InsertionLocation location = CppEditor::insertLocationForMethodDefinition (fun, false, CppEditor::NamespaceHandling::CreateMissing, refactoring, implFilePath); - if (BaseTextEditor *editor = editorAt(location.fileName(), location.line(), location.column())) { + if (BaseTextEditor *editor = editorAt(FilePath::fromString(location.fileName()), + location.line(), location.column())) { Overview o; const QString className = o.prettyName(cl->name()); const QString definition = location.prefix() + "void " + className + "::"