summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Rimpo <jeremy.rimpo@servermonkey.com>2023-09-18 21:44:45 -0500
committerJeremy Rimpo <jeremy.rimpo@servermonkey.com>2023-09-21 17:35:05 -0500
commitf6bb73deb21228acf0e7f74500f50421143aa739 (patch)
tree85e5f9460282555857d455ab71e0a27a026e6f61
parent4342fe3ce16e1e14fb44cf2676e3887002f67ec4 (diff)
Clang cleanup
-rw-r--r--src/categories.cpp62
-rw-r--r--src/categories.h36
-rw-r--r--src/categoriestable.cpp15
-rw-r--r--src/categoriestable.h8
-rw-r--r--src/downloadmanager.cpp10
-rw-r--r--src/modinfo.cpp3
-rw-r--r--src/modinforegular.cpp2
-rw-r--r--src/modlistcontextmenu.cpp4
-rw-r--r--src/modlistviewactions.cpp18
-rw-r--r--src/nexusinterface.cpp320
-rw-r--r--src/nexusinterface.h26
-rw-r--r--src/organizer_en.ts260
-rw-r--r--src/profile.cpp3
-rw-r--r--src/settingsdialog.cpp3
-rw-r--r--src/settingsdialoggeneral.cpp5
-rw-r--r--src/settingsdialoggeneral.h6
16 files changed, 428 insertions, 353 deletions
diff --git a/src/categories.cpp b/src/categories.cpp
index 7fd60c50..61cd6334 100644
--- a/src/categories.cpp
+++ b/src/categories.cpp
@@ -90,23 +90,25 @@ void CategoryFactory::loadCategories()
int id = cells[0].toInt(&cell0Ok);
int parentID = cells[3].trimmed().toInt(&cell3Ok);
if (!cell0Ok || !cell3Ok) {
- log::error(tr("invalid category line {}: {}").toStdString(), lineNum, line.constData());
+ log::error(tr("invalid category line {}: {}").toStdString(), lineNum,
+ line.constData());
}
addCategory(id, QString::fromUtf8(cells[1].constData()), nexusCats, parentID);
} else if (cells.count() == 3) {
- bool cell0Ok = true;
- bool cell3Ok = true;
- int id = cells[0].toInt(&cell0Ok);
- int parentID = cells[2].trimmed().toInt(&cell3Ok);
- if (!cell0Ok || !cell3Ok) {
- log::error(tr("invalid category line {}: {}").toStdString(), lineNum, line.constData());
- }
+ bool cell0Ok = true;
+ bool cell3Ok = true;
+ int id = cells[0].toInt(&cell0Ok);
+ int parentID = cells[2].trimmed().toInt(&cell3Ok);
+ if (!cell0Ok || !cell3Ok) {
+ log::error(tr("invalid category line {}: {}").toStdString(), lineNum,
+ line.constData());
+ }
- addCategory(id, QString::fromUtf8(cells[1].constData()), std::vector<NexusCategory>(), parentID);
+ addCategory(id, QString::fromUtf8(cells[1].constData()),
+ std::vector<NexusCategory>(), parentID);
} else {
- log::error(
- tr("invalid category line {}: {} ({} cells)").toStdString(),
- lineNum, line.constData(), cells.count());
+ log::error(tr("invalid category line {}: {} ({} cells)").toStdString(), lineNum,
+ line.constData(), cells.count());
}
}
categoryFile.close();
@@ -123,21 +125,22 @@ void CategoryFactory::loadCategories()
if (nexCells.count() == 3) {
std::vector<NexusCategory> nexusCats;
QString nexName = nexCells[1];
- bool ok = false;
- int nexID = nexCells[2].toInt(&ok);
+ bool ok = false;
+ int nexID = nexCells[2].toInt(&ok);
if (!ok) {
- log::error(tr("invalid nexus ID {}").toStdString(), nexCells[2].constData());
+ log::error(tr("invalid nexus ID {}").toStdString(),
+ nexCells[2].constData());
}
int catID = nexCells[0].toInt(&ok);
if (!ok) {
- log::error(tr("invalid category id {}").toStdString(), nexCells[0].constData());
+ log::error(tr("invalid category id {}").toStdString(),
+ nexCells[0].constData());
}
m_NexusMap.insert_or_assign(nexID, NexusCategory(nexName, nexID));
m_NexusMap.at(nexID).m_CategoryID = catID;
} else {
- log::error(
- tr("invalid nexus category line {}: {} ({} cells)").toStdString(),
- lineNum, nexLine.constData(), nexCells.count());
+ log::error(tr("invalid nexus category line {}: {} ({} cells)").toStdString(),
+ lineNum, nexLine.constData(), nexCells.count());
}
}
}
@@ -145,7 +148,8 @@ void CategoryFactory::loadCategories()
}
std::sort(m_Categories.begin(), m_Categories.end());
setParents();
- if (needLoad) loadDefaultCategories();
+ if (needLoad)
+ loadDefaultCategories();
}
CategoryFactory* CategoryFactory::instance()
@@ -249,7 +253,9 @@ CategoryFactory::countCategories(std::function<bool(const Category& category)> f
return result;
}
-int CategoryFactory::addCategory(const QString& name, const std::vector<NexusCategory>& nexusCats, int parentID)
+int CategoryFactory::addCategory(const QString& name,
+ const std::vector<NexusCategory>& nexusCats,
+ int parentID)
{
int id = 1;
while (m_IDMap.find(id) != m_IDMap.end()) {
@@ -264,11 +270,14 @@ int CategoryFactory::addCategory(const QString& name, const std::vector<NexusCat
void CategoryFactory::addCategory(int id, const QString& name, int parentID)
{
int index = static_cast<int>(m_Categories.size());
- m_Categories.push_back(Category(index, id, name, parentID, std::vector<NexusCategory>()));
+ m_Categories.push_back(
+ Category(index, id, name, parentID, std::vector<NexusCategory>()));
m_IDMap[id] = index;
}
-void CategoryFactory::addCategory(int id, const QString& name, const std::vector<NexusCategory>& nexusCats, int parentID)
+void CategoryFactory::addCategory(int id, const QString& name,
+ const std::vector<NexusCategory>& nexusCats,
+ int parentID)
{
for (auto nexusCat : nexusCats) {
m_NexusMap.insert_or_assign(nexusCat.m_ID, nexusCat);
@@ -279,7 +288,8 @@ void CategoryFactory::addCategory(int id, const QString& name, const std::vector
m_IDMap[id] = index;
}
-void CategoryFactory::setNexusCategories(std::vector<CategoryFactory::NexusCategory>& nexusCats)
+void CategoryFactory::setNexusCategories(
+ std::vector<CategoryFactory::NexusCategory>& nexusCats)
{
m_NexusMap.empty();
for (auto nexusCat : nexusCats) {
@@ -289,7 +299,6 @@ void CategoryFactory::setNexusCategories(std::vector<CategoryFactory::NexusCateg
saveCategories();
}
-
void CategoryFactory::loadDefaultCategories()
{
// the order here is relevant as it defines the order in which the
@@ -513,7 +522,8 @@ unsigned int CategoryFactory::resolveNexusID(int nexusID) const
auto result = m_NexusMap.find(nexusID);
if (result != m_NexusMap.end()) {
if (m_IDMap.count(result->second.m_CategoryID)) {
- log::debug(tr("nexus category id {} maps to internal {}").toStdString(), nexusID, m_IDMap.at(result->second.m_CategoryID));
+ log::debug(tr("nexus category id {} maps to internal {}").toStdString(), nexusID,
+ m_IDMap.at(result->second.m_CategoryID));
return m_IDMap.at(result->second.m_CategoryID);
}
}
diff --git a/src/categories.h b/src/categories.h
index 86e66b1c..3f91e6c5 100644
--- a/src/categories.h
+++ b/src/categories.h
@@ -31,7 +31,8 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
*to look up categories, optimized to where the request comes from. Therefore be very
*careful which of the two you have available
**/
-class CategoryFactory : public QObject {
+class CategoryFactory : public QObject
+{
Q_OBJECT;
friend class CategoriesDialog;
@@ -53,30 +54,37 @@ public:
};
public:
- struct NexusCategory {
- NexusCategory(const QString& name, const int nexusID)
- : m_Name(name), m_ID(nexusID) {}
+ struct NexusCategory
+ {
+ NexusCategory(const QString& name, const int nexusID) : m_Name(name), m_ID(nexusID)
+ {}
QString m_Name;
int m_ID;
int m_CategoryID = -1;
- friend bool operator==(const NexusCategory& LHS, const NexusCategory& RHS) {
+ friend bool operator==(const NexusCategory& LHS, const NexusCategory& RHS)
+ {
return LHS.m_ID == RHS.m_ID;
}
- friend bool operator==(const NexusCategory& LHS, const int RHS) {
+ friend bool operator==(const NexusCategory& LHS, const int RHS)
+ {
return LHS.m_ID == RHS;
}
- friend bool operator<(const NexusCategory& LHS, const NexusCategory& RHS) {
+ friend bool operator<(const NexusCategory& LHS, const NexusCategory& RHS)
+ {
return LHS.m_ID < RHS.m_ID;
}
};
- struct Category {
- Category(int sortValue, int id, const QString& name, int parentID, std::vector<NexusCategory> nexusCats)
- : m_SortValue(sortValue), m_ID(id), m_Name(name), m_HasChildren(false), m_ParentID(parentID)
- , m_NexusCats(nexusCats) {}
+ struct Category
+ {
+ Category(int sortValue, int id, const QString& name, int parentID,
+ std::vector<NexusCategory> nexusCats)
+ : m_SortValue(sortValue), m_ID(id), m_Name(name), m_HasChildren(false),
+ m_ParentID(parentID), m_NexusCats(nexusCats)
+ {}
int m_SortValue;
int m_ID;
int m_ParentID;
@@ -108,7 +116,8 @@ public:
void setNexusCategories(std::vector<CategoryFactory::NexusCategory>& nexusCats);
- int addCategory(const QString& name, const std::vector<NexusCategory>& nexusCats, int parentID);
+ int addCategory(const QString& name, const std::vector<NexusCategory>& nexusCats,
+ int parentID);
/**
* @brief retrieve the number of available categories
@@ -222,7 +231,8 @@ private:
void loadDefaultCategories();
- void addCategory(int id, const QString& name, const std::vector<NexusCategory>& nexusCats, int parentID);
+ void addCategory(int id, const QString& name,
+ const std::vector<NexusCategory>& nexusCats, int parentID);
void addCategory(int id, const QString& name, int parentID);
void setParents();
diff --git a/src/categoriestable.cpp b/src/categoriestable.cpp
index ed45826f..fc53fb58 100644
--- a/src/categoriestable.cpp
+++ b/src/categoriestable.cpp
@@ -21,7 +21,8 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
CategoriesTable::CategoriesTable(QWidget* parent) : QTableWidget(parent) {}
-bool CategoriesTable::dropMimeData(int row, int column, const QMimeData* data, Qt::DropAction action)
+bool CategoriesTable::dropMimeData(int row, int column, const QMimeData* data,
+ Qt::DropAction action)
{
if (row == -1)
return false;
@@ -35,15 +36,15 @@ bool CategoriesTable::dropMimeData(int row, int column, const QMimeData* data, Q
QByteArray encoded = data->data("application/x-qabstractitemmodeldatalist");
QDataStream stream(&encoded, QIODevice::ReadOnly);
- while (!stream.atEnd())
- {
+ while (!stream.atEnd()) {
int curRow, curCol;
QMap<int, QVariant> roleDataMap;
stream >> curRow >> curCol >> roleDataMap;
- for (auto item : findItems(roleDataMap.value(Qt::DisplayRole).toString(), Qt::MatchContains | Qt::MatchWrap))
- {
- if (item->column() != 3) continue;
+ for (auto item : findItems(roleDataMap.value(Qt::DisplayRole).toString(),
+ Qt::MatchContains | Qt::MatchWrap)) {
+ if (item->column() != 3)
+ continue;
QVariantList newData;
for (auto nexData : item->data(Qt::UserRole).toList()) {
if (nexData.toList()[1].toInt() != roleDataMap.value(Qt::UserRole)) {
@@ -59,7 +60,7 @@ bool CategoriesTable::dropMimeData(int row, int column, const QMimeData* data, Q
}
auto nexusItem = item(row, 3);
- auto itemData = nexusItem->data(Qt::UserRole).toList();
+ auto itemData = nexusItem->data(Qt::UserRole).toList();
QVariantList newData;
newData.append(roleDataMap.value(Qt::DisplayRole).toString());
newData.append(roleDataMap.value(Qt::UserRole).toInt());
diff --git a/src/categoriestable.h b/src/categoriestable.h
index 7aaf62a9..8ec797de 100644
--- a/src/categoriestable.h
+++ b/src/categoriestable.h
@@ -27,11 +27,11 @@ class CategoriesTable : public QTableWidget
{
Q_OBJECT
public:
- CategoriesTable(QWidget *parent = 0);
+ CategoriesTable(QWidget* parent = 0);
protected:
- virtual bool dropMimeData(int row, int column, const QMimeData* data, Qt::DropAction action);
-
+ virtual bool dropMimeData(int row, int column, const QMimeData* data,
+ Qt::DropAction action);
};
-#endif // CATEGORIESTABLE_H
+#endif // CATEGORIESTABLE_H
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index 6cf3a95c..3e5303c6 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -1323,10 +1323,12 @@ QString DownloadManager::getFileName(int index) const
int DownloadManager::getDownloadIndex(QString filename) const
{
- auto file = std::find_if(m_ActiveDownloads.begin(), m_ActiveDownloads.end(), [=](DownloadManager::DownloadInfo *const val) {
- if (val->m_FileName == filename) return true;
- return false;
- });
+ auto file = std::find_if(m_ActiveDownloads.begin(), m_ActiveDownloads.end(),
+ [=](DownloadManager::DownloadInfo* const val) {
+ if (val->m_FileName == filename)
+ return true;
+ return false;
+ });
if (file != m_ActiveDownloads.end()) {
int fileIndex = m_ActiveDownloads.indexOf(*file);
return fileIndex;
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index 5ef36ef0..0ae28e73 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -495,7 +495,8 @@ void ModInfo::addCategory(const QString& categoryName)
{
int id = CategoryFactory::instance()->getCategoryID(categoryName);
if (id == -1) {
- id = CategoryFactory::instance()->addCategory(categoryName, std::vector<CategoryFactory::NexusCategory>(), 0);
+ id = CategoryFactory::instance()->addCategory(
+ categoryName, std::vector<CategoryFactory::NexusCategory>(), 0);
}
setCategory(id, true);
}
diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp
index 275b76a3..9cb89307 100644
--- a/src/modinforegular.cpp
+++ b/src/modinforegular.cpp
@@ -738,7 +738,7 @@ QString ModInfoRegular::getDescription() const
}
categoryString << "<span style=\"white-space: nowrap;\"><i>"
<< ToWString(categoryFactory->getCategoryName(
- categoryFactory->getCategoryIndex(*catIter)))
+ categoryFactory->getCategoryIndex(*catIter)))
<< "</font></span>";
}
diff --git a/src/modlistcontextmenu.cpp b/src/modlistcontextmenu.cpp
index 096976c1..6954652e 100644
--- a/src/modlistcontextmenu.cpp
+++ b/src/modlistcontextmenu.cpp
@@ -562,7 +562,9 @@ void ModListContextMenu::addRegularActions(ModInfo::Ptr mod)
}
if (mod->nexusId() > 0 && !mod->installationFile().isEmpty()) {
- addAction(tr("Remap Category (From Nexus)"), [=]() { m_actions.remapCategory(m_selected); });
+ addAction(tr("Remap Category (From Nexus)"), [=]() {
+ m_actions.remapCategory(m_selected);
+ });
}
if (mod->nexusId() > 0 && Settings::instance().nexus().trackedIntegration()) {
diff --git a/src/modlistviewactions.cpp b/src/modlistviewactions.cpp
index 5fc2aea9..aa962c1e 100644
--- a/src/modlistviewactions.cpp
+++ b/src/modlistviewactions.cpp
@@ -264,17 +264,18 @@ void ModListViewActions::assignCategories() const
{
for (auto mod : m_core.modList()->allMods()) {
ModInfo::Ptr modInfo = ModInfo::getByName(mod);
- QString file = modInfo->installationFile();
- auto download = m_core.downloadManager()->getDownloadIndex(file);
+ QString file = modInfo->installationFile();
+ auto download = m_core.downloadManager()->getDownloadIndex(file);
if (download >= 0) {
int nexusCategory = m_core.downloadManager()->getCategoryID(download);
- int newCategory = CategoryFactory::instance()->resolveNexusID(nexusCategory);
+ int newCategory = CategoryFactory::instance()->resolveNexusID(nexusCategory);
if (newCategory != 0) {
for (auto category : modInfo->categories()) {
modInfo->removeCategory(category);
}
}
- modInfo->setCategory(CategoryFactory::instance()->getCategoryID(newCategory), true);
+ modInfo->setCategory(CategoryFactory::instance()->getCategoryID(newCategory),
+ true);
}
}
}
@@ -1107,12 +1108,15 @@ void ModListViewActions::remapCategory(const QModelIndexList& indices) const
for (auto& idx : indices) {
ModInfo::Ptr modInfo = ModInfo::getByIndex(idx.data(ModList::IndexRole).toInt());
- int downloadIndex = m_core.downloadManager()->getDownloadIndex(modInfo->installationFile());
+ int downloadIndex =
+ m_core.downloadManager()->getDownloadIndex(modInfo->installationFile());
if (downloadIndex >= 0) {
auto downloadInfo = m_core.downloadManager()->getFileInfo(downloadIndex);
- unsigned int categoryIndex = CategoryFactory::instance()->resolveNexusID(downloadInfo->categoryID);
+ unsigned int categoryIndex =
+ CategoryFactory::instance()->resolveNexusID(downloadInfo->categoryID);
if (categoryIndex != 0)
- modInfo->setPrimaryCategory(CategoryFactory::instance()->getCategoryID(categoryIndex));
+ modInfo->setPrimaryCategory(
+ CategoryFactory::instance()->getCategoryID(categoryIndex));
}
}
}
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp
index 9db78791..6a39128f 100644
--- a/src/nexusinterface.cpp
+++ b/src/nexusinterface.cpp
@@ -93,7 +93,8 @@ void NexusBridge::requestToggleTracking(QString gameName, int modID, bool track,
void NexusBridge::requestGameInfo(QString gameName, QVariant userData)
{
- m_RequestIDs.insert(m_Interface->requestGameInfo(gameName, this, userData, m_SubModule));
+ m_RequestIDs.insert(
+ m_Interface->requestGameInfo(gameName, this, userData, m_SubModule));
}
void NexusBridge::nxmDescriptionAvailable(QString gameName, int modID,
@@ -199,7 +200,8 @@ void NexusBridge::nxmTrackingToggled(QString gameName, int modID, QVariant userD
}
}
-void NexusBridge::nxmGameInfoAvailable(QString gameName, QVariant userData, QVariant resultData, int requestID)
+void NexusBridge::nxmGameInfoAvailable(QString gameName, QVariant userData,
+ QVariant resultData, int requestID)
{
std::set<int>::iterator iter = m_RequestIDs.find(requestID);
if (iter != m_RequestIDs.end()) {
@@ -749,7 +751,9 @@ int NexusInterface::requestToggleTracking(QString gameName, int modID, bool trac
return requestInfo.m_ID;
}
-int NexusInterface::requestGameInfo(QString gameName, QObject* receiver, QVariant userData, const QString& subModule, MOBase::IPluginGame const* game)
+int NexusInterface::requestGameInfo(QString gameName, QObject* receiver,
+ QVariant userData, const QString& subModule,
+ MOBase::IPluginGame const* game)
{
if (m_User.shouldThrottle()) {
throttledWarning(m_User);
@@ -760,10 +764,13 @@ int NexusInterface::requestGameInfo(QString gameName, QObject* receiver, QVarian
m_RequestQueue.enqueue(requestInfo);
connect(this, SIGNAL(nxmGameInfoAvailable(QString, QVariant, QVariant, int)),
- receiver, SLOT(nxmGameInfoAvailable(QString, QVariant, QVariant, int)), Qt::UniqueConnection);
+ receiver, SLOT(nxmGameInfoAvailable(QString, QVariant, QVariant, int)),
+ Qt::UniqueConnection);
- connect(this, SIGNAL(nxmRequestFailed(QString, int, int, QVariant, int, int, QString)),
- receiver, SLOT(nxmRequestFailed(QString, int, int, QVariant, int, int, QString)), Qt::UniqueConnection);
+ connect(
+ this, SIGNAL(nxmRequestFailed(QString, int, int, QVariant, int, int, QString)),
+ receiver, SLOT(nxmRequestFailed(QString, int, int, QVariant, int, int, QString)),
+ Qt::UniqueConnection);
nextRequest();
return requestInfo.m_ID;
@@ -868,72 +875,104 @@ void NexusInterface::nextRequest()
if (!info.m_Reroute) {
bool hasParams = false;
switch (info.m_Type) {
- case NXMRequestInfo::TYPE_DESCRIPTION:
- case NXMRequestInfo::TYPE_MODINFO: {
- url = QString("%1/games/%2/mods/%3")
+ case NXMRequestInfo::TYPE_DESCRIPTION:
+ case NXMRequestInfo::TYPE_MODINFO: {
+ url = QString("%1/games/%2/mods/%3")
+ .arg(info.m_URL)
+ .arg(info.m_GameName)
+ .arg(info.m_ModID);
+ } break;
+ case NXMRequestInfo::TYPE_CHECKUPDATES: {
+ QString period;
+ switch (info.m_UpdatePeriod) {
+ case UpdatePeriod::DAY:
+ period = "1d";
+ break;
+ case UpdatePeriod::WEEK:
+ period = "1w";
+ break;
+ case UpdatePeriod::MONTH:
+ period = "1m";
+ break;
+ }
+ url = QString("%1/games/%2/mods/updated?period=%3")
+ .arg(info.m_URL)
+ .arg(info.m_GameName)
+ .arg(period);
+ } break;
+ case NXMRequestInfo::TYPE_FILES:
+ case NXMRequestInfo::TYPE_GETUPDATES: {
+ url = QString("%1/games/%2/mods/%3/files")
+ .arg(info.m_URL)
+ .arg(info.m_GameName)
+ .arg(info.m_ModID);
+ } break;
+ case NXMRequestInfo::TYPE_FILEINFO: {
+ url = QString("%1/games/%2/mods/%3/files/%4")
+ .arg(info.m_URL)
+ .arg(info.m_GameName)
+ .arg(info.m_ModID)
+ .arg(info.m_FileID);
+ } break;
+ case NXMRequestInfo::TYPE_DOWNLOADURL: {
+ ModRepositoryFileInfo* fileInfo = qobject_cast<ModRepositoryFileInfo*>(
+ qvariant_cast<QObject*>(info.m_UserData));
+ if (m_User.type() == APIUserAccountTypes::Premium) {
+ url = QString("%1/games/%2/mods/%3/files/%4/download_link")
.arg(info.m_URL)
.arg(info.m_GameName)
- .arg(info.m_ModID);
- } break;
- case NXMRequestInfo::TYPE_CHECKUPDATES: {
- QString period;
- switch (info.m_UpdatePeriod) {
- case UpdatePeriod::DAY:
- period = "1d";
- break;
- case UpdatePeriod::WEEK:
- period = "1w";
- break;
- case UpdatePeriod::MONTH:
- period = "1m";
- break;
- }
- url = QString("%1/games/%2/mods/updated?period=%3").arg(info.m_URL).arg(info.m_GameName).arg(period);
- } break;
- case NXMRequestInfo::TYPE_FILES:
- case NXMRequestInfo::TYPE_GETUPDATES: {
- url = QString("%1/games/%2/mods/%3/files").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID);
- } break;
- case NXMRequestInfo::TYPE_FILEINFO: {
- url = QString("%1/games/%2/mods/%3/files/%4").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID).arg(info.m_FileID);
- } break;
- case NXMRequestInfo::TYPE_DOWNLOADURL: {
- ModRepositoryFileInfo *fileInfo = qobject_cast<ModRepositoryFileInfo*>(qvariant_cast<QObject*>(info.m_UserData));
- if (m_User.type() == APIUserAccountTypes::Premium) {
- url = QString("%1/games/%2/mods/%3/files/%4/download_link").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID).arg(info.m_FileID);
- } else if (!fileInfo->nexusKey.isEmpty() && fileInfo->nexusExpires && fileInfo->nexusDownloadUser == m_User.id().toInt()) {
- url = QString("%1/games/%2/mods/%3/files/%4/download_link?key=%5&expires=%6")
- .arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID).arg(info.m_FileID).arg(fileInfo->nexusKey).arg(fileInfo->nexusExpires);
- } else {
- log::warn("{}", tr("Aborting download: Either you clicked on a premium-only link and your account is not premium, "
- "or the download link was generated by a different account than the one stored in Mod Organizer."));
- return;
- }
- } break;
- case NXMRequestInfo::TYPE_ENDORSEMENTS: {
- url = QString("%1/user/endorsements").arg(info.m_URL);
- } break;
- case NXMRequestInfo::TYPE_TOGGLEENDORSEMENT: {
- QString endorse = info.m_Endorse ? "endorse" : "abstain";
- url = QString("%1/games/%2/mods/%3/%4").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID).arg(endorse);
- postObject.insert("Version", info.m_ModVersion);
- postData.setObject(postObject);
- } break;
- case NXMRequestInfo::TYPE_TOGGLETRACKING: {
- url = QStringLiteral("%1/user/tracked_mods?domain_name=%2").arg(info.m_URL).arg(info.m_GameName);
- postObject.insert("mod_id", info.m_ModID);
- postData.setObject(postObject);
- requestIsDelete = !info.m_Track;
- } break;
- case NXMRequestInfo::TYPE_TRACKEDMODS: {
- url = QStringLiteral("%1/user/tracked_mods").arg(info.m_URL);
- } break;
- case NXMRequestInfo::TYPE_FILEINFO_MD5: {
- url = QStringLiteral("%1/games/%2/mods/md5_search/%3").arg(info.m_URL).arg(info.m_GameName).arg(QString(info.m_Hash.toHex()));
- } break;
- case NXMRequestInfo::TYPE_GAMEINFO: {
- url = QStringLiteral("%1/games/%2").arg(info.m_URL).arg(info.m_GameName);
- } break;
+ .arg(info.m_ModID)
+ .arg(info.m_FileID);
+ } else if (!fileInfo->nexusKey.isEmpty() && fileInfo->nexusExpires &&
+ fileInfo->nexusDownloadUser == m_User.id().toInt()) {
+ url = QString("%1/games/%2/mods/%3/files/%4/download_link?key=%5&expires=%6")
+ .arg(info.m_URL)
+ .arg(info.m_GameName)
+ .arg(info.m_ModID)
+ .arg(info.m_FileID)
+ .arg(fileInfo->nexusKey)
+ .arg(fileInfo->nexusExpires);
+ } else {
+ log::warn("{}", tr("Aborting download: Either you clicked on a premium-only "
+ "link and your account is not premium, "
+ "or the download link was generated by a different account "
+ "than the one stored in Mod Organizer."));
+ return;
+ }
+ } break;
+ case NXMRequestInfo::TYPE_ENDORSEMENTS: {
+ url = QString("%1/user/endorsements").arg(info.m_URL);
+ } break;
+ case NXMRequestInfo::TYPE_TOGGLEENDORSEMENT: {
+ QString endorse = info.m_Endorse ? "endorse" : "abstain";
+ url = QString("%1/games/%2/mods/%3/%4")
+ .arg(info.m_URL)
+ .arg(info.m_GameName)
+ .arg(info.m_ModID)
+ .arg(endorse);
+ postObject.insert("Version", info.m_ModVersion);
+ postData.setObject(postObject);
+ } break;
+ case NXMRequestInfo::TYPE_TOGGLETRACKING: {
+ url = QStringLiteral("%1/user/tracked_mods?domain_name=%2")
+ .arg(info.m_URL)
+ .arg(info.m_GameName);
+ postObject.insert("mod_id", info.m_ModID);
+ postData.setObject(postObject);
+ requestIsDelete = !info.m_Track;
+ } break;
+ case NXMRequestInfo::TYPE_TRACKEDMODS: {
+ url = QStringLiteral("%1/user/tracked_mods").arg(info.m_URL);
+ } break;
+ case NXMRequestInfo::TYPE_FILEINFO_MD5: {
+ url = QStringLiteral("%1/games/%2/mods/md5_search/%3")
+ .arg(info.m_URL)
+ .arg(info.m_GameName)
+ .arg(QString(info.m_Hash.toHex()));
+ } break;
+ case NXMRequestInfo::TYPE_GAMEINFO: {
+ url = QStringLiteral("%1/games/%2").arg(info.m_URL).arg(info.m_GameName);
+ }
}
} else {
url = info.m_URL;
@@ -1045,53 +1084,69 @@ void NexusInterface::requestFinished(std::list<NXMRequestInfo>::iterator iter)
if (!responseDoc.isNull()) {
QVariant result = responseDoc.toVariant();
switch (iter->m_Type) {
- case NXMRequestInfo::TYPE_DESCRIPTION: {
- emit nxmDescriptionAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_MODINFO: {
- emit nxmModInfoAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_CHECKUPDATES: {
- emit nxmUpdateInfoAvailable(iter->m_GameName, iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_FILES: {
- emit nxmFilesAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_GETUPDATES: {
- emit nxmUpdatesAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_FILEINFO: {
- emit nxmFileInfoAvailable(iter->m_GameName, iter->m_ModID, iter->m_FileID, iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_DOWNLOADURL: {
- emit nxmDownloadURLsAvailable(iter->m_GameName, iter->m_ModID, iter->m_FileID, iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_ENDORSEMENTS: {
- emit nxmEndorsementsAvailable(iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_TOGGLEENDORSEMENT: {
- emit nxmEndorsementToggled(iter->m_GameName, iter->m_ModID, iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_TOGGLETRACKING: {
- auto results = result.toMap();
- auto message = results["message"].toString();
- if (message.contains(QRegularExpression("User [0-9]+ is already Tracking Mod: [0-9]+")) ||
- message.contains(QRegularExpression("User [0-9]+ is now Tracking Mod: [0-9]+"))) {
- emit nxmTrackingToggled(iter->m_GameName, iter->m_ModID, iter->m_UserData, true, iter->m_ID);
- } else if (message.contains(QRegularExpression("User [0-9]+ is no longer tracking [0-9]+")) ||
- message.contains(QRegularExpression("Users is not tracking mod. Unable to untrack."))) {
- emit nxmTrackingToggled(iter->m_GameName, iter->m_ModID, iter->m_UserData, false, iter->m_ID);
- }
- } break;
- case NXMRequestInfo::TYPE_TRACKEDMODS: {
- emit nxmTrackedModsAvailable(iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_FILEINFO_MD5: {
- emit nxmFileInfoFromMd5Available(iter->m_GameName, iter->m_UserData, result, iter->m_ID);
- } break;
- case NXMRequestInfo::TYPE_GAMEINFO: {
- emit nxmGameInfoAvailable(iter->m_GameName, iter->m_UserData, result, iter->m_ID);
- } break;
+ case NXMRequestInfo::TYPE_DESCRIPTION: {
+ emit nxmDescriptionAvailable(iter->m_GameName, iter->m_ModID,
+ iter->m_UserData, result, iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_MODINFO: {
+ emit nxmModInfoAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData,
+ result, iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_CHECKUPDATES: {
+ emit nxmUpdateInfoAvailable(iter->m_GameName, iter->m_UserData, result,
+ iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_FILES: {
+ emit nxmFilesAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData,
+ result, iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_GETUPDATES: {
+ emit nxmUpdatesAvailable(iter->m_GameName, iter->m_ModID, iter->m_UserData,
+ result, iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_FILEINFO: {
+ emit nxmFileInfoAvailable(iter->m_GameName, iter->m_ModID, iter->m_FileID,
+ iter->m_UserData, result, iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_DOWNLOADURL: {
+ emit nxmDownloadURLsAvailable(iter->m_GameName, iter->m_ModID, iter->m_FileID,
+ iter->m_UserData, result, iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_ENDORSEMENTS: {
+ emit nxmEndorsementsAvailable(iter->m_UserData, result, iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_TOGGLEENDORSEMENT: {
+ emit nxmEndorsementToggled(iter->m_GameName, iter->m_ModID, iter->m_UserData,
+ result, iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_TOGGLETRACKING: {
+ auto results = result.toMap();
+ auto message = results["message"].toString();
+ if (message.contains(
+ QRegularExpression("User [0-9]+ is already Tracking Mod: [0-9]+")) ||
+ message.contains(
+ QRegularExpression("User [0-9]+ is now Tracking Mod: [0-9]+"))) {
+ emit nxmTrackingToggled(iter->m_GameName, iter->m_ModID, iter->m_UserData,
+ true, iter->m_ID);
+ } else if (message.contains(QRegularExpression(
+ "User [0-9]+ is no longer tracking [0-9]+")) ||
+ message.contains(QRegularExpression(
+ "Users is not tracking mod. Unable to untrack."))) {
+ emit nxmTrackingToggled(iter->m_GameName, iter->m_ModID, iter->m_UserData,
+ false, iter->m_ID);
+ }
+ } break;
+ case NXMRequestInfo::TYPE_TRACKEDMODS: {
+ emit nxmTrackedModsAvailable(iter->m_UserData, result, iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_FILEINFO_MD5: {
+ emit nxmFileInfoFromMd5Available(iter->m_GameName, iter->m_UserData, result,
+ iter->m_ID);
+ } break;
+ case NXMRequestInfo::TYPE_GAMEINFO: {
+ emit nxmGameInfoAvailable(iter->m_GameName, iter->m_UserData, result,
+ iter->m_ID);
+ } break;
}
m_User.limits(parseLimits(reply));
@@ -1194,28 +1249,15 @@ NexusInterface::NXMRequestInfo::NXMRequestInfo(
m_Endorse(false), m_Track(false), m_Hash(QByteArray())
{}
-NexusInterface::NXMRequestInfo::NXMRequestInfo(Type type
- , QVariant userData
- , const QString & subModule
- , MOBase::IPluginGame const *game
-)
- : m_ModID(0)
- , m_ModVersion("0")
- , m_FileID(0)
- , m_Reply(nullptr)
- , m_Type(type)
- , m_UpdatePeriod(UpdatePeriod::NONE)
- , m_UserData(userData)
- , m_Timeout(nullptr)
- , m_Reroute(false)
- , m_ID(s_NextID.fetchAndAddAcquire(1))
- , m_URL(get_management_url())
- , m_SubModule(subModule)
- , m_NexusGameID(game->nexusGameID())
- , m_GameName(game->gameNexusName())
- , m_Endorse(false)
- , m_Track(false)
- , m_Hash(QByteArray())
+NexusInterface::NXMRequestInfo::NXMRequestInfo(Type type, QVariant userData,
+ const QString& subModule,
+ MOBase::IPluginGame const* game)
+ : m_ModID(0), m_ModVersion("0"), m_FileID(0), m_Reply(nullptr), m_Type(type),
+ m_UpdatePeriod(UpdatePeriod::NONE), m_UserData(userData), m_Timeout(nullptr),
+ m_Reroute(false), m_ID(s_NextID.fetchAndAddAcquire(1)),
+ m_URL(get_management_url()), m_SubModule(subModule),
+ m_NexusGameID(game->nexusGameID()), m_GameName(game->gameNexusName()),
+ m_Endorse(false), m_Track(false), m_Hash(QByteArray())
{}
NexusInterface::NXMRequestInfo::NXMRequestInfo(
diff --git a/src/nexusinterface.h b/src/nexusinterface.h
index 95e46168..b79127af 100644
--- a/src/nexusinterface.h
+++ b/src/nexusinterface.h
@@ -467,17 +467,18 @@ public:
}
/**
- * @param gameName the game short name to support multiple game sources
- * @brief toggle tracking state of the mod
- * @param modID id of the mod
- * @param track true if the mod should be tracked, false for not tracked
- * @param receiver the object to receive the result asynchronously via a signal (nxmFilesAvailable)
- * @param userData user data to be returned with the result
- * @param game the game with which the mods are associated
- * @return int an id to identify the request
- */
- int requestGameInfo(QString gameName, QObject* receiver, QVariant userData, const QString& subModule,
- MOBase::IPluginGame const* game);
+ * @param gameName the game short name to support multiple game sources
+ * @brief toggle tracking state of the mod
+ * @param modID id of the mod
+ * @param track true if the mod should be tracked, false for not tracked
+ * @param receiver the object to receive the result asynchronously via a signal
+ * (nxmFilesAvailable)
+ * @param userData user data to be returned with the result
+ * @param game the game with which the mods are associated
+ * @return int an id to identify the request
+ */
+ int requestGameInfo(QString gameName, QObject* receiver, QVariant userData,
+ const QString& subModule, MOBase::IPluginGame const* game);
/**
*
@@ -651,7 +652,8 @@ private:
const QString& subModule, MOBase::IPluginGame const* game);
NXMRequestInfo(int modID, int fileID, Type type, QVariant userData,
const QString& subModule, MOBase::IPluginGame const* game);
- NXMRequestInfo(Type type, QVariant userData, const QString &subModule, MOBase::IPluginGame const *game);
+ NXMRequestInfo(Type type, QVariant userData, const QString& subModule,
+ MOBase::IPluginGame const* game);
NXMRequestInfo(Type type, QVariant userData, const QString& subModule);
NXMRequestInfo(UpdatePeriod period, Type type, QVariant userData,
const QString& subModule, MOBase::IPluginGame const* game);
diff --git a/src/organizer_en.ts b/src/organizer_en.ts
index 389d84ae..71be4187 100644
--- a/src/organizer_en.ts
+++ b/src/organizer_en.ts
@@ -330,67 +330,67 @@ p, li { white-space: pre-wrap; }
<context>
<name>CategoryFactory</name>
<message>
- <location filename="categories.cpp" line="78"/>
- <location filename="categories.cpp" line="128"/>
+ <location filename="categories.cpp" line="77"/>
+ <location filename="categories.cpp" line="130"/>
<source>invalid category id {}</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="88"/>
+ <location filename="categories.cpp" line="87"/>
<location filename="categories.cpp" line="97"/>
<source>invalid category line {}: {}</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="103"/>
+ <location filename="categories.cpp" line="104"/>
<source>invalid category line {}: {} ({} cells)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="124"/>
+ <location filename="categories.cpp" line="125"/>
<source>invalid nexus ID {}</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="134"/>
+ <location filename="categories.cpp" line="136"/>
<source>invalid nexus category line {}: {} ({} cells)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="194"/>
+ <location filename="categories.cpp" line="197"/>
<source>Failed to save custom categories</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="218"/>
+ <location filename="categories.cpp" line="221"/>
<source>Failed to save nexus category mappings</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="356"/>
- <location filename="categories.cpp" line="402"/>
- <location filename="categories.cpp" line="411"/>
- <location filename="categories.cpp" line="479"/>
+ <location filename="categories.cpp" line="362"/>
+ <location filename="categories.cpp" line="408"/>
+ <location filename="categories.cpp" line="417"/>
+ <location filename="categories.cpp" line="485"/>
<source>invalid category index: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="394"/>
+ <location filename="categories.cpp" line="400"/>
<source>{} is no valid category id</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="489"/>
+ <location filename="categories.cpp" line="495"/>
<source>invalid category id: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="513"/>
+ <location filename="categories.cpp" line="519"/>
<source>nexus category id {} maps to internal {}</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="517"/>
+ <location filename="categories.cpp" line="524"/>
<source>nexus category id {} not mapped</source>
<translation type="unfinished"></translation>
</message>
@@ -1334,126 +1334,126 @@ File %3: %4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1340"/>
+ <location filename="downloadmanager.cpp" line="1342"/>
<source>file time: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1359"/>
+ <location filename="downloadmanager.cpp" line="1361"/>
<source>file size: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1368"/>
+ <location filename="downloadmanager.cpp" line="1370"/>
<source>progress: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1377"/>
+ <location filename="downloadmanager.cpp" line="1379"/>
<source>state: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1386"/>
+ <location filename="downloadmanager.cpp" line="1388"/>
<source>infocomplete: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1400"/>
- <location filename="downloadmanager.cpp" line="1408"/>
- <location filename="downloadmanager.cpp" line="1416"/>
- <location filename="downloadmanager.cpp" line="1429"/>
+ <location filename="downloadmanager.cpp" line="1402"/>
+ <location filename="downloadmanager.cpp" line="1410"/>
+ <location filename="downloadmanager.cpp" line="1418"/>
+ <location filename="downloadmanager.cpp" line="1431"/>
<source>mod id: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1437"/>
+ <location filename="downloadmanager.cpp" line="1439"/>
<source>ishidden: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1445"/>
+ <location filename="downloadmanager.cpp" line="1447"/>
<source>file info: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1454"/>
+ <location filename="downloadmanager.cpp" line="1456"/>
<source>mark installed: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1499"/>
+ <location filename="downloadmanager.cpp" line="1501"/>
<source>mark uninstalled: invalid download index %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1668"/>
+ <location filename="downloadmanager.cpp" line="1670"/>
<source>%1% - %2 - ~%3</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1679"/>
+ <location filename="downloadmanager.cpp" line="1681"/>
<source>Memory allocation error (in processing progress event).</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1688"/>
+ <location filename="downloadmanager.cpp" line="1690"/>
<source>Memory allocation error (in processing downloaded data).</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1810"/>
+ <location filename="downloadmanager.cpp" line="1812"/>
<source>Information updated</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1812"/>
- <location filename="downloadmanager.cpp" line="1835"/>
+ <location filename="downloadmanager.cpp" line="1814"/>
+ <location filename="downloadmanager.cpp" line="1837"/>
<source>No matching file found on Nexus! Maybe this file is no longer available or it was renamed?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="1815"/>
+ <location filename="downloadmanager.cpp" line="1817"/>
<source>No file on Nexus matches the selected file by name. Please manually choose the correct one.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="2012"/>
+ <location filename="downloadmanager.cpp" line="2014"/>
<source>No download server available. Please try again later.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="2182"/>
+ <location filename="downloadmanager.cpp" line="2184"/>
<source>Failed to request file info from nexus: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="2214"/>
+ <location filename="downloadmanager.cpp" line="2216"/>
<source>Warning: Content type is: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="2221"/>
+ <location filename="downloadmanager.cpp" line="2223"/>
<source>Download header content length: %1 downloaded file size: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="2225"/>
+ <location filename="downloadmanager.cpp" line="2227"/>
<source>Download failed: %1 (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="2250"/>
+ <location filename="downloadmanager.cpp" line="2252"/>
<source>We were unable to download the file due to errors after four retries. There may be an issue with the Nexus servers.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="2339"/>
+ <location filename="downloadmanager.cpp" line="2341"/>
<source>failed to re-open %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="downloadmanager.cpp" line="2387"/>
+ <location filename="downloadmanager.cpp" line="2389"/>
<source>Unable to write download to drive (return %1).
Check the drive&apos;s available storage.
@@ -4995,7 +4995,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="modlistcontextmenu.cpp" line="376"/>
<location filename="modlistcontextmenu.cpp" line="453"/>
- <location filename="modlistcontextmenu.cpp" line="618"/>
+ <location filename="modlistcontextmenu.cpp" line="620"/>
<source>Open in Explorer</source>
<translation type="unfinished"></translation>
</message>
@@ -5033,25 +5033,25 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="modlistcontextmenu.cpp" line="429"/>
- <location filename="modlistcontextmenu.cpp" line="591"/>
+ <location filename="modlistcontextmenu.cpp" line="593"/>
<source>Ignore missing data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="modlistcontextmenu.cpp" line="435"/>
- <location filename="modlistcontextmenu.cpp" line="598"/>
+ <location filename="modlistcontextmenu.cpp" line="600"/>
<source>Mark as converted/working</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="modlistcontextmenu.cpp" line="441"/>
- <location filename="modlistcontextmenu.cpp" line="606"/>
+ <location filename="modlistcontextmenu.cpp" line="608"/>
<source>Visit on Nexus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="modlistcontextmenu.cpp" line="448"/>
- <location filename="modlistcontextmenu.cpp" line="613"/>
+ <location filename="modlistcontextmenu.cpp" line="615"/>
<source>Visit on %1</source>
<translation type="unfinished"></translation>
</message>
@@ -5137,17 +5137,17 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistcontextmenu.cpp" line="571"/>
+ <location filename="modlistcontextmenu.cpp" line="573"/>
<source>Start tracking</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistcontextmenu.cpp" line="576"/>
+ <location filename="modlistcontextmenu.cpp" line="578"/>
<source>Stop tracking</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistcontextmenu.cpp" line="581"/>
+ <location filename="modlistcontextmenu.cpp" line="583"/>
<source>Tracked state unknown</source>
<translation type="unfinished"></translation>
</message>
@@ -5313,68 +5313,68 @@ Please enter the name:</source>
<context>
<name>ModListViewActions</name>
<message>
- <location filename="modlistviewactions.cpp" line="100"/>
+ <location filename="modlistviewactions.cpp" line="99"/>
<source>Choose Mod</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="101"/>
+ <location filename="modlistviewactions.cpp" line="100"/>
<source>Mod Archive</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="121"/>
- <location filename="modlistviewactions.cpp" line="1297"/>
+ <location filename="modlistviewactions.cpp" line="120"/>
+ <location filename="modlistviewactions.cpp" line="1300"/>
<source>Create Mod...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="122"/>
+ <location filename="modlistviewactions.cpp" line="121"/>
<source>This will create an empty mod.
Please enter a name:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="132"/>
- <location filename="modlistviewactions.cpp" line="1308"/>
+ <location filename="modlistviewactions.cpp" line="131"/>
+ <location filename="modlistviewactions.cpp" line="1311"/>
<source>A mod with this name already exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="159"/>
+ <location filename="modlistviewactions.cpp" line="158"/>
<source>Create Separator...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="160"/>
+ <location filename="modlistviewactions.cpp" line="159"/>
<source>This will create a new separator.
Please enter a name:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="169"/>
+ <location filename="modlistviewactions.cpp" line="168"/>
<source>A separator with this name already exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="217"/>
+ <location filename="modlistviewactions.cpp" line="216"/>
<source>Really enable %1 mod(s)?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="217"/>
+ <location filename="modlistviewactions.cpp" line="216"/>
<source>Really disable %1 mod(s)?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="218"/>
+ <location filename="modlistviewactions.cpp" line="217"/>
<location filename="modlistviewactions.cpp" line="773"/>
<location filename="modlistviewactions.cpp" line="1022"/>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="241"/>
+ <location filename="modlistviewactions.cpp" line="240"/>
<location filename="modlistviewactions.cpp" line="300"/>
<source>You are not currently authenticated with Nexus. Please do so under Settings -&gt; Nexus.</source>
<translation type="unfinished"></translation>
@@ -5572,7 +5572,7 @@ This function will guess the versioning scheme under the assumption that the ins
</message>
<message>
<location filename="modlistviewactions.cpp" line="1056"/>
- <location filename="modlistviewactions.cpp" line="1367"/>
+ <location filename="modlistviewactions.cpp" line="1370"/>
<source>Are you sure?</source>
<translation type="unfinished"></translation>
</message>
@@ -5588,38 +5588,38 @@ This function will guess the versioning scheme under the assumption that the ins
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="1249"/>
+ <location filename="modlistviewactions.cpp" line="1252"/>
<source>Overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="1250"/>
+ <location filename="modlistviewactions.cpp" line="1253"/>
<source>This will replace the existing mod &quot;%1&quot;. Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="1254"/>
+ <location filename="modlistviewactions.cpp" line="1257"/>
<source>failed to remove mod &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="1260"/>
+ <location filename="modlistviewactions.cpp" line="1263"/>
<source>failed to rename &quot;%1&quot; to &quot;%2&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="1279"/>
+ <location filename="modlistviewactions.cpp" line="1282"/>
<source>Move successful.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="1298"/>
+ <location filename="modlistviewactions.cpp" line="1301"/>
<source>This will move all files from overwrite into a new, regular mod.
Please enter a name:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modlistviewactions.cpp" line="1368"/>
+ <location filename="modlistviewactions.cpp" line="1371"/>
<source>About to recursively delete:
</source>
<translation type="unfinished"></translation>
@@ -5684,32 +5684,32 @@ Please enter a name:</source>
<context>
<name>NexusInterface</name>
<message>
- <location filename="nexusinterface.cpp" line="353"/>
+ <location filename="nexusinterface.cpp" line="355"/>
<source>Please pick the mod ID for &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="nexusinterface.cpp" line="839"/>
+ <location filename="nexusinterface.cpp" line="846"/>
<source>You must authorize MO2 in Settings -&gt; Nexus to use the Nexus API.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="nexusinterface.cpp" line="848"/>
+ <location filename="nexusinterface.cpp" line="855"/>
<source>You&apos;ve exceeded the Nexus API rate limit and requests are now being throttled. Your next batch of requests will be available in approximately %1 minutes and %2 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="nexusinterface.cpp" line="929"/>
+ <location filename="nexusinterface.cpp" line="936"/>
<source>Aborting download: Either you clicked on a premium-only link and your account is not premium, or the download link was generated by a different account than the one stored in Mod Organizer.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="nexusinterface.cpp" line="1072"/>
+ <location filename="nexusinterface.cpp" line="1077"/>
<source>empty response</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="nexusinterface.cpp" line="1152"/>
+ <location filename="nexusinterface.cpp" line="1157"/>
<source>invalid response</source>
<translation type="unfinished"></translation>
</message>
@@ -6555,61 +6555,61 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="277"/>
+ <location filename="profile.cpp" line="276"/>
<source>failed to write mod list: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="288"/>
+ <location filename="profile.cpp" line="287"/>
<source>failed to update tweaked ini file, wrong settings may be used: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="310"/>
+ <location filename="profile.cpp" line="309"/>
<source>failed to create tweaked ini: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="336"/>
+ <location filename="profile.cpp" line="335"/>
<source>failed to open %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="428"/>
+ <location filename="profile.cpp" line="427"/>
<source>&quot;%1&quot; is missing or inaccessible</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="490"/>
- <location filename="profile.cpp" line="528"/>
- <location filename="profile.cpp" line="620"/>
- <location filename="profile.cpp" line="678"/>
- <location filename="profile.cpp" line="687"/>
+ <location filename="profile.cpp" line="489"/>
+ <location filename="profile.cpp" line="527"/>
+ <location filename="profile.cpp" line="619"/>
+ <location filename="profile.cpp" line="677"/>
+ <location filename="profile.cpp" line="686"/>
<source>invalid mod index: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="573"/>
+ <location filename="profile.cpp" line="572"/>
<source>A mod named &quot;overwrite&quot; was detected, disabled, and moved to the highest priority on the mod list. You may want to rename this mod and enable it again.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="864"/>
+ <location filename="profile.cpp" line="863"/>
<source>Delete profile-specific save games?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="865"/>
+ <location filename="profile.cpp" line="864"/>
<source>Do you want to delete the profile-specific save games? (If you select &quot;No&quot;, the save games will show up again if you re-enable profile-specific save games)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="900"/>
+ <location filename="profile.cpp" line="899"/>
<source>Missing profile-specific game INI files!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="901"/>
+ <location filename="profile.cpp" line="900"/>
<source>Some of your profile-specific game INI files were missing. They will now be copied from the vanilla game folder. You might want to double-check your settings.
Missing files:
@@ -6617,12 +6617,12 @@ Missing files:
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="920"/>
+ <location filename="profile.cpp" line="919"/>
<source>Delete profile-specific game INI files?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="profile.cpp" line="921"/>
+ <location filename="profile.cpp" line="920"/>
<source>Do you want to delete the profile-specific game INI files? (If you select &quot;No&quot;, the INI files will be used again if you re-enable profile-specific game INI files.)</source>
<translation type="unfinished"></translation>
</message>
@@ -6912,57 +6912,57 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="422"/>
+ <location filename="categories.cpp" line="428"/>
<source>Active</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="425"/>
+ <location filename="categories.cpp" line="431"/>
<source>Update available</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="428"/>
+ <location filename="categories.cpp" line="434"/>
<source>Has category</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="431"/>
+ <location filename="categories.cpp" line="437"/>
<source>Conflicted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="434"/>
+ <location filename="categories.cpp" line="440"/>
<source>Has hidden files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="437"/>
+ <location filename="categories.cpp" line="443"/>
<source>Endorsed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="440"/>
+ <location filename="categories.cpp" line="446"/>
<source>Has backup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="443"/>
+ <location filename="categories.cpp" line="449"/>
<source>Managed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="446"/>
+ <location filename="categories.cpp" line="452"/>
<source>Has valid game data</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="449"/>
+ <location filename="categories.cpp" line="455"/>
<source>Has Nexus ID</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="categories.cpp" line="452"/>
+ <location filename="categories.cpp" line="458"/>
<source>Tracked on Nexus</source>
<translation type="unfinished"></translation>
</message>
@@ -7045,7 +7045,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="createinstancedialogpages.cpp" line="37"/>
- <location filename="createinstancedialogpages.cpp" line="1234"/>
+ <location filename="createinstancedialogpages.cpp" line="1232"/>
<source>Instance type: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -7166,82 +7166,82 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1236"/>
+ <location filename="createinstancedialogpages.cpp" line="1234"/>
<source>Instance location: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1239"/>
+ <location filename="createinstancedialogpages.cpp" line="1237"/>
<source>Instance name: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1242"/>
+ <location filename="createinstancedialogpages.cpp" line="1240"/>
<source>Profile settings:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1244"/>
+ <location filename="createinstancedialogpages.cpp" line="1242"/>
<source> Local INIs: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1245"/>
+ <location filename="createinstancedialogpages.cpp" line="1243"/>
+ <location filename="createinstancedialogpages.cpp" line="1246"/>
<location filename="createinstancedialogpages.cpp" line="1248"/>
- <location filename="createinstancedialogpages.cpp" line="1250"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1245"/>
- <location filename="createinstancedialogpages.cpp" line="1248"/>
- <location filename="createinstancedialogpages.cpp" line="1251"/>
+ <location filename="createinstancedialogpages.cpp" line="1243"/>
+ <location filename="createinstancedialogpages.cpp" line="1246"/>
+ <location filename="createinstancedialogpages.cpp" line="1249"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1247"/>
+ <location filename="createinstancedialogpages.cpp" line="1245"/>
<source> Local Saves: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1249"/>
+ <location filename="createinstancedialogpages.cpp" line="1247"/>
<source> Automatic Archive Invalidation: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1256"/>
- <location filename="createinstancedialogpages.cpp" line="1260"/>
+ <location filename="createinstancedialogpages.cpp" line="1254"/>
+ <location filename="createinstancedialogpages.cpp" line="1258"/>
<source>Base directory: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1261"/>
+ <location filename="createinstancedialogpages.cpp" line="1259"/>
<source>Downloads</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1262"/>
+ <location filename="createinstancedialogpages.cpp" line="1260"/>
<source>Mods</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1263"/>
+ <location filename="createinstancedialogpages.cpp" line="1261"/>
<source>Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1264"/>
+ <location filename="createinstancedialogpages.cpp" line="1262"/>
<source>Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1273"/>
+ <location filename="createinstancedialogpages.cpp" line="1271"/>
<source>Game: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="createinstancedialogpages.cpp" line="1274"/>
+ <location filename="createinstancedialogpages.cpp" line="1272"/>
<source>Game location: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -7773,12 +7773,12 @@ This program is known to cause issues with Mod Organizer, such as freezing or bl
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="settingsdialoggeneral.cpp" line="171"/>
+ <location filename="settingsdialoggeneral.cpp" line="173"/>
<source>Confirm?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="settingsdialoggeneral.cpp" line="172"/>
+ <location filename="settingsdialoggeneral.cpp" line="174"/>
<source>This will reset all the choices you made to dialogs and make them all visible again. Continue?</source>
<translation type="unfinished"></translation>
</message>
diff --git a/src/profile.cpp b/src/profile.cpp
index 13ce41c7..d4299a7b 100644
--- a/src/profile.cpp
+++ b/src/profile.cpp
@@ -177,8 +177,7 @@ void Profile::findProfileSettings()
}
}
- if (setting("", "LocalSettings") ==
- QVariant()) {
+ if (setting("", "LocalSettings") == QVariant()) {
QString backupFile = getIniFileName() + "_";
if (m_Directory.exists(backupFile)) {
storeSetting("", "LocalSettings", true);
diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp
index 6ad6fdea..67c9dd5d 100644
--- a/src/settingsdialog.cpp
+++ b/src/settingsdialog.cpp
@@ -37,7 +37,8 @@ SettingsDialog::SettingsDialog(PluginContainer* pluginContainer, Settings& setti
{
ui->setupUi(this);
- m_tabs.push_back(std::unique_ptr<SettingsTab>(new GeneralSettingsTab(settings, m_pluginContainer, *this)));
+ m_tabs.push_back(std::unique_ptr<SettingsTab>(
+ new GeneralSettingsTab(settings, m_pluginContainer, *this)));
m_tabs.push_back(std::unique_ptr<SettingsTab>(new ThemeSettingsTab(settings, *this)));
m_tabs.push_back(
std::unique_ptr<SettingsTab>(new ModListSettingsTab(settings, *this)));
diff --git a/src/settingsdialoggeneral.cpp b/src/settingsdialoggeneral.cpp
index 95580723..4ce72110 100644
--- a/src/settingsdialoggeneral.cpp
+++ b/src/settingsdialoggeneral.cpp
@@ -8,8 +8,9 @@
using namespace MOBase;
-GeneralSettingsTab::GeneralSettingsTab(Settings& s, PluginContainer* pluginContainer, SettingsDialog& d)
- : SettingsTab(s, d), m_PluginContainer(pluginContainer)
+GeneralSettingsTab::GeneralSettingsTab(Settings& s, PluginContainer* pluginContainer,
+ SettingsDialog& d)
+ : SettingsTab(s, d), m_PluginContainer(pluginContainer)
{
// language
addLanguages();
diff --git a/src/settingsdialoggeneral.h b/src/settingsdialoggeneral.h
index ffbeb50c..aa11edbb 100644
--- a/src/settingsdialoggeneral.h
+++ b/src/settingsdialoggeneral.h
@@ -1,14 +1,15 @@
#ifndef SETTINGSDIALOGGENERAL_H
#define SETTINGSDIALOGGENERAL_H
+#include "plugincontainer.h"
#include "settings.h"
#include "settingsdialog.h"
-#include "plugincontainer.h"
class GeneralSettingsTab : public SettingsTab
{
public:
- GeneralSettingsTab(Settings& settings, PluginContainer *pluginContainer, SettingsDialog& dialog);
+ GeneralSettingsTab(Settings& settings, PluginContainer* pluginContainer,
+ SettingsDialog& dialog);
void update();
@@ -23,7 +24,6 @@ private:
private:
PluginContainer* m_PluginContainer;
-
};
#endif // SETTINGSDIALOGGENERAL_H