From 849a0a0ef40c9fa1feb15b880aa52fccdd84f234 Mon Sep 17 00:00:00 2001 From: Tannin Date: Fri, 5 Jul 2013 14:34:46 +0200 Subject: bugfix: nxmhandler in headless calls didn't save changes --- src/mainwindow.cpp | 3 ++- src/modinfo.cpp | 30 ------------------------------ src/modinfo.h | 29 +++++++---------------------- 3 files changed, 9 insertions(+), 53 deletions(-) (limited to 'src') 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&)), this, SLOT(nxmFilesAvailable(int,QVariant,QList))); 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 &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::const_iterator &begin, QList::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 @@ -358,15 +358,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::const_iterator &begin, - QList::const_iterator &end) = 0; - /** * @return nexus description of the mod (html) */ @@ -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 @@ -572,6 +563,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 @@ -672,14 +669,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::const_iterator &begin, QList::const_iterator &end); - /** * @return nexus description of the mod (html) */ @@ -713,7 +702,6 @@ private: private slots: void nxmDescriptionAvailable(int modID, QVariant userData, QVariant resultData); - void nxmFilesAvailable(int, QVariant, const QList &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 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::const_iterator&, - QList::const_iterator&) {} virtual QString getNexusDescription() const { return QString(); } private: -- cgit v1.3.1