1 #include "esmfile.hpp" 2 3 #include <QMimeData> 4 #include <QDataStream> 5 6 int ContentSelectorModel::EsmFile::sPropertyCount = 7; 7 QString ContentSelectorModel::EsmFile::sToolTip = QString("<b>Author:</b> %1<br/> \ 8 <b>Version:</b> %2<br/> \ 9 <b>Modified:</b> %3<br/> \ 10 <b>Path:</b><br/>%4<br/> \ 11 <br/><b>Description:</b><br/>%5<br/> \ 12 <br/><b>Dependencies: </b>%6<br/>"); 13 14 EsmFile(QString fileName,ModelItem * parent)15ContentSelectorModel::EsmFile::EsmFile(QString fileName, ModelItem *parent) 16 : ModelItem(parent), mFileName(fileName), mFormat(0) 17 {} 18 setFileName(const QString & fileName)19void ContentSelectorModel::EsmFile::setFileName(const QString &fileName) 20 { 21 mFileName = fileName; 22 } 23 setAuthor(const QString & author)24void ContentSelectorModel::EsmFile::setAuthor(const QString &author) 25 { 26 mAuthor = author; 27 } 28 setDate(const QDateTime & modified)29void ContentSelectorModel::EsmFile::setDate(const QDateTime &modified) 30 { 31 mModified = modified; 32 } 33 setFormat(int format)34void ContentSelectorModel::EsmFile::setFormat(int format) 35 { 36 mFormat = format; 37 } 38 setFilePath(const QString & path)39void ContentSelectorModel::EsmFile::setFilePath(const QString &path) 40 { 41 mPath = path; 42 } 43 setGameFiles(const QStringList & gamefiles)44void ContentSelectorModel::EsmFile::setGameFiles(const QStringList &gamefiles) 45 { 46 mGameFiles = gamefiles; 47 } 48 setDescription(const QString & description)49void ContentSelectorModel::EsmFile::setDescription(const QString &description) 50 { 51 mDescription = description; 52 } 53 encodedData() const54QByteArray ContentSelectorModel::EsmFile::encodedData() const 55 { 56 QByteArray encodedData; 57 QDataStream stream(&encodedData, QIODevice::WriteOnly); 58 59 stream << mFileName << mAuthor << QString::number(mFormat) 60 << mModified.toString() << mPath << mDescription 61 << mGameFiles; 62 63 return encodedData; 64 } 65 isGameFile() const66bool ContentSelectorModel::EsmFile::isGameFile() const 67 { 68 return (mGameFiles.size() == 0) && 69 (mFileName.endsWith(QLatin1String(".esm"), Qt::CaseInsensitive) || 70 mFileName.endsWith(QLatin1String(".omwgame"), Qt::CaseInsensitive)); 71 } 72 fileProperty(const FileProperty prop) const73QVariant ContentSelectorModel::EsmFile::fileProperty(const FileProperty prop) const 74 { 75 switch (prop) 76 { 77 case FileProperty_FileName: 78 return mFileName; 79 break; 80 81 case FileProperty_Author: 82 return mAuthor; 83 break; 84 85 case FileProperty_Format: 86 return mFormat; 87 break; 88 89 case FileProperty_DateModified: 90 return mModified.toString(Qt::ISODate); 91 break; 92 93 case FileProperty_FilePath: 94 return mPath; 95 break; 96 97 case FileProperty_Description: 98 return mDescription; 99 break; 100 101 case FileProperty_GameFile: 102 return mGameFiles; 103 break; 104 105 default: 106 break; 107 } 108 return QVariant(); 109 } setFileProperty(const FileProperty prop,const QString & value)110void ContentSelectorModel::EsmFile::setFileProperty (const FileProperty prop, const QString &value) 111 { 112 switch (prop) 113 { 114 case FileProperty_FileName: 115 mFileName = value; 116 break; 117 118 case FileProperty_Author: 119 mAuthor = value; 120 break; 121 122 case FileProperty_Format: 123 mFormat = value.toInt(); 124 break; 125 126 case FileProperty_DateModified: 127 mModified = QDateTime::fromString(value); 128 break; 129 130 case FileProperty_FilePath: 131 mPath = value; 132 break; 133 134 case FileProperty_Description: 135 mDescription = value; 136 break; 137 138 case FileProperty_GameFile: 139 mGameFiles << value; 140 break; 141 142 default: 143 break; 144 } 145 } 146