@@ -96,6 +96,14 @@ QString PluginList::getColumnName(int column)
96
96
return tr (" Mod Index" );
97
97
case COL_FLAGS:
98
98
return tr (" Flags" );
99
+ case COL_FORMVERSION:
100
+ return tr (" Form Version" );
101
+ case COL_HEADERVERSION:
102
+ return tr (" Header Version" );
103
+ case COL_AUTHOR:
104
+ return tr (" Author" );
105
+ case COL_DESCRIPTION:
106
+ return tr (" Description" );
99
107
default :
100
108
return tr (" unknown" );
101
109
}
@@ -114,6 +122,14 @@ QString PluginList::getColumnToolTip(int column)
114
122
" overwrites data from plugins with lower priority." );
115
123
case COL_MODINDEX:
116
124
return tr (" Determines the formids of objects originating from this mods." );
125
+ case COL_FORMVERSION:
126
+ return tr (" Form version of the plugin." );
127
+ case COL_HEADERVERSION:
128
+ return tr (" Header version of the plugin." );
129
+ case COL_AUTHOR:
130
+ return tr (" Author of the plugin." );
131
+ case COL_DESCRIPTION:
132
+ return tr (" Description of the plugin." );
117
133
default :
118
134
return tr (" unknown" );
119
135
}
@@ -1100,6 +1116,26 @@ bool PluginList::hasNoRecords(const QString& name) const
1100
1116
}
1101
1117
}
1102
1118
1119
+ int PluginList::formVersion (const QString& name) const
1120
+ {
1121
+ auto iter = m_ESPsByName.find (name);
1122
+ if (iter == m_ESPsByName.end ()) {
1123
+ return -1 ;
1124
+ } else {
1125
+ return m_ESPs[iter->second ].formVersion ;
1126
+ }
1127
+ }
1128
+
1129
+ float PluginList::headerVersion (const QString& name) const
1130
+ {
1131
+ auto iter = m_ESPsByName.find (name);
1132
+ if (iter == m_ESPsByName.end ()) {
1133
+ return -1 ;
1134
+ } else {
1135
+ return m_ESPs[iter->second ].headerVersion ;
1136
+ }
1137
+ }
1138
+
1103
1139
QString PluginList::author (const QString& name) const
1104
1140
{
1105
1141
auto iter = m_ESPsByName.find (name);
@@ -1279,17 +1315,30 @@ QVariant PluginList::data(const QModelIndex& modelIndex, int role) const
1279
1315
1280
1316
QVariant PluginList::displayData (const QModelIndex& modelIndex) const
1281
1317
{
1282
- const int index = modelIndex.row ();
1318
+ const int index = modelIndex.row ();
1319
+ const auto & plugin = m_ESPs[index];
1283
1320
1284
1321
switch (modelIndex.column ()) {
1285
1322
case COL_NAME:
1286
- return m_ESPs[index] .name ;
1323
+ return plugin .name ;
1287
1324
1288
1325
case COL_PRIORITY:
1289
- return QString::number (m_ESPs[index] .priority );
1326
+ return QString::number (plugin .priority );
1290
1327
1291
1328
case COL_MODINDEX:
1292
- return m_ESPs[index].index ;
1329
+ return plugin.index ;
1330
+
1331
+ case COL_FORMVERSION:
1332
+ return plugin.formVersion != 0 ? QString::number (plugin.formVersion ) : QString ();
1333
+
1334
+ case COL_HEADERVERSION:
1335
+ return QString::number (plugin.headerVersion );
1336
+
1337
+ case COL_AUTHOR:
1338
+ return plugin.author ;
1339
+
1340
+ case COL_DESCRIPTION:
1341
+ return plugin.description ;
1293
1342
1294
1343
default :
1295
1344
return {};
@@ -1388,6 +1437,15 @@ QVariant PluginList::tooltipData(const QModelIndex& modelIndex) const
1388
1437
tr (" This plugin can't be disabled (enforced by the game)." ) + " </i></b>" ;
1389
1438
}
1390
1439
1440
+ if (esp.formVersion != 0 ) {
1441
+ // Oblivion-style plugin headers don't have a form version
1442
+ toolTip +=
1443
+ " <br><b>" + tr (" Form Version" ) + " </b>: " + QString::number (esp.formVersion );
1444
+ }
1445
+
1446
+ toolTip +=
1447
+ " <br><b>" + tr (" Header Version" ) + " </b>: " + QString::number (esp.headerVersion );
1448
+
1391
1449
if (!esp.author .isEmpty ()) {
1392
1450
toolTip += " <br><b>" + tr (" Author" ) + " </b>: " + TruncateString (esp.author );
1393
1451
}
@@ -1960,8 +2018,10 @@ PluginList::ESPInfo::ESPInfo(const QString& name, bool forceLoaded, bool forceEn
1960
2018
file.isBlueprint ();
1961
2019
hasNoRecords = file.isDummy ();
1962
2020
1963
- author = QString::fromLatin1 (file.author ().c_str ());
1964
- description = QString::fromLatin1 (file.description ().c_str ());
2021
+ formVersion = file.formVersion ();
2022
+ headerVersion = file.headerVersion ();
2023
+ author = QString::fromLatin1 (file.author ().c_str ());
2024
+ description = QString::fromLatin1 (file.description ().c_str ());
1965
2025
1966
2026
for (auto && m : file.masters ()) {
1967
2027
masters.insert (QString::fromStdString (m));
0 commit comments