diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/editexecutablesdialog.cpp | 12 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 27 | ||||
| -rw-r--r-- | src/version.rc | 4 |
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
|
