aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2020-04-30 15:11:01 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2020-05-04 07:38:55 +0000
commit790ed7ed818d24d53bfea677fc92298e13769cee (patch)
treec0997a05c1a02ea6df780eb01a7ed41b83236b0a /src/plugins/qmldesigner
parent9151e0b58556c376dc2b1c657a4bd052d5081cae (diff)
QmlDesigner: Delay item library update if content can't be resolved
Is some situations, such as creating a new project, the item library model can be updated too early, before the type information is complete. In those cases, try again after a short delay. Change-Id: I47d4766656280db46ef7473796dda961b765c026 Fixes: QDS-2023 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner')
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp12
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
index caf0663dce..3f7ca2c366 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
@@ -384,7 +384,19 @@ void ItemLibraryWidget::updateModel()
{
QTC_ASSERT(m_itemLibraryModel, return);
+ if (m_compressionTimer.isActive()) {
+ m_updateRetry = false;
+ m_compressionTimer.stop();
+ }
+
m_itemLibraryModel->update(m_itemLibraryInfo.data(), m_model.data());
+
+ if (m_itemLibraryModel->rowCount() == 0 && !m_updateRetry) {
+ m_updateRetry = true; // Only retry once to avoid endless loops
+ m_compressionTimer.start();
+ } else {
+ m_updateRetry = false;
+ }
updateImports();
updateSearch();
}
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h
index 6e8fc0340a..11dea7d0c1 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h
@@ -121,6 +121,7 @@ private:
QPointer<Model> m_model;
FilterChangeFlag m_filterFlag;
ItemLibraryEntry m_currentitemLibraryEntry;
+ bool m_updateRetry = false;
};
}