CppEditor: Avoid a FilePath <-> QString roundtrip

Change-Id: Ia7860e04090aee8b7fae18cdc5f2d85880f29d69
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2022-08-10 11:13:32 +02:00
parent 0197a62fcf
commit 8953d68f9a
4 changed files with 6 additions and 8 deletions

View File

@@ -608,7 +608,7 @@ QList<AssistProposalItemInterface *> ClangdCompletionAssistProcessor::generateCo
return itemGenerator(items); return itemGenerator(items);
const QString content = doc->toPlainText(); const QString content = doc->toPlainText();
const bool requiresSignal = CppModelManager::instance()->getSignalSlotType( const bool requiresSignal = CppModelManager::instance()->getSignalSlotType(
filePath().toString(), content.toUtf8(), pos) filePath(), content.toUtf8(), pos)
== SignalSlotType::NewStyleSignal; == SignalSlotType::NewStyleSignal;
if (requiresSignal) if (requiresSignal)
return itemGenerator(Utils::filtered(items, criterion)); return itemGenerator(Utils::filtered(items, criterion));

View File

@@ -1165,9 +1165,7 @@ bool CppEditorWidget::isOldStyleSignalOrSlot() const
const QString content = textDocument()->plainText(); const QString content = textDocument()->plainText();
return CppEditor::CppModelManager::instance() return CppEditor::CppModelManager::instance()
->getSignalSlotType(textDocument()->filePath().toString(), ->getSignalSlotType(textDocument()->filePath(), content.toUtf8(), tc.position())
content.toUtf8(),
tc.position())
== CppEditor::SignalSlotType::OldStyleSignal; == CppEditor::SignalSlotType::OldStyleSignal;
} }

View File

@@ -92,6 +92,7 @@ static const bool DumpProjectInfo = qgetenv("QTC_DUMP_PROJECT_INFO") == "1";
using namespace CPlusPlus; using namespace CPlusPlus;
using namespace ProjectExplorer; using namespace ProjectExplorer;
using namespace Utils;
#ifdef QTCREATOR_WITH_DUMP_AST #ifdef QTCREATOR_WITH_DUMP_AST
@@ -357,7 +358,7 @@ int argumentPositionOf(const AST *last, const CallAST *callAst)
return 0; return 0;
} }
SignalSlotType CppModelManager::getSignalSlotType(const QString &filePath, SignalSlotType CppModelManager::getSignalSlotType(const FilePath &filePath,
const QByteArray &content, const QByteArray &content,
int position) const int position) const
{ {
@@ -371,8 +372,7 @@ SignalSlotType CppModelManager::getSignalSlotType(const QString &filePath,
fixedContent.insert(position, 'x'); fixedContent.insert(position, 'x');
const Snapshot snapshot = this->snapshot(); const Snapshot snapshot = this->snapshot();
const Document::Ptr document = snapshot.preprocessedDocument(fixedContent, const Document::Ptr document = snapshot.preprocessedDocument(fixedContent, filePath);
Utils::FilePath::fromString(filePath));
document->check(); document->check();
QTextDocument textDocument(QString::fromUtf8(fixedContent)); QTextDocument textDocument(QString::fromUtf8(fixedContent));
QTextCursor cursor(&textDocument); QTextCursor cursor(&textDocument);

View File

@@ -166,7 +166,7 @@ public:
QList<int> references(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context); QList<int> references(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context);
SignalSlotType getSignalSlotType(const QString &filePath, SignalSlotType getSignalSlotType(const Utils::FilePath &filePath,
const QByteArray &content, const QByteArray &content,
int position) const; int position) const;