CppEditor: Remove WorkingCopy::{revision,source}(QString) overloads

... and fix fallout.

Change-Id: I3748d0f90345c0d92321d465abfc3d324ee49a0c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2022-11-23 17:21:15 +01:00
parent f2f1b7c2d7
commit 9ceaf39929
3 changed files with 31 additions and 37 deletions

View File

@@ -3,8 +3,6 @@
#include "cpprefactoringchanges.h"
#include "cppqtstyleindenter.h"
#include "cppcodeformatter.h"
#include "cppeditorconstants.h"
#include <projectexplorer/editorconfiguration.h>
@@ -12,16 +10,18 @@
#include <utils/qtcassert.h>
#include <texteditor/icodestylepreferencesfactory.h>
#include <texteditor/tabsettings.h>
#include <texteditor/textdocument.h>
#include <texteditor/texteditorsettings.h>
#include <QTextDocument>
using namespace CPlusPlus;
using namespace Utils;
namespace CppEditor {
static std::unique_ptr<TextEditor::Indenter> createIndenter(const Utils::FilePath &filePath,
static std::unique_ptr<TextEditor::Indenter> 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<TextEditor::RefactoringChangesData> &data)
CppRefactoringFile::CppRefactoringFile(const FilePath &filePath, const QSharedPointer<TextEditor::RefactoringChangesData> &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

View File

@@ -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; }

View File

@@ -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<BaseTextEditor *>(
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 + "::"