mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-10 03:39:55 +00:00
Fixed segfault in datafilesmodel because of invalid modelindex row
This commit is contained in:
parent
6920958e16
commit
433773e0ea
@ -60,10 +60,10 @@ QVariant DataFilesModel::data(const QModelIndex &index, int role) const
|
|||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
|
||||||
// if (index.row() < 0 || index.row() >= mPlugins.size())
|
EsmFile *file = item(index.row());
|
||||||
// return QVariant();
|
|
||||||
|
|
||||||
EsmFile *file = mFiles.at(index.row());
|
if (!file)
|
||||||
|
return QVariant();
|
||||||
|
|
||||||
const int column = index.column();
|
const int column = index.column();
|
||||||
|
|
||||||
@ -146,7 +146,10 @@ Qt::ItemFlags DataFilesModel::flags(const QModelIndex &index) const
|
|||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
return Qt::NoItemFlags;
|
return Qt::NoItemFlags;
|
||||||
|
|
||||||
EsmFile *file = mFiles.at(index.row());
|
EsmFile *file = item(index.row());
|
||||||
|
|
||||||
|
if (!file)
|
||||||
|
return Qt::NoItemFlags;
|
||||||
|
|
||||||
if (mAvailableFiles.contains(file->fileName())) {
|
if (mAvailableFiles.contains(file->fileName())) {
|
||||||
if (index.column() == 0) {
|
if (index.column() == 0) {
|
||||||
@ -384,7 +387,7 @@ EsmFile* DataFilesModel::findItem(const QString &name)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
EsmFile* DataFilesModel::item(int row)
|
EsmFile* DataFilesModel::item(int row) const
|
||||||
{
|
{
|
||||||
if (row >= 0 && row < mFiles.count())
|
if (row >= 0 && row < mFiles.count())
|
||||||
return mFiles.at(row);
|
return mFiles.at(row);
|
||||||
|
@ -47,7 +47,7 @@ public:
|
|||||||
|
|
||||||
QModelIndex indexFromItem(EsmFile *item) const;
|
QModelIndex indexFromItem(EsmFile *item) const;
|
||||||
EsmFile* findItem(const QString &name);
|
EsmFile* findItem(const QString &name);
|
||||||
EsmFile* item(int row);
|
EsmFile* item(int row) const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void checkedItemsChanged(const QStringList checkedItems, const QStringList unCheckedItems);
|
void checkedItemsChanged(const QStringList checkedItems, const QStringList unCheckedItems);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user