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;
|
m_searchText = lowerSearchText;
|
||||||
|
|
||||||
|
refreshSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MaterialBrowserModel::refreshSearch()
|
||||||
|
{
|
||||||
bool isEmpty = false;
|
bool isEmpty = false;
|
||||||
|
|
||||||
// if selected material goes invisible, select nearest material
|
// if selected material goes invisible, select nearest material
|
||||||
@@ -256,9 +261,13 @@ void MaterialBrowserModel::setMaterials(const QList<ModelNode> &materials, bool
|
|||||||
emit isEmptyChanged();
|
emit isEmptyChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
setHasQuick3DImport(hasQuick3DImport);
|
if (!m_searchText.isEmpty())
|
||||||
updateSelectedMaterial();
|
refreshSearch();
|
||||||
|
else
|
||||||
resetModel();
|
resetModel();
|
||||||
|
|
||||||
|
updateSelectedMaterial();
|
||||||
|
setHasQuick3DImport(hasQuick3DImport);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaterialBrowserModel::removeMaterial(const ModelNode &material)
|
void MaterialBrowserModel::removeMaterial(const ModelNode &material)
|
||||||
|
@@ -37,6 +37,7 @@ public:
|
|||||||
QHash<int, QByteArray> roleNames() const override;
|
QHash<int, QByteArray> roleNames() const override;
|
||||||
|
|
||||||
void setSearchText(const QString &searchText);
|
void setSearchText(const QString &searchText);
|
||||||
|
void refreshSearch();
|
||||||
|
|
||||||
bool hasQuick3DImport() const;
|
bool hasQuick3DImport() const;
|
||||||
void setHasQuick3DImport(bool b);
|
void setHasQuick3DImport(bool b);
|
||||||
|
@@ -94,6 +94,11 @@ void MaterialBrowserTexturesModel::setSearchText(const QString &searchText)
|
|||||||
|
|
||||||
m_searchText = lowerSearchText;
|
m_searchText = lowerSearchText;
|
||||||
|
|
||||||
|
refreshSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MaterialBrowserTexturesModel::refreshSearch()
|
||||||
|
{
|
||||||
bool isEmpty = false;
|
bool isEmpty = false;
|
||||||
|
|
||||||
// if selected texture goes invisible, select nearest one
|
// if selected texture goes invisible, select nearest one
|
||||||
|
@@ -29,6 +29,7 @@ public:
|
|||||||
QHash<int, QByteArray> roleNames() const override;
|
QHash<int, QByteArray> roleNames() const override;
|
||||||
|
|
||||||
void setSearchText(const QString &searchText);
|
void setSearchText(const QString &searchText);
|
||||||
|
void refreshSearch();
|
||||||
|
|
||||||
QList<ModelNode> textures() const;
|
QList<ModelNode> textures() const;
|
||||||
void setTextures(const QList<ModelNode> &textures);
|
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->materialBrowserModel()->setMaterials(materials, m_hasQuick3DImport);
|
||||||
m_widget->materialBrowserTexturesModel()->setTextures(textures);
|
m_widget->materialBrowserTexturesModel()->setTextures(textures);
|
||||||
m_widget->materialBrowserModel()->setHasMaterialLibrary(matLib.isValid());
|
m_widget->materialBrowserModel()->setHasMaterialLibrary(matLib.isValid());
|
||||||
@@ -366,9 +365,11 @@ void MaterialBrowserView::nodeReparented(const ModelNode &node,
|
|||||||
}
|
}
|
||||||
int idx = m_widget->materialBrowserModel()->materialIndex(node);
|
int idx = m_widget->materialBrowserModel()->materialIndex(node);
|
||||||
m_widget->materialBrowserModel()->selectMaterial(idx);
|
m_widget->materialBrowserModel()->selectMaterial(idx);
|
||||||
|
m_widget->materialBrowserModel()->refreshSearch();
|
||||||
} else { // is texture
|
} else { // is texture
|
||||||
int idx = m_widget->materialBrowserTexturesModel()->textureIndex(node);
|
int idx = m_widget->materialBrowserTexturesModel()->textureIndex(node);
|
||||||
m_widget->materialBrowserTexturesModel()->selectTexture(idx);
|
m_widget->materialBrowserTexturesModel()->selectTexture(idx);
|
||||||
|
m_widget->materialBrowserTexturesModel()->refreshSearch();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -452,8 +453,10 @@ void MaterialBrowserView::customNotification(const AbstractView *view,
|
|||||||
m_widget->materialBrowserModel()->selectMaterial(idx);
|
m_widget->materialBrowserModel()->selectMaterial(idx);
|
||||||
} else if (identifier == "selected_texture_changed") {
|
} else if (identifier == "selected_texture_changed") {
|
||||||
int idx = m_widget->materialBrowserTexturesModel()->textureIndex(nodeList.first());
|
int idx = m_widget->materialBrowserTexturesModel()->textureIndex(nodeList.first());
|
||||||
if (idx != -1)
|
if (idx != -1) {
|
||||||
m_widget->materialBrowserTexturesModel()->selectTexture(idx);
|
m_widget->materialBrowserTexturesModel()->selectTexture(idx);
|
||||||
|
m_widget->materialBrowserTexturesModel()->refreshSearch();
|
||||||
|
}
|
||||||
} else if (identifier == "refresh_material_browser") {
|
} else if (identifier == "refresh_material_browser") {
|
||||||
QTimer::singleShot(0, model(), [this]() {
|
QTimer::singleShot(0, model(), [this]() {
|
||||||
refreshModel(true);
|
refreshModel(true);
|
||||||
|
Reference in New Issue
Block a user