QmlDesigner: Allow to disable possible imports

Getting all possible imports can be slow and
is not required in every context.

Change-Id: I75c50e0f6600dfa8fca7dfec26382783b084bdb9
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
Thomas Hartmann
2022-11-23 12:55:12 +01:00
parent 6943322b42
commit 07e96c299a
3 changed files with 17 additions and 0 deletions

View File

@@ -167,6 +167,9 @@ public:
void resetPossibleImports(); void resetPossibleImports();
bool possibleImportsEnabled() const;
void setPossibleImportsEnabled(bool b);
signals: signals:
void modelInterfaceProjectUpdated(); void modelInterfaceProjectUpdated();
@@ -212,6 +215,7 @@ private: //variables
bool m_restoringAuxData = false; bool m_restoringAuxData = false;
bool m_modelAttachPending = false; bool m_modelAttachPending = false;
bool m_allowComponentRoot = false; bool m_allowComponentRoot = false;
bool m_possibleImportsEnabled = true;
mutable QHash<int, ModelNode> m_canonicalIntModelNode; mutable QHash<int, ModelNode> m_canonicalIntModelNode;
mutable QHash<ModelNode, int> m_canonicalModelNodeInt; mutable QHash<ModelNode, int> m_canonicalModelNodeInt;

View File

@@ -693,6 +693,16 @@ void RewriterView::resetPossibleImports()
m_textToModelMerger->clearPossibleImportKeys(); m_textToModelMerger->clearPossibleImportKeys();
} }
bool RewriterView::possibleImportsEnabled() const
{
return m_possibleImportsEnabled;
}
void RewriterView::setPossibleImportsEnabled(bool b)
{
m_possibleImportsEnabled = b;
}
Internal::ModelNodePositionStorage *RewriterView::positionStorage() const Internal::ModelNodePositionStorage *RewriterView::positionStorage() const
{ {
return m_positionStorage.data(); return m_positionStorage.data();

View File

@@ -984,6 +984,9 @@ static QList<QmlDesigner::Import> generatePossibleLibraryImports(const QHash<QSt
void TextToModelMerger::setupPossibleImports(const QmlJS::Snapshot &snapshot, const QmlJS::ViewerContext &viewContext) void TextToModelMerger::setupPossibleImports(const QmlJS::Snapshot &snapshot, const QmlJS::ViewerContext &viewContext)
{ {
if (!m_rewriterView->possibleImportsEnabled())
return;
static QUrl lastProjectUrl; static QUrl lastProjectUrl;
auto &externalDependencies = m_rewriterView->externalDependencies(); auto &externalDependencies = m_rewriterView->externalDependencies();
auto projectUrl = externalDependencies.projectUrl(); auto projectUrl = externalDependencies.projectUrl();