From f666e3d835147de3f044431474f92ec84fd8b801 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sun, 14 Dec 2014 16:32:57 +0100 Subject: when reinstalling a mod the existing mods name is used by default --- src/installationmanager.cpp | 5 +++-- src/mainwindow.cpp | 17 +++++++++-------- src/mainwindow.h | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) (limited to 'src') 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 . #include "iplugininstallercustom.h" #include "nexusinterface.h" #include "selectiondialog.h" +#include "modinfo.h" #include #include #include @@ -454,11 +455,11 @@ bool InstallationManager::testOverwrite(GuessedValue &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 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 &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 &name); bool removeMod(MOBase::IModInterface *mod); -- cgit v1.3.1