aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/importmanager/importmanagerview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/importmanager/importmanagerview.cpp')
-rw-r--r--src/plugins/qmldesigner/components/importmanager/importmanagerview.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/components/importmanager/importmanagerview.cpp b/src/plugins/qmldesigner/components/importmanager/importmanagerview.cpp
index df9590af64..a4cd31e789 100644
--- a/src/plugins/qmldesigner/components/importmanager/importmanagerview.cpp
+++ b/src/plugins/qmldesigner/components/importmanager/importmanagerview.cpp
@@ -79,16 +79,24 @@ void ImportManagerView::modelAboutToBeDetached(Model *model)
AbstractView::modelAboutToBeDetached(model);
}
-void ImportManagerView::importsChanged(const QList<Import> &/*addedImports*/, const QList<Import> &/*removedImports*/)
+void ImportManagerView::importsChanged(const QList<Import> &addedImports, const QList<Import> &removedImports)
{
- if (m_importsWidget)
+ Q_UNUSED(addedImports);
+ Q_UNUSED(removedImports);
+ if (m_importsWidget) {
m_importsWidget->setImports(model()->imports());
+ // setImports recreates labels, so we need to update used imports, as it is not guaranteed
+ // usedImportsChanged notification will come after this.
+ m_importsWidget->setUsedImports(model()->usedImports());
+ // setPossibleImports done in response to possibleImportsChanged comes before importsChanged,
+ // which causes incorrect "already used" filtering to be applied to possible imports list,
+ // so update the possible imports list here, too.
+ m_importsWidget->setPossibleImports(model()->possibleImports());
+ }
}
void ImportManagerView::possibleImportsChanged(const QList<Import> &/*possibleImports*/)
{
- QmlDesignerPlugin::instance()->currentDesignDocument()->updateSubcomponentManager();
-
if (m_importsWidget)
m_importsWidget->setPossibleImports(model()->possibleImports());
}