summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2013-09-12 21:45:57 +0200
committerTannin <devnull@localhost>2013-09-12 21:45:57 +0200
commitdce78b62b839c17f41a0fcd2890ffc0005be7a3b (patch)
tree352891f2125f677d8f3e870ac97a7548f4ea529c /src
parentaf6e1c3ab4f3687c88715dffff8b1bf2f38a15d6 (diff)
- 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
Diffstat (limited to 'src')
-rw-r--r--src/installationmanager.cpp2
-rw-r--r--src/installationmanager.h5
-rw-r--r--src/mainwindow.cpp5
3 files changed, 11 insertions, 1 deletions
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<QString> &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<QString> &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())) {