mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-04 03:40:14 +00:00
d111b4bbd9
There's also handling for files declared as originating from a lower-priority openmw.cfg, e.g. anything in the local config or any intermediate ones, as they can't be disabled or reordered. There's no way to mark such files yet, but the logic's the same as built-in files, so everything will be fine once that's set up.
104 lines
3.4 KiB
C++
104 lines
3.4 KiB
C++
#ifndef ESMFILE_HPP
|
|
#define ESMFILE_HPP
|
|
|
|
#include <QDateTime>
|
|
#include <QStringList>
|
|
|
|
#include <components/esm3/formatversion.hpp>
|
|
|
|
#include "modelitem.hpp"
|
|
|
|
class QMimeData;
|
|
|
|
namespace ContentSelectorModel
|
|
{
|
|
class EsmFile : public ModelItem
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(QString filename READ fileName)
|
|
|
|
public:
|
|
enum FileProperty
|
|
{
|
|
FileProperty_FileName = 0,
|
|
FileProperty_Author = 1,
|
|
FileProperty_Format = 2,
|
|
FileProperty_DateModified = 3,
|
|
FileProperty_FilePath = 4,
|
|
FileProperty_Description = 5,
|
|
FileProperty_BuiltIn = 6,
|
|
FileProperty_FromAnotherConfigFile = 7,
|
|
FileProperty_GameFile = 8,
|
|
};
|
|
|
|
EsmFile(const QString& fileName = QString(), ModelItem* parent = nullptr);
|
|
|
|
void setFileProperty(const FileProperty prop, const QString& value);
|
|
|
|
void setFileName(const QString& fileName);
|
|
void setAuthor(const QString& author);
|
|
void setDate(const QDateTime& modified);
|
|
void setFormat(const QString& format);
|
|
void setFilePath(const QString& path);
|
|
void setGameFiles(const QStringList& gameFiles);
|
|
void setDescription(const QString& description);
|
|
void setBuiltIn(bool builtIn);
|
|
void setFromAnotherConfigFile(bool fromAnotherConfigFile);
|
|
|
|
void addGameFile(const QString& name) { mGameFiles.append(name); }
|
|
QVariant fileProperty(const FileProperty prop) const;
|
|
|
|
QString fileName() const { return mFileName; }
|
|
QString author() const { return mAuthor; }
|
|
QDateTime modified() const { return mModified; }
|
|
QString formatVersion() const { return mVersion; }
|
|
QString filePath() const { return mPath; }
|
|
bool builtIn() const { return mBuiltIn; }
|
|
bool fromAnotherConfigFile() const { return mFromAnotherConfigFile; }
|
|
|
|
/// @note Contains file names, not paths.
|
|
const QStringList& gameFiles() const { return mGameFiles; }
|
|
QString description() const { return mDescription; }
|
|
QString toolTip() const
|
|
{
|
|
QString tooltip = mTooltipTemlate.arg(mAuthor)
|
|
.arg(mVersion)
|
|
.arg(mModified.toString(Qt::ISODate))
|
|
.arg(mPath)
|
|
.arg(mDescription)
|
|
.arg(mGameFiles.join(", "));
|
|
|
|
if (mBuiltIn)
|
|
tooltip += tr("<br/><b>This content file cannot be disabled because it is part of OpenMW.</b><br/>");
|
|
else if (mFromAnotherConfigFile)
|
|
tooltip += tr("<br/><b>This content file cannot be disabled because it is enabled in a config file other than the user one.</b><br/>");
|
|
|
|
return tooltip;
|
|
}
|
|
|
|
bool isGameFile() const;
|
|
|
|
private:
|
|
QString mTooltipTemlate = tr(
|
|
"<b>Author:</b> %1<br/>"
|
|
"<b>Format version:</b> %2<br/>"
|
|
"<b>Modified:</b> %3<br/>"
|
|
"<b>Path:</b><br/>%4<br/>"
|
|
"<br/><b>Description:</b><br/>%5<br/>"
|
|
"<br/><b>Dependencies: </b>%6<br/>");
|
|
|
|
QString mFileName;
|
|
QString mAuthor;
|
|
QDateTime mModified;
|
|
QString mVersion = QString::number(ESM::DefaultFormatVersion);
|
|
QString mPath;
|
|
QStringList mGameFiles;
|
|
QString mDescription;
|
|
QString mToolTip;
|
|
bool mBuiltIn = false;
|
|
bool mFromAnotherConfigFile = false;
|
|
};
|
|
}
|
|
|
|
#endif
|