diff options
| author | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2023-09-18 21:44:45 -0500 |
|---|---|---|
| committer | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2023-09-21 17:35:05 -0500 |
| commit | f6bb73deb21228acf0e7f74500f50421143aa739 (patch) | |
| tree | 85e5f9460282555857d455ab71e0a27a026e6f61 | |
| parent | 4342fe3ce16e1e14fb44cf2676e3887002f67ec4 (diff) | |
Clang cleanup
| -rw-r--r-- | src/categories.cpp | 62 | ||||
| -rw-r--r-- | src/categories.h | 36 | ||||
| -rw-r--r-- | src/categoriestable.cpp | 15 | ||||
| -rw-r--r-- | src/categoriestable.h | 8 | ||||
| -rw-r--r-- | src/downloadmanager.cpp | 10 | ||||
| -rw-r--r-- | src/modinfo.cpp | 3 | ||||
| -rw-r--r-- | src/modinforegular.cpp | 2 | ||||
| -rw-r--r-- | src/modlistcontextmenu.cpp | 4 | ||||
| -rw-r--r-- | src/modlistviewactions.cpp | 18 | ||||
| -rw-r--r-- | src/nexusinterface.cpp | 320 | ||||
| -rw-r--r-- | src/nexusinterface.h | 26 | ||||
| -rw-r--r-- | src/organizer_en.ts | 260 | ||||
| -rw-r--r-- | src/profile.cpp | 3 | ||||
| -rw-r--r-- | src/settingsdialog.cpp | 3 | ||||
| -rw-r--r-- | src/settingsdialoggeneral.cpp | 5 | ||||
| -rw-r--r-- | src/settingsdialoggeneral.h | 6 |
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'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 -> 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 "%1". 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 "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1260"/> + <location filename="modlistviewactions.cpp" line="1263"/> <source>failed to rename "%1" to "%2"</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 "%1"</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 -> 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'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>"%1" 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 "overwrite" 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 "No", 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 "No", 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 |
