diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2020-04-30 15:11:01 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2020-05-04 07:38:55 +0000 |
commit | 790ed7ed818d24d53bfea677fc92298e13769cee (patch) | |
tree | c0997a05c1a02ea6df780eb01a7ed41b83236b0a /src/plugins/qmldesigner | |
parent | 9151e0b58556c376dc2b1c657a4bd052d5081cae (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.cpp | 12 | ||||
-rw-r--r-- | src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h | 1 |
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; }; } |