forked from qt-creator/qt-creator
QmlDesigner: Keep search on when adding a material or texture
Fixes: QDS-8487 Change-Id: Id02d693a5a707e97555450ce860ee4480e7742eb Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -213,6 +213,11 @@ void MaterialBrowserModel::setSearchText(const QString &searchText)
|
||||
|
||||
m_searchText = lowerSearchText;
|
||||
|
||||
refreshSearch();
|
||||
}
|
||||
|
||||
void MaterialBrowserModel::refreshSearch()
|
||||
{
|
||||
bool isEmpty = false;
|
||||
|
||||
// if selected material goes invisible, select nearest material
|
||||
@@ -256,9 +261,13 @@ void MaterialBrowserModel::setMaterials(const QList<ModelNode> &materials, bool
|
||||
emit isEmptyChanged();
|
||||
}
|
||||
|
||||
setHasQuick3DImport(hasQuick3DImport);
|
||||
if (!m_searchText.isEmpty())
|
||||
refreshSearch();
|
||||
else
|
||||
resetModel();
|
||||
|
||||
updateSelectedMaterial();
|
||||
resetModel();
|
||||
setHasQuick3DImport(hasQuick3DImport);
|
||||
}
|
||||
|
||||
void MaterialBrowserModel::removeMaterial(const ModelNode &material)
|
||||
|
@@ -37,6 +37,7 @@ public:
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
|
||||
void setSearchText(const QString &searchText);
|
||||
void refreshSearch();
|
||||
|
||||
bool hasQuick3DImport() const;
|
||||
void setHasQuick3DImport(bool b);
|
||||
|
@@ -94,6 +94,11 @@ void MaterialBrowserTexturesModel::setSearchText(const QString &searchText)
|
||||
|
||||
m_searchText = lowerSearchText;
|
||||
|
||||
refreshSearch();
|
||||
}
|
||||
|
||||
void MaterialBrowserTexturesModel::refreshSearch()
|
||||
{
|
||||
bool isEmpty = false;
|
||||
|
||||
// if selected texture goes invisible, select nearest one
|
||||
|
@@ -29,6 +29,7 @@ public:
|
||||
QHash<int, QByteArray> roleNames() const override;
|
||||
|
||||
void setSearchText(const QString &searchText);
|
||||
void refreshSearch();
|
||||
|
||||
QList<ModelNode> textures() const;
|
||||
void setTextures(const QList<ModelNode> &textures);
|
||||
|
@@ -244,7 +244,6 @@ void MaterialBrowserView::refreshModel(bool updateImages)
|
||||
}
|
||||
}
|
||||
|
||||
m_widget->clearSearchFilter();
|
||||
m_widget->materialBrowserModel()->setMaterials(materials, m_hasQuick3DImport);
|
||||
m_widget->materialBrowserTexturesModel()->setTextures(textures);
|
||||
m_widget->materialBrowserModel()->setHasMaterialLibrary(matLib.isValid());
|
||||
@@ -366,9 +365,11 @@ void MaterialBrowserView::nodeReparented(const ModelNode &node,
|
||||
}
|
||||
int idx = m_widget->materialBrowserModel()->materialIndex(node);
|
||||
m_widget->materialBrowserModel()->selectMaterial(idx);
|
||||
m_widget->materialBrowserModel()->refreshSearch();
|
||||
} else { // is texture
|
||||
int idx = m_widget->materialBrowserTexturesModel()->textureIndex(node);
|
||||
m_widget->materialBrowserTexturesModel()->selectTexture(idx);
|
||||
m_widget->materialBrowserTexturesModel()->refreshSearch();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -452,8 +453,10 @@ void MaterialBrowserView::customNotification(const AbstractView *view,
|
||||
m_widget->materialBrowserModel()->selectMaterial(idx);
|
||||
} else if (identifier == "selected_texture_changed") {
|
||||
int idx = m_widget->materialBrowserTexturesModel()->textureIndex(nodeList.first());
|
||||
if (idx != -1)
|
||||
if (idx != -1) {
|
||||
m_widget->materialBrowserTexturesModel()->selectTexture(idx);
|
||||
m_widget->materialBrowserTexturesModel()->refreshSearch();
|
||||
}
|
||||
} else if (identifier == "refresh_material_browser") {
|
||||
QTimer::singleShot(0, model(), [this]() {
|
||||
refreshModel(true);
|
||||
|
Reference in New Issue
Block a user