summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMahmoud Badri <mahmoud.badri@qt.io>2021-03-22 21:32:47 +0200
committerMahmoud Badri <mahmoud.badri@qt.io>2021-03-23 08:15:51 +0000
commita52c2519e36498c270c9b6af0ab8d48d50fc224c (patch)
treeab50c2e572848ebf0c15ac2472d6070285a1e8a5
parent6c6aff772f8a5bae682478defd3c1f16dd5b8270 (diff)
downloadqt-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>
-rw-r--r--share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemsView.qml10
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.cpp9
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibraryaddimportmodel.h1
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp4
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h2
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();