summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2014-12-14 16:32:57 +0100
committerTannin <devnull@localhost>2014-12-14 16:32:57 +0100
commitf666e3d835147de3f044431474f92ec84fd8b801 (patch)
tree1ea177860392f459a7f3839b7abe27dd99946131
parent003cb6dec5ff3b6b25cb067eaca055d357a3db6c (diff)
when reinstalling a mod the existing mods name is used by default
-rw-r--r--src/installationmanager.cpp5
-rw-r--r--src/mainwindow.cpp17
-rw-r--r--src/mainwindow.h2
3 files changed, 13 insertions, 11 deletions
diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp
index b19978a4..26329729 100644
--- a/src/installationmanager.cpp
+++ b/src/installationmanager.cpp
@@ -29,6 +29,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "iplugininstallercustom.h"
#include "nexusinterface.h"
#include "selectiondialog.h"
+#include "modinfo.h"
#include <scopeguard.h>
#include <installationtester.h>
#include <gameinfo.h>
@@ -454,11 +455,11 @@ bool InstallationManager::testOverwrite(GuessedValue<QString> &modName, bool *me
if (!ensureValidModName(modName)) {
return false;
}
- targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory.mid(0).append("\\").append(modName));
+ targetDirectory = QDir::fromNativeSeparators(m_ModsDirectory) + "/" + modName;
}
} else if (overwriteDialog.action() == QueryOverwriteDialog::ACT_REPLACE) {
// save original settings like categories. Because it makes sense
- QString metaFilename = targetDirectory.mid(0).append("/meta.ini");
+ QString metaFilename = targetDirectory + "/meta.ini";
QFile settingsFile(metaFilename);
QByteArray originalSettings;
if (settingsFile.open(QIODevice::ReadOnly)) {
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 7d602d9e..74690f19 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -1036,8 +1036,6 @@ bool MainWindow::testForSteam()
return true;
}
}
- } else {
- qDebug("can't open process %lu: %lu", processIDs[i], ::GetLastError());
}
}
}
@@ -2393,7 +2391,7 @@ void MainWindow::installMod()
}
}
-IModInterface *MainWindow::installMod(const QString &fileName)
+IModInterface *MainWindow::installMod(const QString &fileName, const QString &initModName)
{
if (m_CurrentProfile == NULL) {
return NULL;
@@ -2401,6 +2399,9 @@ IModInterface *MainWindow::installMod(const QString &fileName)
bool hasIniTweaks = false;
GuessedValue<QString> modName;
+ if (!initModName.isEmpty()) {
+ modName.update(initModName, GUESS_USER);
+ }
m_CurrentProfile->writeModlistNow();
m_InstallationManager.setModsDirectory(m_Settings.getModDirectory());
if (m_InstallationManager.install(fileName, modName, hasIniTweaks)) {
@@ -2450,9 +2451,9 @@ IModInterface *MainWindow::createMod(GuessedValue<QString> &name)
m_InstallationManager.setModsDirectory(m_Settings.getModDirectory());
- QString targetDirectory = QDir::fromNativeSeparators(m_Settings.getModDirectory()).append("/").append(name);
+ QString targetDirectory = QDir::fromNativeSeparators(m_Settings.getModDirectory()) + "/" + name;
- QSettings settingsFile(targetDirectory.mid(0).append("/meta.ini"), QSettings::IniFormat);
+ QSettings settingsFile(targetDirectory + "/meta.ini", QSettings::IniFormat);
settingsFile.setValue("modid", 0);
settingsFile.setValue("version", "");
@@ -3223,13 +3224,13 @@ void MainWindow::reinstallMod_clicked()
if (fileInfo.exists()) {
fullInstallationFile = installationFile;
} else {
- fullInstallationFile = m_DownloadManager.getOutputDirectory().append("/").append(fileInfo.fileName());
+ fullInstallationFile = m_DownloadManager.getOutputDirectory() + "/" + fileInfo.fileName();
}
} else {
- fullInstallationFile = m_DownloadManager.getOutputDirectory().append("/").append(installationFile);
+ fullInstallationFile = m_DownloadManager.getOutputDirectory() + "/" + installationFile;
}
if (QFile::exists(fullInstallationFile)) {
- installMod(fullInstallationFile);
+ installMod(fullInstallationFile, modInfo->name());
} else {
QMessageBox::information(this, tr("Failed"), tr("Installation file no longer exists"));
}
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 7bb56c29..8f035afd 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -213,7 +213,7 @@ private:
bool refreshProfiles(bool selectProfile = true);
void refreshExecutablesList();
void installMod();
- MOBase::IModInterface *installMod(const QString &fileName);
+ MOBase::IModInterface *installMod(const QString &fileName, const QString &initModName = QString());
MOBase::IModInterface *getMod(const QString &name);
MOBase::IModInterface *createMod(MOBase::GuessedValue<QString> &name);
bool removeMod(MOBase::IModInterface *mod);