diff options
| author | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2023-09-19 02:37:24 -0500 |
|---|---|---|
| committer | Jeremy Rimpo <jeremy.rimpo@servermonkey.com> | 2023-09-21 17:35:08 -0500 |
| commit | c50ad588432a27612fe5be39b1520e2962d5eef7 (patch) | |
| tree | 676dd52d7022d9167eccc267ae9811367d8de666 /src | |
| parent | f6bb73deb21228acf0e7f74500f50421143aa739 (diff) | |
Add nexus category ID to mod info
- We will check the mod info first then fall back to the download file
- Add category field in the info dialog nexus tab
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 2 | ||||
| -rw-r--r-- | src/modinfo.h | 10 | ||||
| -rw-r--r-- | src/modinfobackup.h | 2 | ||||
| -rw-r--r-- | src/modinfodialog.ui | 25 | ||||
| -rw-r--r-- | src/modinfodialognexus.cpp | 16 | ||||
| -rw-r--r-- | src/modinfodialognexus.h | 1 | ||||
| -rw-r--r-- | src/modinfoforeign.h | 2 | ||||
| -rw-r--r-- | src/modinfooverwrite.h | 2 | ||||
| -rw-r--r-- | src/modinforegular.cpp | 23 | ||||
| -rw-r--r-- | src/modinforegular.h | 11 | ||||
| -rw-r--r-- | src/modinfoseparator.h | 2 | ||||
| -rw-r--r-- | src/modlistviewactions.cpp | 44 | ||||
| -rw-r--r-- | src/organizer_en.ts | 233 | ||||
| -rw-r--r-- | src/version.rc | 53 |
14 files changed, 255 insertions, 171 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 18a288c6..ac4e093d 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4476,6 +4476,8 @@ void MainWindow::nxmModInfoAvailable(QString gameName, int modID, QVariant userD mod->setNexusDescription(result["description"].toString()); + mod->setNexusCategory(result["category_id"].toInt()); + if ((mod->endorsedState() != EndorsedState::ENDORSED_NEVER) && (result.contains("endorsement"))) { QVariantMap endorsement = result["endorsement"].toMap(); diff --git a/src/modinfo.h b/src/modinfo.h index 9895d44c..0736aa20 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -887,6 +887,16 @@ public: // Nexus stuff * @brief Set the last time the mod was updated on Nexus. */ virtual void setNexusLastModified(QDateTime time) = 0; + + /** + * @return the assigned nexus category ID + */ + virtual int getNexusCategory() const = 0; + + /** + * @brief Assigns the given Nexus category ID + */ + virtual void setNexusCategory(int category) = 0; public: // Conflicts // retrieve the list of mods (as mod index) that are overwritten by this one. diff --git a/src/modinfobackup.h b/src/modinfobackup.h index 01abf184..0c3c29d7 100644 --- a/src/modinfobackup.h +++ b/src/modinfobackup.h @@ -38,6 +38,8 @@ public: virtual QDateTime getNexusLastModified() const override { return QDateTime(); } virtual void setNexusLastModified(QDateTime) override {} virtual QString getNexusDescription() const override { return QString(); } + virtual void setNexusCategory(int) override {} + virtual int getNexusCategory() const override { return 0; } virtual bool isBackup() const override { return true; } virtual void addInstalledFile(int, int) override {} diff --git a/src/modinfodialog.ui b/src/modinfodialog.ui index 269aebe3..53655aa5 100644 --- a/src/modinfodialog.ui +++ b/src/modinfodialog.ui @@ -966,7 +966,7 @@ text-align: left;</string> <number>0</number>
</property>
<item>
- <layout class="QHBoxLayout" name="horizontalLayout_6" stretch="0,0,0,0,0,0,1">
+ <layout class="QHBoxLayout" name="horizontalLayout_6" stretch="0,0,0,0,0,0,0,0,1">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
@@ -1027,6 +1027,29 @@ p, li { white-space: pre-wrap; } </widget>
</item>
<item>
+ <widget class="QLabel" name="categoryLabel">
+ <property name="text">
+ <string>Category</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="category">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="baseSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
diff --git a/src/modinfodialognexus.cpp b/src/modinfodialognexus.cpp index 56636145..485f138a 100644 --- a/src/modinfodialognexus.cpp +++ b/src/modinfodialognexus.cpp @@ -32,6 +32,9 @@ NexusTab::NexusTab(ModInfoDialogTabContext cx) connect(ui->version, &QLineEdit::editingFinished, [&] { onVersionChanged(); }); + connect(ui->category, &QLineEdit::editingFinished, [&] { + onCategoryChanged(); + }); connect(ui->refresh, &QPushButton::clicked, [&] { onRefreshBrowser(); @@ -75,6 +78,7 @@ void NexusTab::clear() ui->modID->clear(); ui->sourceGame->clear(); ui->version->clear(); + ui->category->clear(); ui->browser->setPage(new NexusTabWebpage(ui->browser)); ui->hasCustomURL->setChecked(false); ui->customURL->clear(); @@ -108,6 +112,8 @@ void NexusTab::update() ui->sourceGame->setCurrentIndex(ui->sourceGame->findData(gameName)); + ui->category->setText(QString("%1").arg(mod().getNexusCategory())); + auto* page = new NexusTabWebpage(ui->browser); ui->browser->setPage(page); @@ -360,6 +366,16 @@ void NexusTab::onVersionChanged() updateVersionColor(); } +void NexusTab::onCategoryChanged() +{ + if (m_loading) { + return; + } + + int category = ui->category->text().toInt(); + mod().setNexusCategory(category); +} + void NexusTab::onRefreshBrowser() { const auto modID = mod().nexusId(); diff --git a/src/modinfodialognexus.h b/src/modinfodialognexus.h index e9a8720f..e752018a 100644 --- a/src/modinfodialognexus.h +++ b/src/modinfodialognexus.h @@ -57,6 +57,7 @@ private: void onModIDChanged(); void onSourceGameChanged(); void onVersionChanged(); + void onCategoryChanged(); void onRefreshBrowser(); void onVisitNexus(); diff --git a/src/modinfoforeign.h b/src/modinfoforeign.h index 2c956fb7..dc66e1b0 100644 --- a/src/modinfoforeign.h +++ b/src/modinfoforeign.h @@ -60,6 +60,8 @@ public: virtual void setNexusFileStatus(int) override {} virtual QDateTime getLastNexusUpdate() const override { return QDateTime(); } virtual void setLastNexusUpdate(QDateTime) override {} + virtual int getNexusCategory() const override { return 0; } + virtual void setNexusCategory(int) override {} virtual QDateTime getLastNexusQuery() const override { return QDateTime(); } virtual void setLastNexusQuery(QDateTime) override {} virtual QDateTime getNexusLastModified() const override { return QDateTime(); } diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h index 02154902..45b5bbdd 100644 --- a/src/modinfooverwrite.h +++ b/src/modinfooverwrite.h @@ -68,6 +68,8 @@ public: virtual QDateTime getNexusLastModified() const override { return QDateTime(); } virtual void setNexusLastModified(QDateTime) override {} virtual QString getNexusDescription() const override { return QString(); } + virtual void setNexusCategory(int) override {} + virtual int getNexusCategory() const override { return 0; } virtual QStringList archives(bool checkOnDisk = false) override; virtual void addInstalledFile(int, int) override {} virtual std::set<std::pair<int, int>> installedFiles() const override { return {}; } diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index 9cb89307..e238075a 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -97,6 +97,7 @@ void ModInfoRegular::readMeta() m_InstallationFile = metaFile.value("installationFile", "").toString(); m_NexusDescription = metaFile.value("nexusDescription", "").toString(); m_NexusFileStatus = metaFile.value("nexusFileStatus", "1").toInt(); + m_NexusCategory = metaFile.value("nexusCategory", 0).toInt(); m_Repository = metaFile.value("repository", "Nexus").toString(); m_Converted = metaFile.value("converted", false).toBool(); m_Validated = metaFile.value("validated", false).toBool(); @@ -171,10 +172,11 @@ void ModInfoRegular::readMeta() m_NexusLastModified = QDateTime::fromString( metaFile.value("nexusLastModified", QDateTime::currentDateTimeUtc()).toString(), Qt::ISODate); - m_Color = metaFile.value("color", QColor()).value<QColor>(); - m_TrackedState = metaFile.value("tracked", false).toBool() - ? TrackedState::TRACKED_TRUE - : TrackedState::TRACKED_FALSE; + m_NexusCategory = metaFile.value("nexusCategory", 0).toInt(); + m_Color = metaFile.value("color", QColor()).value<QColor>(); + m_TrackedState = metaFile.value("tracked", false).toBool() + ? TrackedState::TRACKED_TRUE + : TrackedState::TRACKED_FALSE; if (metaFile.contains("endorsed")) { if (metaFile.value("endorsed").canConvert<int>()) { using ut = std::underlying_type_t<EndorsedState>; @@ -266,6 +268,7 @@ void ModInfoRegular::saveMeta() metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate)); metaFile.setValue("lastNexusUpdate", m_LastNexusUpdate.toString(Qt::ISODate)); metaFile.setValue("nexusLastModified", m_NexusLastModified.toString(Qt::ISODate)); + metaFile.setValue("nexusCategory", m_NexusCategory); metaFile.setValue("converted", m_Converted); metaFile.setValue("validated", m_Validated); metaFile.setValue("color", m_Color); @@ -833,6 +836,18 @@ void ModInfoRegular::setNexusLastModified(QDateTime time) emit modDetailsUpdated(true); } +int ModInfoRegular::getNexusCategory() const +{ + return m_NexusCategory; +} + +void ModInfoRegular::setNexusCategory(int category) +{ + m_NexusCategory = category; + m_MetaInfoChanged = true; + saveMeta(); +} + void ModInfoRegular::setCustomURL(QString const& url) { m_CustomURL = url; diff --git a/src/modinforegular.h b/src/modinforegular.h index 6c85d66c..a408d966 100644 --- a/src/modinforegular.h +++ b/src/modinforegular.h @@ -379,6 +379,16 @@ public: */ virtual void setNexusLastModified(QDateTime time) override; + /** + * @return the assigned nexus category ID + */ + virtual int getNexusCategory() const override; + + /** + * @brief Assigns the given Nexus category ID + */ + virtual void setNexusCategory(int category) override; + virtual QStringList archives(bool checkOnDisk = false) override; virtual void setColor(QColor color) override; @@ -457,6 +467,7 @@ private: QDateTime m_LastNexusQuery; QDateTime m_LastNexusUpdate; QDateTime m_NexusLastModified; + int m_NexusCategory; QColor m_Color; diff --git a/src/modinfoseparator.h b/src/modinfoseparator.h index c34dd92b..67bc3d56 100644 --- a/src/modinfoseparator.h +++ b/src/modinfoseparator.h @@ -45,6 +45,8 @@ public: virtual void setLastNexusQuery(QDateTime) override {} virtual QDateTime getNexusLastModified() const override { return QDateTime(); } virtual void setNexusLastModified(QDateTime) override {} + virtual int getNexusCategory() const override { return 0; } + virtual void setNexusCategory(int) override {} virtual QDateTime creationTime() const override { return QDateTime(); } virtual QString getNexusDescription() const override { return QString(); } virtual void addInstalledFile(int /*modId*/, int /*fileId*/) override {} diff --git a/src/modlistviewactions.cpp b/src/modlistviewactions.cpp index aa962c1e..a86c9067 100644 --- a/src/modlistviewactions.cpp +++ b/src/modlistviewactions.cpp @@ -265,18 +265,20 @@ 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); - if (download >= 0) { - int nexusCategory = m_core.downloadManager()->getCategoryID(download); - int newCategory = CategoryFactory::instance()->resolveNexusID(nexusCategory); - if (newCategory != 0) { - for (auto category : modInfo->categories()) { - modInfo->removeCategory(category); - } + int nexusCategory = modInfo->getNexusCategory(); + if (!nexusCategory) { + auto download = m_core.downloadManager()->getDownloadIndex(file); + if (download >= 0) { + int nexusCategory = m_core.downloadManager()->getCategoryID(download); + } + } + 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); } } @@ -1108,16 +1110,20 @@ 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()); - if (downloadIndex >= 0) { - auto downloadInfo = m_core.downloadManager()->getFileInfo(downloadIndex); - unsigned int categoryIndex = - CategoryFactory::instance()->resolveNexusID(downloadInfo->categoryID); - if (categoryIndex != 0) - modInfo->setPrimaryCategory( - CategoryFactory::instance()->getCategoryID(categoryIndex)); + int categoryID = modInfo->getNexusCategory(); + if (!categoryID) { + int downloadIndex = + m_core.downloadManager()->getDownloadIndex(modInfo->installationFile()); + if (downloadIndex >= 0) { + auto downloadInfo = m_core.downloadManager()->getFileInfo(downloadIndex); + categoryID = downloadInfo->categoryID; + } } + unsigned int categoryIndex = + CategoryFactory::instance()->resolveNexusID(categoryID); + if (categoryIndex != 0) + modInfo->setPrimaryCategory( + CategoryFactory::instance()->getCategoryID(categoryIndex)); } } diff --git a/src/organizer_en.ts b/src/organizer_en.ts index 71be4187..228b275a 100644 --- a/src/organizer_en.ts +++ b/src/organizer_en.ts @@ -4048,115 +4048,115 @@ You will have to visit the mod page on the %1 Nexus site to change your mind.</s <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3359"/> + <location filename="mainwindow.cpp" line="3361"/> <source>Thank you!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3360"/> + <location filename="mainwindow.cpp" line="3362"/> <source>Thank you for your endorsement!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3474"/> + <location filename="mainwindow.cpp" line="3476"/> <source>Mod ID %1 no longer seems to be available on Nexus.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3492"/> + <location filename="mainwindow.cpp" line="3494"/> <source>Error %1: Request to Nexus failed: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3509"/> - <location filename="mainwindow.cpp" line="3582"/> + <location filename="mainwindow.cpp" line="3511"/> + <location filename="mainwindow.cpp" line="3584"/> <source>failed to read %1: %2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3522"/> + <location filename="mainwindow.cpp" line="3524"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3523"/> + <location filename="mainwindow.cpp" line="3525"/> <source>failed to extract %1 (errorcode %2)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3557"/> + <location filename="mainwindow.cpp" line="3559"/> <source>Extract BSA</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3596"/> + <location filename="mainwindow.cpp" line="3598"/> <source>This archive contains invalid hashes. Some files may be broken.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3606"/> + <location filename="mainwindow.cpp" line="3608"/> <source>Extract...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3675"/> + <location filename="mainwindow.cpp" line="3677"/> <source>Remove '%1' from the toolbar</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3731"/> + <location filename="mainwindow.cpp" line="3733"/> <source>Backup of load order created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3742"/> + <location filename="mainwindow.cpp" line="3744"/> <source>Choose backup to restore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3759"/> + <location filename="mainwindow.cpp" line="3761"/> <source>No Backups</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3760"/> + <location filename="mainwindow.cpp" line="3762"/> <source>There are no backups to restore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3784"/> - <location filename="mainwindow.cpp" line="3808"/> + <location filename="mainwindow.cpp" line="3786"/> + <location filename="mainwindow.cpp" line="3810"/> <source>Restore failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3785"/> - <location filename="mainwindow.cpp" line="3809"/> + <location filename="mainwindow.cpp" line="3787"/> + <location filename="mainwindow.cpp" line="3811"/> <source>Failed to restore the backup. Errorcode: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3797"/> + <location filename="mainwindow.cpp" line="3799"/> <source>Backup of mod list created</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3877"/> + <location filename="mainwindow.cpp" line="3879"/> <source>A file with the same name has already been downloaded. What would you like to do?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3879"/> + <location filename="mainwindow.cpp" line="3881"/> <source>Overwrite</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3880"/> + <location filename="mainwindow.cpp" line="3882"/> <source>Rename new file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="mainwindow.cpp" line="3881"/> + <location filename="mainwindow.cpp" line="3883"/> <source>Ignore file</source> <translation type="unfinished"></translation> </message> @@ -4480,88 +4480,93 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1068"/> - <location filename="modinfodialog.ui" line="1074"/> + <location filename="modinfodialog.ui" line="1032"/> + <source>Category</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="modinfodialog.ui" line="1091"/> + <location filename="modinfodialog.ui" line="1097"/> <source>Refresh</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1071"/> + <location filename="modinfodialog.ui" line="1094"/> <source>Refresh all information from Nexus.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1085"/> - <location filename="modinfodialog.ui" line="1210"/> + <location filename="modinfodialog.ui" line="1108"/> + <location filename="modinfodialog.ui" line="1233"/> <source>Open in Browser</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1096"/> + <location filename="modinfodialog.ui" line="1119"/> <source>Endorse</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1107"/> + <location filename="modinfodialog.ui" line="1130"/> <source>Track</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1174"/> + <location filename="modinfodialog.ui" line="1197"/> <source>about:blank</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1200"/> + <location filename="modinfodialog.ui" line="1223"/> <source>Use Custom URL</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1221"/> + <location filename="modinfodialog.ui" line="1244"/> <source>Notes</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1229"/> - <location filename="modinfodialog.ui" line="1232"/> - <location filename="modinfodialog.ui" line="1235"/> + <location filename="modinfodialog.ui" line="1252"/> + <location filename="modinfodialog.ui" line="1255"/> + <location filename="modinfodialog.ui" line="1258"/> <source>Enter comments about the mod here. These are displayed in the notes column of the mod list.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1242"/> + <location filename="modinfodialog.ui" line="1265"/> <source>Set Color</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1249"/> + <location filename="modinfodialog.ui" line="1272"/> <source>Reset Color</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1258"/> - <location filename="modinfodialog.ui" line="1261"/> - <location filename="modinfodialog.ui" line="1267"/> + <location filename="modinfodialog.ui" line="1281"/> + <location filename="modinfodialog.ui" line="1284"/> + <location filename="modinfodialog.ui" line="1290"/> <source>Enter notes about the mod here. These can be viewed in the mod list by hovering over the notes column or the flags column.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1275"/> + <location filename="modinfodialog.ui" line="1298"/> <source>Filetree</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1289"/> + <location filename="modinfodialog.ui" line="1312"/> <source>Open Mod in Explorer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1314"/> + <location filename="modinfodialog.ui" line="1337"/> <source>A directory view of this mod</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1317"/> + <location filename="modinfodialog.ui" line="1340"/> <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -4571,17 +4576,17 @@ p, li { white-space: pre-wrap; } <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1353"/> + <location filename="modinfodialog.ui" line="1376"/> <source>Previous</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1363"/> + <location filename="modinfodialog.ui" line="1386"/> <source>Next</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialog.ui" line="1386"/> + <location filename="modinfodialog.ui" line="1409"/> <source>Close</source> <translation type="unfinished"></translation> </message> @@ -4620,12 +4625,12 @@ p, li { white-space: pre-wrap; } <context> <name>ModInfoRegular</name> <message> - <location filename="modinforegular.cpp" line="727"/> + <location filename="modinforegular.cpp" line="730"/> <source>%1 contains no esp/esm/esl and no asset (textures, meshes, interface, ...) directory</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinforegular.cpp" line="733"/> + <location filename="modinforegular.cpp" line="736"/> <source>Categories: <br></source> <translation type="unfinished"></translation> </message> @@ -5324,7 +5329,7 @@ Please enter the name:</source> </message> <message> <location filename="modlistviewactions.cpp" line="120"/> - <location filename="modlistviewactions.cpp" line="1300"/> + <location filename="modlistviewactions.cpp" line="1306"/> <source>Create Mod...</source> <translation type="unfinished"></translation> </message> @@ -5336,7 +5341,7 @@ Please enter a name:</source> </message> <message> <location filename="modlistviewactions.cpp" line="131"/> - <location filename="modlistviewactions.cpp" line="1311"/> + <location filename="modlistviewactions.cpp" line="1317"/> <source>A mod with this name already exists</source> <translation type="unfinished"></translation> </message> @@ -5368,258 +5373,258 @@ Please enter a name:</source> </message> <message> <location filename="modlistviewactions.cpp" line="217"/> - <location filename="modlistviewactions.cpp" line="773"/> - <location filename="modlistviewactions.cpp" line="1022"/> + <location filename="modlistviewactions.cpp" line="775"/> + <location filename="modlistviewactions.cpp" line="1024"/> <source>Confirm</source> <translation type="unfinished"></translation> </message> <message> <location filename="modlistviewactions.cpp" line="240"/> - <location filename="modlistviewactions.cpp" line="300"/> + <location filename="modlistviewactions.cpp" line="302"/> <source>You are not currently authenticated with Nexus. Please do so under Settings -> Nexus.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="319"/> + <location filename="modlistviewactions.cpp" line="321"/> <source>Export to csv</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="323"/> + <location filename="modlistviewactions.cpp" line="325"/> <source>CSV (Comma Separated Values) is a format that can be imported in programs like Excel to create a spreadsheet. You can also use online editors and converters instead.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="328"/> + <location filename="modlistviewactions.cpp" line="330"/> <source>Select what mods you want export:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="329"/> + <location filename="modlistviewactions.cpp" line="331"/> <source>All installed mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="331"/> + <location filename="modlistviewactions.cpp" line="333"/> <source>Only active (checked) mods from your current profile</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="333"/> + <location filename="modlistviewactions.cpp" line="335"/> <source>All currently visible mods in the mod list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="350"/> + <location filename="modlistviewactions.cpp" line="352"/> <source>Choose what Columns to export:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="353"/> + <location filename="modlistviewactions.cpp" line="355"/> <source>Mod_Priority</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="355"/> + <location filename="modlistviewactions.cpp" line="357"/> <source>Mod_Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="357"/> + <location filename="modlistviewactions.cpp" line="359"/> <source>Notes_column</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="358"/> + <location filename="modlistviewactions.cpp" line="360"/> <source>Mod_Status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="360"/> + <location filename="modlistviewactions.cpp" line="362"/> <source>Primary_Category</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="361"/> + <location filename="modlistviewactions.cpp" line="363"/> <source>Nexus_ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="362"/> + <location filename="modlistviewactions.cpp" line="364"/> <source>Mod_Nexus_URL</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="363"/> + <location filename="modlistviewactions.cpp" line="365"/> <source>Mod_Version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="364"/> + <location filename="modlistviewactions.cpp" line="366"/> <source>Install_Date</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="365"/> + <location filename="modlistviewactions.cpp" line="367"/> <source>Download_File_Name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="492"/> + <location filename="modlistviewactions.cpp" line="494"/> <source>export failed: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="546"/> + <location filename="modlistviewactions.cpp" line="548"/> <source>Failed to display overwrite dialog: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="607"/> + <location filename="modlistviewactions.cpp" line="609"/> <source>Set Priority</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="608"/> + <location filename="modlistviewactions.cpp" line="610"/> <source>Set the priority of the selected mods</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="738"/> + <location filename="modlistviewactions.cpp" line="740"/> <source>failed to rename mod: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="774"/> + <location filename="modlistviewactions.cpp" line="776"/> <source>Remove the following mods?<br><ul>%1</ul></source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="791"/> + <location filename="modlistviewactions.cpp" line="793"/> <source>failed to remove mod: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="819"/> + <location filename="modlistviewactions.cpp" line="821"/> <source>Continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="820"/> + <location filename="modlistviewactions.cpp" line="822"/> <source>The versioning scheme decides which version is considered newer than another. This function will guess the versioning scheme under the assumption that the installed version is outdated.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="846"/> + <location filename="modlistviewactions.cpp" line="848"/> <source>Sorry</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="847"/> + <location filename="modlistviewactions.cpp" line="849"/> <source>I don't know a versioning scheme where %1 is newer than %2.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="868"/> + <location filename="modlistviewactions.cpp" line="870"/> <source>Opening Nexus Links</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="869"/> + <location filename="modlistviewactions.cpp" line="871"/> <source>You are trying to open %1 links to Nexus Mods. Are you sure you want to do this?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="892"/> - <location filename="modlistviewactions.cpp" line="914"/> + <location filename="modlistviewactions.cpp" line="894"/> + <location filename="modlistviewactions.cpp" line="916"/> <source>Opening Web Pages</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="893"/> - <location filename="modlistviewactions.cpp" line="915"/> + <location filename="modlistviewactions.cpp" line="895"/> + <location filename="modlistviewactions.cpp" line="917"/> <source>You are trying to open %1 Web Pages. Are you sure you want to do this?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="965"/> - <location filename="modlistviewactions.cpp" line="970"/> - <location filename="modlistviewactions.cpp" line="981"/> + <location filename="modlistviewactions.cpp" line="967"/> + <location filename="modlistviewactions.cpp" line="972"/> + <location filename="modlistviewactions.cpp" line="983"/> <source>Failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="966"/> + <location filename="modlistviewactions.cpp" line="968"/> <source>Installation file no longer exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="971"/> + <location filename="modlistviewactions.cpp" line="973"/> <source>Mods installed with old versions of MO can't be reinstalled in this way.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="981"/> + <location filename="modlistviewactions.cpp" line="983"/> <source>Failed to create backup.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1023"/> + <location filename="modlistviewactions.cpp" line="1025"/> <source>Restore all hidden files in the following mods?<br><ul>%1</ul></source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1056"/> - <location filename="modlistviewactions.cpp" line="1370"/> + <location filename="modlistviewactions.cpp" line="1058"/> + <location filename="modlistviewactions.cpp" line="1376"/> <source>Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1057"/> + <location filename="modlistviewactions.cpp" line="1059"/> <source>About to restore all hidden files in: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1090"/> + <location filename="modlistviewactions.cpp" line="1092"/> <source>Endorsing multiple mods will take a while. Please wait...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1252"/> + <location filename="modlistviewactions.cpp" line="1258"/> <source>Overwrite?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1253"/> + <location filename="modlistviewactions.cpp" line="1259"/> <source>This will replace the existing mod "%1". Continue?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1257"/> + <location filename="modlistviewactions.cpp" line="1263"/> <source>failed to remove mod "%1"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1263"/> + <location filename="modlistviewactions.cpp" line="1269"/> <source>failed to rename "%1" to "%2"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1282"/> + <location filename="modlistviewactions.cpp" line="1288"/> <source>Move successful.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modlistviewactions.cpp" line="1301"/> + <location filename="modlistviewactions.cpp" line="1307"/> <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="1371"/> + <location filename="modlistviewactions.cpp" line="1377"/> <source>About to recursively delete: </source> <translation type="unfinished"></translation> @@ -5760,27 +5765,27 @@ Please enter a name:</source> <context> <name>NexusTab</name> <message> - <location filename="modinfodialognexus.cpp" line="150"/> + <location filename="modinfodialognexus.cpp" line="156"/> <source>Current Version: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialognexus.cpp" line="153"/> + <location filename="modinfodialognexus.cpp" line="159"/> <source>No update available</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialognexus.cpp" line="185"/> + <location filename="modinfodialognexus.cpp" line="191"/> <source>Tracked</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialognexus.cpp" line="188"/> + <location filename="modinfodialognexus.cpp" line="194"/> <source>Untracked</source> <translation type="unfinished"></translation> </message> <message> - <location filename="modinfodialognexus.cpp" line="301"/> + <location filename="modinfodialognexus.cpp" line="307"/> <source> <div style="text-align: center;"> <p>This mod does not have a valid Nexus ID. You can add a custom web diff --git a/src/version.rc b/src/version.rc index 0db83d44..aa92aee1 100644 --- a/src/version.rc +++ b/src/version.rc @@ -1,37 +1,24 @@ #include "Winver.h" -// If VS_FF_PRERELEASE is not set, MO labels the build as a release and uses VER_FILEVERSION to determine version number. -// Otherwise, if letters are used in VER_FILEVERSION_STR, uses the full MOBase::VersionInfo parser -// Otherwise, uses the numbers from VER_FILEVERSION and sets the release type as pre-alpha -#define VER_FILEVERSION 2,5,0 -#define VER_FILEVERSION_STR "2.5.0-beta7\0" +// If VS_FF_PRERELEASE is not set, MO labels the build as a release and uses +// VER_FILEVERSION to determine version number. Otherwise, if letters are used in +// VER_FILEVERSION_STR, uses the full MOBase::VersionInfo parser Otherwise, uses the +// numbers from VER_FILEVERSION and sets the release type as pre-alpha +#define VER_FILEVERSION 2, 5, 0 +#define VER_FILEVERSION_STR "2.5.0-beta9\0" -VS_VERSION_INFO VERSIONINFO -FILEVERSION VER_FILEVERSION -PRODUCTVERSION VER_FILEVERSION -FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -FILEFLAGS VS_FF_PRERELEASE -FILEOS VOS__WINDOWS32 -FILETYPE VFT_APP -FILESUBTYPE (0) -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904B0" - BEGIN - VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "CompanyName", "Mod Organizer 2 Team\0" - VALUE "FileDescription", "Mod Organizer 2 GUI\0" - VALUE "OriginalFilename", "ModOrganizer.exe\0" - VALUE "InternalName", "ModOrganizer2\0" - VALUE "LegalCopyright", "Copyright 2011-2016 Sebastian Herbord\r\nCopyright 2016-2023 Mod Organizer 2 contributors\0" - VALUE "ProductName", "Mod Organizer 2\0" - VALUE "ProductVersion", VER_FILEVERSION_STR - END - END +VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_FILEVERSION + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK FILEFLAGS VS_FF_PRERELEASE FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP FILESUBTYPE(0) BEGIN BLOCK + "StringFileInfo" BEGIN BLOCK "040904B0" BEGIN VALUE "FileVersion", + VER_FILEVERSION_STR VALUE "CompanyName", + "Mod Organizer 2 Team\0" VALUE "FileDescription", + "Mod Organizer 2 GUI\0" VALUE "OriginalFilename", + "ModOrganizer.exe\0" VALUE "InternalName", "ModOrganizer2\0" VALUE "LegalCopyright", + "Copyright 2011-2016 Sebastian Herbord\r\nCopyright 2016-2023 Mod Organizer 2 " + "contributors\0" VALUE "ProductName", + "Mod Organizer 2\0" VALUE "ProductVersion", + VER_FILEVERSION_STR END END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0409, 1200 - END -END + BLOCK "VarFileInfo" BEGIN VALUE "Translation", + 0x0409, 1200 END END |
