summaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
authorTom Tanner <thosrtanner2@users.sourceforge.net>2015-07-09 18:58:57 +0100
committerTom Tanner <thosrtanner2@users.sourceforge.net>2015-07-09 18:58:57 +0100
commit18ad6565861a62d8121d84265a9f5baf1cb32b05 (patch)
treeef1389a1ea4614aa09411292ce36e794a6f2bf06 /src/mainwindow.cpp
parenteaafc489fc625d71e4ce797cebb28056746896bc (diff)
parent7799c348ba70bc6a6b8cb3a424ec6fcb82071179 (diff)
Merge
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 31596fed..946f3a73 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -67,6 +67,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include <utility.h>
#include <ipluginproxy.h>
#include <dataarchives.h>
+#include <bsainvalidation.h>
#include <questionboxmemory.h>
#include <taskprogressmanager.h>
#include <util.h>
@@ -1307,15 +1308,23 @@ void MainWindow::updateBSAList(const QStringList &defaultArchives, const QString
std::vector<std::pair<UINT32, QTreeWidgetItem*>> items;
+ IPluginGame *gamePlugin = qApp->property("managed_game").value<IPluginGame*>();
+
+ BSAInvalidation *invalidation = gamePlugin->feature<BSAInvalidation>();
+
for (FileEntry::Ptr current : m_OrganizerCore.directoryStructure()->getFiles()) {
QFileInfo fileInfo(ToQString(current->getName().c_str()));
if (fileInfo.suffix().toLower() == "bsa") {
- int index = activeArchives.indexOf(fileInfo.fileName());
+ int index = activeArchives.indexOf(fileInfo.fileName()) + 2;
if (index == -1) {
index = 0xFFFF;
}
+ if ((invalidation != nullptr) && invalidation->isInvalidationBSA(fileInfo.fileName())) {
+ index = 1;
+ }
+
QString basename = fileInfo.baseName();
int originId = current->getOrigin();
FilesOrigin &origin = m_OrganizerCore.directoryStructure()->getOriginByID(originId);
@@ -2009,6 +2018,7 @@ void MainWindow::fileMoved(const QString &filePath, const QString &oldOriginName
QTreeWidgetItem *MainWindow::addFilterItem(QTreeWidgetItem *root, const QString &name, int categoryID, ModListSortProxy::FilterType type)
{
QTreeWidgetItem *item = new QTreeWidgetItem(QStringList(name));
+ item->setData(0, Qt::ToolTipRole, name);
item->setData(0, Qt::UserRole, categoryID);
item->setData(0, Qt::UserRole + 1, type);
if (root != nullptr) {