forked from qt-creator/qt-creator
CppEditor: Avoid a FilePath <-> QString roundtrip
Change-Id: Ia7860e04090aee8b7fae18cdc5f2d85880f29d69 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -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));
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user