diff options
author | Mahmoud Badri <mahmoud.badri@qt.io> | 2021-03-22 21:32:47 +0200 |
---|---|---|
committer | Mahmoud Badri <mahmoud.badri@qt.io> | 2021-03-23 08:15:51 +0000 |
commit | a52c2519e36498c270c9b6af0ab8d48d50fc224c (patch) | |
tree | ab50c2e572848ebf0c15ac2472d6070285a1e8a5 | |
parent | 6c6aff772f8a5bae682478defd3c1f16dd5b8270 (diff) | |
download | qt-creator-a52c2519e36498c270c9b6af0ab8d48d50fc224c.tar.gz |
QmlDesigner: Fix import version when adding unimported module
Fixes: QDS-3994
Change-Id: If39df641cbfb563a169b3b2e8001f68941fd398c
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
5 files changed, 16 insertions, 10 deletions
diff --git a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemsView.qml b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemsView.qml index 5a3679032d..0c2f8136da 100644 --- a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemsView.qml +++ b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemsView.qml @@ -78,7 +78,6 @@ ScrollView { property string importToRemove: "" property string importToAdd: "" - property var currentItem: null // called from C++ to close context menu on focus out function closeContextMenu() @@ -137,8 +136,8 @@ ScrollView { StudioControls.MenuItem { id: importMenuItem text: qsTr("Add Module: ") + importToAdd - enabled: currentItem - onTriggered: rootView.addImportForItem(currentItem) + enabled: importToAdd !== "" + onTriggered: rootView.addImportForItem(importToAdd) } } } @@ -211,10 +210,7 @@ ScrollView { onShowContextMenu: { if (!itemUsable) { importToAdd = itemRequiredImport - if (importToAdd !== "") { - currentItem = itemLibraryEntry - itemContextMenu.popup() - } + itemContextMenu.popup() } } } diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.cpp index f0a02270b2..4d49a9ace0 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.cpp @@ -141,6 +141,15 @@ void ItemLibraryAddImportModel::update(const QList<Import> &possibleImports) endResetModel(); } +Import ItemLibraryAddImportModel::getImport(const QString &importUrl) const +{ + for (const Import &import : std::as_const(m_importList)) + if (import.url() == importUrl) + return import; + + return {}; +} + void ItemLibraryAddImportModel::setSearchText(const QString &searchText) { QString lowerSearchText = searchText.toLower(); diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.h index 3ed6b3f3b5..c1eb957fbd 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.h @@ -51,6 +51,7 @@ public: Import getImportAt(int index) const; void setPriorityImports(const QSet<QString> &priorityImports); + Import getImport(const QString &importUrl) const; private: QString m_searchText; diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp index 278bc934e3..818553404d 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp @@ -434,12 +434,12 @@ void ItemLibraryWidget::removeImport(const QString &importUrl) m_model->changeImports({}, {importSection->importEntry()}); } -void ItemLibraryWidget::addImportForItem(const QVariant &entry) +void ItemLibraryWidget::addImportForItem(const QString &importUrl) { QTC_ASSERT(m_itemLibraryModel, return); QTC_ASSERT(m_model, return); - Import import = m_itemLibraryModel->entryToImport(entry.value<ItemLibraryEntry>()); + Import import = m_itemLibraryAddImportModel->getImport(importUrl); m_model->changeImports({import}, {}); } diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h index 1a34c7e96a..2883cebb63 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h @@ -90,7 +90,7 @@ public: Q_INVOKABLE void startDragAndDrop(const QVariant &itemLibEntry, const QPointF &mousePos); Q_INVOKABLE void removeImport(const QString &importUrl); - Q_INVOKABLE void addImportForItem(const QVariant &entry); + Q_INVOKABLE void addImportForItem(const QString &importUrl); Q_INVOKABLE void handleTabChanged(int index); Q_INVOKABLE void handleAddModule(); Q_INVOKABLE void handleAddAsset(); |