summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/editexecutablesdialog.cpp12
-rw-r--r--src/mainwindow.cpp27
-rw-r--r--src/version.rc4
3 files changed, 29 insertions, 14 deletions
diff --git a/src/editexecutablesdialog.cpp b/src/editexecutablesdialog.cpp
index 1fee037a..73fb1d03 100644
--- a/src/editexecutablesdialog.cpp
+++ b/src/editexecutablesdialog.cpp
@@ -214,7 +214,6 @@ bool EditExecutablesDialog::executableChanged()
{
if (m_CurrentItem != nullptr) {
Executable const &selectedExecutable(m_ExecutablesList.find(m_CurrentItem->text()));
-
return selectedExecutable.m_Arguments != ui->argumentsEdit->text()
|| selectedExecutable.m_SteamAppID != ui->appIDOverwriteEdit->text()
|| selectedExecutable.m_WorkingDirectory != QDir::fromNativeSeparators(ui->workingDirEdit->text())
@@ -222,12 +221,11 @@ bool EditExecutablesDialog::executableChanged()
|| (selectedExecutable.m_CloseMO == ExecutableInfo::CloseMOStyle::DEFAULT_CLOSE) != ui->closeCheckBox->isChecked()
|| selectedExecutable.usesOwnIcon() != ui->useAppIconCheckBox->isChecked();
} else {
- return ! ui->argumentsEdit->text().isEmpty()
- || ! ui->appIDOverwriteEdit->text().isEmpty()
- || ! ui->workingDirEdit->text().isEmpty()
- || ! ui->binaryEdit->text().isEmpty()
- || ui->closeCheckBox->isChecked()
- || ui->useAppIconCheckBox->isChecked();
+ QFileInfo fileInfo(ui->binaryEdit->text());
+ return !ui->binaryEdit->text().isEmpty()
+ && !ui->titleEdit->text().isEmpty()
+ && fileInfo.exists()
+ && fileInfo.isFile();
}
}
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index f265d74a..41ca1589 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -1333,10 +1333,26 @@ 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>();
+ std::vector<FileEntry::Ptr> files = m_OrganizerCore.directoryStructure()->getFiles();
+
+ QStringList plugins = m_OrganizerCore.findFiles("", [] (const QString &fileName) -> bool {
+ return fileName.endsWith(".esp", Qt::CaseInsensitive)
+ || fileName.endsWith(".esm", Qt::CaseInsensitive);
+ });
- for (FileEntry::Ptr current : m_OrganizerCore.directoryStructure()->getFiles()) {
+ auto hasAssociatedPlugin = [&](const QString &bsaName) -> bool {
+ for (const QString &pluginName : plugins) {
+ QFileInfo pluginInfo(pluginName);
+ if (bsaName.startsWith(QFileInfo(pluginName).baseName(), Qt::CaseInsensitive)
+ && (m_OrganizerCore.pluginList()->state(pluginInfo.fileName()) == IPluginList::STATE_ACTIVE)) {
+ return true;
+ }
+ }
+ return false;
+ };
+
+ for (FileEntry::Ptr current : files) {
QFileInfo fileInfo(ToQString(current->getName().c_str()));
if (fileInfo.suffix().toLower() == "bsa") {
@@ -1351,7 +1367,6 @@ void MainWindow::updateBSAList(const QStringList &defaultArchives, const QString
index = 1;
}
- QString basename = fileInfo.baseName();
int originId = current->getOrigin();
FilesOrigin &origin = m_OrganizerCore.directoryStructure()->getOriginByID(originId);
@@ -1368,8 +1383,10 @@ void MainWindow::updateBSAList(const QStringList &defaultArchives, const QString
newItem->setCheckState(0, Qt::Checked);
newItem->setDisabled(true);
newItem->setData(0, Qt::UserRole, true);
- } else if ((m_OrganizerCore.pluginList()->state(basename + ".esp") == IPluginList::STATE_ACTIVE)
- || (m_OrganizerCore.pluginList()->state(basename + ".esm") == IPluginList::STATE_ACTIVE)) {
+ } else if (fileInfo.fileName().compare("update.bsa", Qt::CaseInsensitive) == 0) {
+ newItem->setCheckState(0, Qt::Checked);
+ newItem->setDisabled(true);
+ } else if (hasAssociatedPlugin(fileInfo.fileName())) {
newItem->setCheckState(0, Qt::Checked);
newItem->setDisabled(true);
} else {
diff --git a/src/version.rc b/src/version.rc
index 93de7128..930da671 100644
--- a/src/version.rc
+++ b/src/version.rc
@@ -1,7 +1,7 @@
#include "Winver.h"
-#define VER_FILEVERSION 1,3,9,0
-#define VER_FILEVERSION_STR "1,3,9,0\0"
+#define VER_FILEVERSION 1,3,10,0
+#define VER_FILEVERSION_STR "1,3,10,0\0"
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION