1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-09-16 09:26:28 +02:00

Fix filtering of objects by terrain in editor

This commit is contained in:
Ivan Savenko
2023-04-10 14:33:53 +03:00
parent 02c9a3f3d8
commit 5046f916d6
2 changed files with 10 additions and 6 deletions

View File

@@ -553,7 +553,10 @@ void MainWindow::loadObjectsTree()
connect(b, &QPushButton::clicked, this, [this, terrain]{ terrainButtonClicked(terrain->getId()); }); connect(b, &QPushButton::clicked, this, [this, terrain]{ terrainButtonClicked(terrain->getId()); });
//filter //filter
ui->terrainFilterCombo->addItem(QString::fromStdString(terrain->getNameTranslated())); QString displayName = QString::fromStdString(terrain->getNameTranslated());
QString uniqueName = QString::fromStdString(terrain->getJsonKey());
ui->terrainFilterCombo->addItem(displayName, QVariant(uniqueName));
} }
//add spacer to keep terrain button on the top //add spacer to keep terrain button on the top
ui->terrainLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding)); ui->terrainLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding));
@@ -929,23 +932,24 @@ void MainWindow::treeViewSelected(const QModelIndex & index, const QModelIndex &
preparePreview(index); preparePreview(index);
} }
void MainWindow::on_terrainFilterCombo_currentTextChanged(const QString &arg1) void MainWindow::on_terrainFilterCombo_currentIndexChanged(int index)
{ {
if(!objectBrowser) if(!objectBrowser)
return; return;
QString uniqueName = ui->terrainFilterCombo->itemData(index).toString();
objectBrowser->terrain = TerrainId(ETerrainId::ANY_TERRAIN); objectBrowser->terrain = TerrainId(ETerrainId::ANY_TERRAIN);
if (!arg1.isEmpty()) if (!uniqueName.isEmpty())
{ {
for (auto const & terrain : VLC->terrainTypeHandler->objects) for (auto const & terrain : VLC->terrainTypeHandler->objects)
if (terrain->getJsonKey() == arg1.toStdString()) if (terrain->getJsonKey() == uniqueName.toStdString())
objectBrowser->terrain = terrain->getId(); objectBrowser->terrain = terrain->getId();
} }
objectBrowser->invalidate(); objectBrowser->invalidate();
objectBrowser->sort(0); objectBrowser->sort(0);
} }
void MainWindow::on_filter_textChanged(const QString &arg1) void MainWindow::on_filter_textChanged(const QString &arg1)
{ {
if(!objectBrowser) if(!objectBrowser)

View File

@@ -83,7 +83,7 @@ private slots:
void on_toolErase_clicked(); void on_toolErase_clicked();
void on_terrainFilterCombo_currentTextChanged(const QString &arg1); void on_terrainFilterCombo_currentIndexChanged(int index);
void on_filter_textChanged(const QString &arg1); void on_filter_textChanged(const QString &arg1);