forked from qt-creator/qt-creator
QmlDesigner: Reset possible imports explicitly
We do not reset/set the possible imports whenever we change the document anymore, since this became really slow. Instead we set those once per project, but we can reset them explicitly when required. The bundleimporter and assetimporter creates new imports, therefore we reset the possible imports. Change-Id: I112bd3c42f1c92f5314407883e86b4dedff45f75 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -692,6 +692,7 @@ void ItemLibraryAssetImporter::finalizeQuick3DImport()
|
|||||||
QTimer *timer = new QTimer(parent());
|
QTimer *timer = new QTimer(parent());
|
||||||
static int counter;
|
static int counter;
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
|
||||||
timer->callOnTimeout([this, timer, progressTitle, model, result]() {
|
timer->callOnTimeout([this, timer, progressTitle, model, result]() {
|
||||||
if (!isCancelled()) {
|
if (!isCancelled()) {
|
||||||
notifyProgress(++counter, progressTitle);
|
notifyProgress(++counter, progressTitle);
|
||||||
@@ -699,6 +700,8 @@ void ItemLibraryAssetImporter::finalizeQuick3DImport()
|
|||||||
if (result.isCanceled() || result.isFinished())
|
if (result.isCanceled() || result.isFinished())
|
||||||
counter = 49; // skip to next step
|
counter = 49; // skip to next step
|
||||||
} else if (counter == 50) {
|
} else if (counter == 50) {
|
||||||
|
if (model && model->rewriterView())
|
||||||
|
model->rewriterView()->resetPossibleImports();
|
||||||
model->rewriterView()->textModifier()->replace(0, 0, {});
|
model->rewriterView()->textModifier()->replace(0, 0, {});
|
||||||
} else if (counter < 100) {
|
} else if (counter < 100) {
|
||||||
try {
|
try {
|
||||||
|
@@ -205,6 +205,9 @@ void BundleImporter::handleImportTimer()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (model && model->rewriterView())
|
||||||
|
model->rewriterView()->resetPossibleImports();
|
||||||
|
|
||||||
if (m_importAddPending) {
|
if (m_importAddPending) {
|
||||||
try {
|
try {
|
||||||
Import import = Import::createLibraryImport(m_moduleName, "1.0");
|
Import import = Import::createLibraryImport(m_moduleName, "1.0");
|
||||||
|
@@ -162,6 +162,9 @@ public:
|
|||||||
|
|
||||||
void setAllowComponentRoot(bool allow);
|
void setAllowComponentRoot(bool allow);
|
||||||
bool allowComponentRoot() const;
|
bool allowComponentRoot() const;
|
||||||
|
|
||||||
|
void resetPossibleImports();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void modelInterfaceProjectUpdated();
|
void modelInterfaceProjectUpdated();
|
||||||
|
|
||||||
|
@@ -688,6 +688,11 @@ bool RewriterView::allowComponentRoot() const
|
|||||||
return m_allowComponentRoot;
|
return m_allowComponentRoot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RewriterView::resetPossibleImports()
|
||||||
|
{
|
||||||
|
m_textToModelMerger->clearPossibleImportKeys();
|
||||||
|
}
|
||||||
|
|
||||||
Internal::ModelNodePositionStorage *RewriterView::positionStorage() const
|
Internal::ModelNodePositionStorage *RewriterView::positionStorage() const
|
||||||
{
|
{
|
||||||
return m_positionStorage.data();
|
return m_positionStorage.data();
|
||||||
|
@@ -2452,6 +2452,11 @@ QList<QmlTypeData> TextToModelMerger::getQMLSingletons() const
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TextToModelMerger::clearPossibleImportKeys()
|
||||||
|
{
|
||||||
|
m_possibleImportKeys.clear();
|
||||||
|
}
|
||||||
|
|
||||||
QString TextToModelMerger::textAt(const Document::Ptr &doc,
|
QString TextToModelMerger::textAt(const Document::Ptr &doc,
|
||||||
const SourceLocation &location)
|
const SourceLocation &location)
|
||||||
{
|
{
|
||||||
|
@@ -119,6 +119,8 @@ public:
|
|||||||
|
|
||||||
QList<QmlTypeData> getQMLSingletons() const;
|
QList<QmlTypeData> getQMLSingletons() const;
|
||||||
|
|
||||||
|
void clearPossibleImportKeys();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setupCustomParserNode(const ModelNode &node);
|
void setupCustomParserNode(const ModelNode &node);
|
||||||
void setupComponent(const ModelNode &node);
|
void setupComponent(const ModelNode &node);
|
||||||
|
Reference in New Issue
Block a user