1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-06-19 10:41:36 +00:00

Fix out-of-bounds index dataChanged calls

This commit is contained in:
Alexei Kotov 2025-05-15 21:01:14 +03:00
parent 6d97ea01b2
commit 54eea09a9e
2 changed files with 5 additions and 5 deletions

View file

@ -726,7 +726,7 @@ void ContentSelectorModel::ContentModel::setContentList(const QStringList& fileL
} }
} }
} }
emit dataChanged(index(0, 0), index(rowCount(), columnCount())); refreshModel();
} }
QList<ContentSelectorModel::LoadOrderError> ContentSelectorModel::ContentModel::checkForLoadOrderErrors( QList<ContentSelectorModel::LoadOrderError> ContentSelectorModel::ContentModel::checkForLoadOrderErrors(
@ -790,9 +790,9 @@ QString ContentSelectorModel::ContentModel::toolTip(const EsmFile* file) const
} }
} }
void ContentSelectorModel::ContentModel::refreshModel() void ContentSelectorModel::ContentModel::refreshModel(std::initializer_list<int> roles)
{ {
emit dataChanged(index(0, 0), index(rowCount() - 1, 0)); emit dataChanged(index(0, 0), index(rowCount() - 1, 0), roles);
} }
bool ContentSelectorModel::ContentModel::setCheckState(const QString& filepath, bool checkState) bool ContentSelectorModel::ContentModel::setCheckState(const QString& filepath, bool checkState)
@ -878,5 +878,5 @@ ContentSelectorModel::ContentFileList ContentSelectorModel::ContentModel::checke
void ContentSelectorModel::ContentModel::uncheckAll() void ContentSelectorModel::ContentModel::uncheckAll()
{ {
mCheckedFiles.clear(); mCheckedFiles.clear();
emit dataChanged(index(0, 0), index(rowCount(), columnCount()), { Qt::CheckStateRole, Qt::UserRole + 1 }); refreshModel({ Qt::CheckStateRole, Qt::UserRole + 1 });
} }

View file

@ -67,7 +67,7 @@ namespace ContentSelectorModel
ContentFileList checkedItems() const; ContentFileList checkedItems() const;
void uncheckAll(); void uncheckAll();
void refreshModel(); void refreshModel(std::initializer_list<int> roles = {});
private: private:
void addFile(EsmFile* file); void addFile(EsmFile* file);