diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/importmanager/importmanagerview.cpp')
-rw-r--r-- | src/plugins/qmldesigner/components/importmanager/importmanagerview.cpp | 16 |
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()); } |