1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-03-03 16:39:41 +00:00

Fixed broken dependency check

This commit is contained in:
graffy76 2013-11-03 06:21:28 -06:00
parent 973803eb2f
commit 12c06a5615
2 changed files with 10 additions and 6 deletions

View file

@ -138,7 +138,7 @@ void CSVDoc::FileDialog::slotUpdateAcceptButton(const QString &name, bool)
success = success && !(name.isEmpty()); success = success && !(name.isEmpty());
else else
{ {
ContentSelectorModel::EsmFile *file = mSelector->selectedFiles().back();; ContentSelectorModel::EsmFile *file = mSelector->selectedFiles().back();
mAdjusterWidget->setName (file->filePath(), !file->isGameFile()); mAdjusterWidget->setName (file->filePath(), !file->isGameFile());
} }

View file

@ -3,7 +3,6 @@
#include <QDir> #include <QDir>
#include <QTextCodec> #include <QTextCodec>
#include <QMessageBox>
#include <QDebug> #include <QDebug>
#include "components/esm/esmreader.hpp" #include "components/esm/esmreader.hpp"
@ -69,9 +68,14 @@ ContentSelectorModel::EsmFile *ContentSelectorModel::ContentModel::item(int row)
} }
const ContentSelectorModel::EsmFile *ContentSelectorModel::ContentModel::item(const QString &name) const const ContentSelectorModel::EsmFile *ContentSelectorModel::ContentModel::item(const QString &name) const
{ {
EsmFile::FileProperty fp = EsmFile::FileProperty_FileName;
if (name.contains ('/'))
fp = EsmFile::FileProperty_FilePath;
foreach (const EsmFile *file, mFiles) foreach (const EsmFile *file, mFiles)
{ {
if (name == file->filePath()) if (name == file->fileProperty (fp).toString())
return file; return file;
} }
return 0; return 0;
@ -538,15 +542,15 @@ bool ContentSelectorModel::ContentModel::setCheckState(const QString &name, bool
//if we're checking an item, ensure all "upstream" files (dependencies) are checked as well. //if we're checking an item, ensure all "upstream" files (dependencies) are checked as well.
if (state == Qt::Checked) if (state == Qt::Checked)
{ {
foreach (const QString &upstreamName, file->gameFiles()) foreach (QString upstreamName, file->gameFiles())
{ {
const EsmFile *upstreamFile = item(upstreamName); const EsmFile *upstreamFile = item(upstreamName);
if (!upstreamFile) if (!upstreamFile)
continue; continue;
if (!isChecked(upstreamName)) if (!isChecked(upstreamFile->filePath()))
mCheckStates[upstreamName] = Qt::Checked; mCheckStates[upstreamFile->filePath()] = Qt::Checked;
emit dataChanged(indexFromItem(upstreamFile), indexFromItem(upstreamFile)); emit dataChanged(indexFromItem(upstreamFile), indexFromItem(upstreamFile));