diff options
| author | Tannin <devnull@localhost> | 2013-07-05 14:34:46 +0200 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2013-07-05 14:34:46 +0200 |
| commit | 849a0a0ef40c9fa1feb15b880aa52fccdd84f234 (patch) | |
| tree | 41a67cedb579722c9c30921d791406a42ca01d2e /src | |
| parent | 3b3717a0214a1a923ef004b90ace68197492d0ba (diff) | |
bugfix: nxmhandler in headless calls didn't save changes
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 3 | ||||
| -rw-r--r-- | src/modinfo.cpp | 30 | ||||
| -rw-r--r-- | src/modinfo.h | 29 |
3 files changed, 9 insertions, 53 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9dbce0f8..b95be745 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -3448,8 +3448,9 @@ void MainWindow::on_actionSettings_triggered() void MainWindow::on_actionNexus_triggered() { std::wstring nxmPath = ToWString(QApplication::applicationDirPath() + "/nxmhandler.exe"); + std::wstring executable = ToWString(QApplication::applicationFilePath()); ::ShellExecuteW(NULL, L"open", nxmPath.c_str(), - (std::wstring(L"reg ") + GameInfo::instance().getGameShortName() + L" " + nxmPath).c_str(), NULL, SW_SHOWNORMAL); + (std::wstring(L"reg ") + GameInfo::instance().getGameShortName() + L" " + executable).c_str(), NULL, SW_SHOWNORMAL); ::ShellExecuteW(NULL, L"open", GameInfo::instance().getNexusPage().c_str(), NULL, NULL, SW_SHOWNORMAL); ui->tabWidget->setCurrentIndex(4); diff --git a/src/modinfo.cpp b/src/modinfo.cpp index e3e0487b..00b7c2af 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -323,15 +323,6 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc } } - int numNexusFiles = metaFile.beginReadArray("nexusFiles"); - for (int i = 0; i < numNexusFiles; ++i) { - metaFile.setArrayIndex(i); - QString infoString = metaFile.value("info", "").toString(); - ModRepositoryFileInfo info(infoString); - m_NexusFileInfos.push_back(info); - } - metaFile.endArray(); - QString categoriesString = metaFile.value("category", "").toString(); QStringList categories = categoriesString.split(',', QString::SkipEmptyParts); @@ -351,7 +342,6 @@ ModInfoRegular::ModInfoRegular(const QDir &path, DirectoryEntry **directoryStruc } connect(&m_NexusBridge, SIGNAL(descriptionAvailable(int,QVariant,QVariant)), this, SLOT(nxmDescriptionAvailable(int,QVariant,QVariant))); - connect(&m_NexusBridge, SIGNAL(filesAvailable(int,QVariant,const QList<ModRepositoryFileInfo>&)), this, SLOT(nxmFilesAvailable(int,QVariant,QList<ModRepositoryFileInfo>))); connect(&m_NexusBridge, SIGNAL(endorsementToggled(int,QVariant,QVariant)), this, SLOT(nxmEndorsementToggled(int,QVariant,QVariant))); connect(&m_NexusBridge, SIGNAL(requestFailed(int,QVariant,QString)), this, SLOT(nxmRequestFailed(int,QVariant,QString))); } @@ -398,13 +388,6 @@ void ModInfoRegular::saveMeta() metaFile.setValue("endorsed", m_EndorsedState); } - - metaFile.beginWriteArray("nexusFiles"); - for (int i = 0; i < m_NexusFileInfos.size(); ++i) { - metaFile.setArrayIndex(i); - metaFile.setValue("info", m_NexusFileInfos.at(i).toString()); - } - metaFile.endArray(); } else { reportError(tr("failed to write %1/meta.ini: %2").arg(absolutePath()).arg(metaFile.status())); } @@ -430,13 +413,6 @@ void ModInfoRegular::nxmDescriptionAvailable(int, QVariant, QVariant resultData) if (m_EndorsedState != ENDORSED_NEVER) { m_EndorsedState = result["voted_by_user"].toBool() ? ENDORSED_TRUE : ENDORSED_FALSE; } - m_NexusBridge.requestFiles(m_NexusID, QVariant()); -} - - -void ModInfoRegular::nxmFilesAvailable(int, QVariant, const QList<ModRepositoryFileInfo> &resultData) -{ - m_NexusFileInfos = resultData; m_LastNexusQuery = QDateTime::currentDateTime(); m_MetaInfoChanged = true; saveMeta(); @@ -669,12 +645,6 @@ QString ModInfoRegular::notes() const return m_Notes; } -void ModInfoRegular::getNexusFiles(QList<ModRepositoryFileInfo>::const_iterator &begin, QList<ModRepositoryFileInfo>::const_iterator &end) -{ - begin = m_NexusFileInfos.begin(); - end = m_NexusFileInfos.end(); -} - QString ModInfoRegular::getNexusDescription() const { return m_NexusDescription; diff --git a/src/modinfo.h b/src/modinfo.h index a261296b..05e26590 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -359,15 +359,6 @@ public: virtual QString notes() const = 0; /** - * @brief return the list of files on nexus related to this mod in the form of iterators - * @note this is valid only after querying the files - * @param begin iterator to the first file - * @param end iterator to one past the last file - */ - virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo>::const_iterator &begin, - QList<MOBase::ModRepositoryFileInfo>::const_iterator &end) = 0; - - /** * @return nexus description of the mod (html) */ virtual QString getNexusDescription() const = 0; @@ -402,7 +393,7 @@ public: * @brief sets the new primary category of the mod * @param categoryID the category to set */ - void setPrimaryCategory(int categoryID) { m_PrimaryCategory = categoryID; } + virtual void setPrimaryCategory(int categoryID) { m_PrimaryCategory = categoryID; } /** * @return true if this mod is considered "valid", that is: it contains data used by the game @@ -573,6 +564,12 @@ public: virtual void setNexusDescription(const QString &description); /** + * @brief sets the new primary category of the mod + * @param categoryID the category to set + */ + virtual void setPrimaryCategory(int categoryID) { m_PrimaryCategory = categoryID; m_MetaInfoChanged = true; } + + /** * update the endorsement state for the mod. This only changes the * buffered state, it does not sync with Nexus * @param endorsed the new endorsement state @@ -673,14 +670,6 @@ public: virtual QString notes() const; /** - * @brief return the list of files on nexus related to this mod in the form of iterators - * @note this is valid only after querying the files - * @param begin iterator to the first file - * @param end iterator to one past the last file - */ - virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo>::const_iterator &begin, QList<MOBase::ModRepositoryFileInfo>::const_iterator &end); - - /** * @return nexus description of the mod (html) */ QString getNexusDescription() const; @@ -713,7 +702,6 @@ private: private slots: void nxmDescriptionAvailable(int modID, QVariant userData, QVariant resultData); - void nxmFilesAvailable(int, QVariant, const QList<ModRepositoryFileInfo> &resultData); void nxmEndorsementToggled(int, QVariant userData, QVariant resultData); void nxmRequestFailed(int modID, QVariant userData, const QString &errorMessage); @@ -740,7 +728,6 @@ private: QString m_InstallationFile; QString m_Notes; QString m_NexusDescription; - QList<MOBase::ModRepositoryFileInfo> m_NexusFileInfos; QDateTime m_LastNexusQuery; @@ -820,8 +807,6 @@ public: virtual int getHighlight() const; virtual QString getDescription() const; virtual QDateTime getLastNexusQuery() const { return QDateTime(); } - virtual void getNexusFiles(QList<MOBase::ModRepositoryFileInfo>::const_iterator&, - QList<MOBase::ModRepositoryFileInfo>::const_iterator&) {} virtual QString getNexusDescription() const { return QString(); } private: |
