summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2013-07-05 14:34:46 +0200
committerTannin <devnull@localhost>2013-07-05 14:34:46 +0200
commit849a0a0ef40c9fa1feb15b880aa52fccdd84f234 (patch)
tree41a67cedb579722c9c30921d791406a42ca01d2e /src
parent3b3717a0214a1a923ef004b90ace68197492d0ba (diff)
bugfix: nxmhandler in headless calls didn't save changes
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.cpp3
-rw-r--r--src/modinfo.cpp30
-rw-r--r--src/modinfo.h29
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: