QmlDesigner: Fix import version when adding unimported module

Fixes: QDS-3994
Change-Id: If39df641cbfb563a169b3b2e8001f68941fd398c
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Mahmoud Badri
2021-03-22 21:32:47 +02:00
parent 6c6aff772f
commit a52c2519e3
5 changed files with 16 additions and 10 deletions

View File

@@ -78,7 +78,6 @@ ScrollView {
property string importToRemove: "" property string importToRemove: ""
property string importToAdd: "" property string importToAdd: ""
property var currentItem: null
// called from C++ to close context menu on focus out // called from C++ to close context menu on focus out
function closeContextMenu() function closeContextMenu()
@@ -137,8 +136,8 @@ ScrollView {
StudioControls.MenuItem { StudioControls.MenuItem {
id: importMenuItem id: importMenuItem
text: qsTr("Add Module: ") + importToAdd text: qsTr("Add Module: ") + importToAdd
enabled: currentItem enabled: importToAdd !== ""
onTriggered: rootView.addImportForItem(currentItem) onTriggered: rootView.addImportForItem(importToAdd)
} }
} }
} }
@@ -211,10 +210,7 @@ ScrollView {
onShowContextMenu: { onShowContextMenu: {
if (!itemUsable) { if (!itemUsable) {
importToAdd = itemRequiredImport importToAdd = itemRequiredImport
if (importToAdd !== "") { itemContextMenu.popup()
currentItem = itemLibraryEntry
itemContextMenu.popup()
}
} }
} }
} }

View File

@@ -141,6 +141,15 @@ void ItemLibraryAddImportModel::update(const QList<Import> &possibleImports)
endResetModel(); 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) void ItemLibraryAddImportModel::setSearchText(const QString &searchText)
{ {
QString lowerSearchText = searchText.toLower(); QString lowerSearchText = searchText.toLower();

View File

@@ -51,6 +51,7 @@ public:
Import getImportAt(int index) const; Import getImportAt(int index) const;
void setPriorityImports(const QSet<QString> &priorityImports); void setPriorityImports(const QSet<QString> &priorityImports);
Import getImport(const QString &importUrl) const;
private: private:
QString m_searchText; QString m_searchText;

View File

@@ -434,12 +434,12 @@ void ItemLibraryWidget::removeImport(const QString &importUrl)
m_model->changeImports({}, {importSection->importEntry()}); 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_itemLibraryModel, return);
QTC_ASSERT(m_model, return); QTC_ASSERT(m_model, return);
Import import = m_itemLibraryModel->entryToImport(entry.value<ItemLibraryEntry>()); Import import = m_itemLibraryAddImportModel->getImport(importUrl);
m_model->changeImports({import}, {}); m_model->changeImports({import}, {});
} }

View File

@@ -90,7 +90,7 @@ public:
Q_INVOKABLE void startDragAndDrop(const QVariant &itemLibEntry, const QPointF &mousePos); Q_INVOKABLE void startDragAndDrop(const QVariant &itemLibEntry, const QPointF &mousePos);
Q_INVOKABLE void removeImport(const QString &importUrl); 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 handleTabChanged(int index);
Q_INVOKABLE void handleAddModule(); Q_INVOKABLE void handleAddModule();
Q_INVOKABLE void handleAddAsset(); Q_INVOKABLE void handleAddAsset();