From dce78b62b839c17f41a0fcd2890ffc0005be7a3b Mon Sep 17 00:00:00 2001 From: Tannin Date: Thu, 12 Sep 2013 21:45:57 +0200 Subject: - bugfix: when installing mods through the nmm importer if no other mods were previously installed the correct installation directory was never set - bugfix: the nmm importer didn't "sanitize" mod names and potentially tried to create invalid directories - bugfix: 0.99.x packages didn't contain qt plugins to handle certain image formats --- src/installationmanager.cpp | 2 +- src/installationmanager.h | 5 +++++ src/mainwindow.cpp | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp index 588dbaa4..378eb38a 100644 --- a/src/installationmanager.cpp +++ b/src/installationmanager.cpp @@ -431,7 +431,7 @@ QString InstallationManager::generateBackupName(const QString &directoryName) co bool InstallationManager::testOverwrite(GuessedValue &modName) const { - QString targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory.mid(0).append("\\").append(modName)); + QString targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory + "\\" + modName); while (QDir(targetDirectory).exists()) { QueryOverwriteDialog overwriteDialog(m_ParentWidget); diff --git a/src/installationmanager.h b/src/installationmanager.h index ca2a5b67..0e43a15d 100644 --- a/src/installationmanager.h +++ b/src/installationmanager.h @@ -57,6 +57,11 @@ public: ~InstallationManager(); + /** + * @brief update the directory where mods are to be installed + * @param modsDirectory the mod directory + * @note this is called a lot, probably redundantly + */ void setModsDirectory(const QString &modsDirectory) { m_ModsDirectory = modsDirectory; } /** diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index c37f0743..2c5e3707 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -213,6 +213,8 @@ MainWindow::MainWindow(const QString &exeName, QSettings &initSettings, QWidget NexusInterface::instance()->setCacheDirectory(m_Settings.getCacheDirectory()); NexusInterface::instance()->setNMMVersion(m_Settings.getNMMVersion()); + m_InstallationManager.setModsDirectory(m_Settings.getModDirectory()); + updateDownloadListDelegate(); ui->savegameList->installEventFilter(this); @@ -1124,6 +1126,8 @@ IModInterface *MainWindow::createMod(GuessedValue &name) return NULL; } + m_InstallationManager.setModsDirectory(m_Settings.getModDirectory()); + /* QString fixedName = name; fixDirectoryName(fixedName); unsigned int index = ModInfo::getIndex(fixedName); @@ -3621,6 +3625,7 @@ void MainWindow::on_actionSettings_triggered() QString oldCacheDirectory(m_Settings.getCacheDirectory()); bool proxy = m_Settings.useProxy(); m_Settings.query(this); + m_InstallationManager.setModsDirectory(m_Settings.getModDirectory()); fixCategories(); refreshFilters(); if (QDir::fromNativeSeparators(m_DownloadManager.getOutputDirectory()) != QDir::fromNativeSeparators(m_Settings.getDownloadDirectory())) { -- cgit v1.3.1