1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-29 21:56:54 +02:00

use range constructor or QVariantList::fromStdList based on Qt version

This commit is contained in:
godric3 2024-07-28 17:39:58 +02:00
parent 2b9461ed6e
commit 3fb3fef16b
3 changed files with 8 additions and 4 deletions

View File

@ -93,9 +93,9 @@ QStandardItem * getBuildingParentFromTreeModel(const CBuilding * building, QStan
return parent;
}
std::set<QVariant> getBuildingVariantsFromModel(QStandardItemModel & model, int modelColumn, Qt::CheckState checkState)
std::list<QVariant> getBuildingVariantsFromModel(QStandardItemModel & model, int modelColumn, Qt::CheckState checkState)
{
std::set<QVariant> result;
std::list<QVariant> result;
std::vector<QModelIndex> stack(1);
while (!stack.empty())
{
@ -107,7 +107,7 @@ std::set<QVariant> getBuildingVariantsFromModel(QStandardItemModel & model, int
QModelIndex index = model.index(i, modelColumn, pindex);
if (auto * item = model.itemFromIndex(index))
if (item->checkState() == checkState)
result.emplace(item->data(MapEditorRoles::BuildingIDRole));
result.push_back(item->data(MapEditorRoles::BuildingIDRole));
index = model.index(i, 0, pindex);
if (model.hasChildren(index))
stack.push_back(index);

View File

@ -21,7 +21,7 @@ std::string defaultBuildingIdConversion(BuildingID bId);
QStandardItem * getBuildingParentFromTreeModel(const CBuilding * building, QStandardItemModel & model);
std::set<QVariant> getBuildingVariantsFromModel(QStandardItemModel & model, int modelColumn, Qt::CheckState checkState);
std::list<QVariant> getBuildingVariantsFromModel(QStandardItemModel & model, int modelColumn, Qt::CheckState checkState);
class TownBuildingsWidget : public QDialog
{

View File

@ -239,7 +239,11 @@ QVariantMap TownEventDialog::resourcesToVariant()
QVariantList TownEventDialog::buildingsToVariant()
{
auto buildings = getBuildingVariantsFromModel(buildingsModel, 1, Qt::Checked);
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
QVariantList buildingsList(buildings.begin(), buildings.end());
#else
QVariantList buildingsList = QVariantList::fromStdList(buildings);
#endif
return buildingsList;
}