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 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,8 +210,6 @@ ScrollView {
onShowContextMenu: {
if (!itemUsable) {
importToAdd = itemRequiredImport
if (importToAdd !== "") {
currentItem = itemLibraryEntry
itemContextMenu.popup()
}
}
@@ -226,4 +223,3 @@ ScrollView {
}
}
}
}

View File

@@ -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();

View File

@@ -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;

View File

@@ -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}, {});
}

View File

@@ -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();