summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-09-20 12:29:56 +0200
committerMikaël Capelle <capelle.mikael@gmail.com>2020-09-20 12:29:56 +0200
commit4ed297750f29ba61802e902a5269fa56a7107643 (patch)
treef444df3e7906335c6e9ac41014cca75e1457a34d /src
parent4d9456dcf98a76a1af7f1287db67b4ba41c02b6b (diff)
Add getters for most meta-information in mod.
Diffstat (limited to 'src')
-rw-r--r--src/installationmanager.cpp2
-rw-r--r--src/mainwindow.cpp72
-rw-r--r--src/modinfo.cpp28
-rw-r--r--src/modinfo.h74
-rw-r--r--src/modinfodialogcategories.cpp2
-rw-r--r--src/modinfodialognexus.cpp36
-rw-r--r--src/modinfodialogtab.cpp6
-rw-r--r--src/modinfoforeign.h10
-rw-r--r--src/modinfooverwrite.h10
-rw-r--r--src/modinforegular.cpp75
-rw-r--r--src/modinforegular.h45
-rw-r--r--src/modinfoseparator.h6
-rw-r--r--src/modinfowithconflictinfo.cpp1
-rw-r--r--src/modlist.cpp40
-rw-r--r--src/modlistsortproxy.cpp30
15 files changed, 195 insertions, 242 deletions
diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp
index 608a8c91..e089d560 100644
--- a/src/installationmanager.cpp
+++ b/src/installationmanager.cpp
@@ -410,7 +410,7 @@ IPluginInstaller::EInstallResult InstallationManager::testOverwrite(GuessedValue
if (idx != UINT_MAX) {
auto modInfo = ModInfo::getByIndex(idx);
// mark the old install file as uninstalled
- emit modReplaced(modInfo->getInstallationFile());
+ emit modReplaced(modInfo->installationFile());
}
// save original settings like categories. Because it makes sense
QString metaFilename = targetDirectory + "/meta.ini";
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index b3682297..1bb47739 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -2577,7 +2577,7 @@ void MainWindow::modInstalled(const QString &modName)
// force an update to happen
std::multimap<QString, int> IDs;
ModInfo::Ptr info = ModInfo::getByIndex(ModInfo::getIndex(modName));
- IDs.insert(std::make_pair<QString, int>(info->getGameName(), info->getNexusID()));
+ IDs.insert(std::make_pair<QString, int>(info->gameName(), info->modId()));
modUpdateCheck(IDs);
}
@@ -2790,7 +2790,7 @@ void MainWindow::modRemoved(const QString &fileName)
void MainWindow::reinstallMod_clicked()
{
ModInfo::Ptr modInfo = ModInfo::getByIndex(m_ContextRow);
- QString installationFile = modInfo->getInstallationFile();
+ QString installationFile = modInfo->installationFile();
if (installationFile.length() != 0) {
QString fullInstallationFile;
QFileInfo fileInfo(installationFile);
@@ -3254,8 +3254,8 @@ void MainWindow::visitOnNexus_clicked()
for (QModelIndex idx : selection->selectedRows()) {
row_idx = idx.data(Qt::UserRole + 1).toInt();
info = ModInfo::getByIndex(row_idx);
- int modID = info->getNexusID();
- gameName = info->getGameName();
+ int modID = info->modId();
+ gameName = info->gameName();
if (modID > 0) {
linkClicked(NexusInterface::instance(&m_PluginContainer)->getModURL(modID, gameName));
} else {
@@ -3319,8 +3319,8 @@ void MainWindow::visitNexusOrWebPage(const QModelIndex& idx)
return;
}
- int modID = info->getNexusID();
- QString gameName = info->getGameName();
+ int modID = info->modId();
+ QString gameName = info->gameName();
const auto url = info->parseCustomURL();
if (modID > 0) {
@@ -3665,7 +3665,7 @@ void MainWindow::setColor_clicked()
QColorDialog dialog(this);
dialog.setOption(QColorDialog::ShowAlphaChannel);
- QColor currentColor = modInfo->getColor();
+ QColor currentColor = modInfo->color();
if (currentColor.isValid()) {
dialog.setCurrentColor(currentColor);
}
@@ -4240,8 +4240,8 @@ void MainWindow::changeVersioningScheme() {
static VersionInfo::VersionScheme schemes[] = { VersionInfo::SCHEME_REGULAR, VersionInfo::SCHEME_DECIMALMARK, VersionInfo::SCHEME_NUMBERSANDLETTERS };
for (int i = 0; i < sizeof(schemes) / sizeof(VersionInfo::VersionScheme) && !success; ++i) {
- VersionInfo verOld(info->getVersion().canonicalString(), schemes[i]);
- VersionInfo verNew(info->getNewestVersion().canonicalString(), schemes[i]);
+ VersionInfo verOld(info->version().canonicalString(), schemes[i]);
+ VersionInfo verNew(info->newestVersion().canonicalString(), schemes[i]);
if (verOld < verNew) {
info->setVersion(verOld);
info->setNewestVersion(verNew);
@@ -4250,7 +4250,7 @@ void MainWindow::changeVersioningScheme() {
}
if (!success) {
QMessageBox::information(this, tr("Sorry"),
- tr("I don't know a versioning scheme where %1 is newer than %2.").arg(info->getNewestVersion().canonicalString()).arg(info->getVersion().canonicalString()),
+ tr("I don't know a versioning scheme where %1 is newer than %2.").arg(info->newestVersion().canonicalString()).arg(info->version().canonicalString()),
QMessageBox::Ok);
}
}
@@ -4279,11 +4279,11 @@ void MainWindow::checkModUpdates_clicked()
if (selection->hasSelection() && selection->selectedRows().count() > 1) {
for (QModelIndex idx : selection->selectedRows()) {
ModInfo::Ptr info = ModInfo::getByIndex(idx.data(Qt::UserRole + 1).toInt());
- IDs.insert(std::make_pair<QString, int>(info->getGameName(), info->getNexusID()));
+ IDs.insert(std::make_pair<QString, int>(info->gameName(), info->modId()));
}
} else {
ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow);
- IDs.insert(std::make_pair<QString, int>(info->getGameName(), info->getNexusID()));
+ IDs.insert(std::make_pair<QString, int>(info->gameName(), info->modId()));
}
modUpdateCheck(IDs);
}
@@ -4320,7 +4320,7 @@ void MainWindow::addPrimaryCategoryCandidates(QMenu *primaryCategoryMenu,
info->setPrimaryCategory(categoryID);
}
});
- categoryBox->setChecked(categoryID == info->getPrimaryCategory());
+ categoryBox->setChecked(categoryID == info->primaryCategory());
action->setDefaultWidget(categoryBox);
} catch (const std::exception &e) {
log::error("failed to create category checkbox: {}", e.what());
@@ -4568,17 +4568,17 @@ void MainWindow::exportModListCSV()
if (mod_Note->isChecked())
builder.setRowField("#Note", QString("%1").arg(info->comments().remove(',')));
if (primary_Category->isChecked())
- builder.setRowField("#Primary_Category", (m_CategoryFactory.categoryExists(info->getPrimaryCategory())) ? m_CategoryFactory.getCategoryNameByID(info->getPrimaryCategory()) : "");
+ builder.setRowField("#Primary_Category", (m_CategoryFactory.categoryExists(info->primaryCategory())) ? m_CategoryFactory.getCategoryNameByID(info->primaryCategory()) : "");
if (nexus_ID->isChecked())
- builder.setRowField("#Nexus_ID", info->getNexusID());
+ builder.setRowField("#Nexus_ID", info->modId());
if (mod_Nexus_URL->isChecked())
- builder.setRowField("#Mod_Nexus_URL",(info->getNexusID()>0)? NexusInterface::instance(&m_PluginContainer)->getModURL(info->getNexusID(), info->getGameName()) : "");
+ builder.setRowField("#Mod_Nexus_URL",(info->modId()>0)? NexusInterface::instance(&m_PluginContainer)->getModURL(info->modId(), info->gameName()) : "");
if (mod_Version->isChecked())
- builder.setRowField("#Mod_Version", info->getVersion().canonicalString());
+ builder.setRowField("#Mod_Version", info->version().canonicalString());
if (install_Date->isChecked())
builder.setRowField("#Install_Date", info->creationTime().toString("yyyy/MM/dd HH:mm:ss"));
if (download_File_Name->isChecked())
- builder.setRowField("#Download_File_Name", info->getInstallationFile());
+ builder.setRowField("#Download_File_Name", info->installationFile());
builder.writeRow();
}
@@ -4726,7 +4726,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos)
menu.addAction(tr("Mark as converted/working"), this, SLOT(markConverted_clicked()));
}
menu.addSeparator();
- if (info->getNexusID() > 0) {
+ if (info->modId() > 0) {
menu.addAction(tr("Visit on Nexus"), this, SLOT(visitOnNexus_clicked()));
}
@@ -4755,7 +4755,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos)
addModSendToContextMenu(&menu);
menu.addAction(tr("Select Color..."), this, SLOT(setColor_clicked()));
- if(info->getColor().isValid())
+ if(info->color().isValid())
menu.addAction(tr("Reset Color"), this, SLOT(resetColor_clicked()));
menu.addSeparator();
@@ -4779,7 +4779,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos)
menu.addAction(tr("Change versioning scheme"), this, SLOT(changeVersioningScheme()));
}
- if (info->getNexusID() > 0)
+ if (info->modId() > 0)
menu.addAction(tr("Force-check updates"), this, SLOT(checkModUpdates_clicked()));
if (info->updateIgnored()) {
menu.addAction(tr("Un-ignore update"), this, SLOT(unignoreUpdate()));
@@ -4811,22 +4811,22 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos)
if (contextColumn == ModList::COL_NOTES) {
menu.addAction(tr("Select Color..."), this, SLOT(setColor_clicked()));
- if (info->getColor().isValid())
+ if (info->color().isValid())
menu.addAction(tr("Reset Color"), this, SLOT(resetColor_clicked()));
menu.addSeparator();
}
- if (info->getNexusID() > 0 && Settings::instance().nexus().endorsementIntegration()) {
+ if (info->modId() > 0 && Settings::instance().nexus().endorsementIntegration()) {
switch (info->endorsedState()) {
- case ModInfo::ENDORSED_TRUE: {
+ case EndorsedState::ENDORSED_TRUE: {
menu.addAction(tr("Un-Endorse"), this, SLOT(unendorse_clicked()));
} break;
- case ModInfo::ENDORSED_FALSE: {
+ case EndorsedState::ENDORSED_FALSE: {
menu.addAction(tr("Endorse"), this, SLOT(endorse_clicked()));
menu.addAction(tr("Won't endorse"), this, SLOT(dontendorse_clicked()));
} break;
- case ModInfo::ENDORSED_NEVER: {
+ case EndorsedState::ENDORSED_NEVER: {
menu.addAction(tr("Endorse"), this, SLOT(endorse_clicked()));
} break;
default: {
@@ -4837,12 +4837,12 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos)
}
}
- if (info->getNexusID() > 0) {
+ if (info->modId() > 0) {
switch (info->trackedState()) {
- case ModInfo::TRACKED_FALSE: {
+ case TrackedState::TRACKED_FALSE: {
menu.addAction(tr("Start tracking"), this, SLOT(track_clicked()));
} break;
- case ModInfo::TRACKED_TRUE: {
+ case TrackedState::TRACKED_TRUE: {
menu.addAction(tr("Stop tracking"), this, SLOT(untrack_clicked()));
} break;
default: {
@@ -4866,7 +4866,7 @@ void MainWindow::on_modList_customContextMenuRequested(const QPoint &pos)
menu.addSeparator();
- if (info->getNexusID() > 0) {
+ if (info->modId() > 0) {
menu.addAction(tr("Visit on Nexus"), this, SLOT(visitOnNexus_clicked()));
}
@@ -5548,7 +5548,7 @@ void MainWindow::finishUpdateInfo()
std::set<std::pair<QString, int>> organizedGames;
for (auto mod : finalMods) {
if (mod->canBeUpdated()) {
- organizedGames.insert(std::make_pair<QString, int>(mod->getGameName().toLower(), mod->getNexusID()));
+ organizedGames.insert(std::make_pair<QString, int>(mod->gameName().toLower(), mod->modId()));
}
}
@@ -5580,7 +5580,7 @@ void MainWindow::nxmUpdatesAvailable(QString gameName, int modID, QVariant userD
for (auto mod : modsList) {
bool foundUpdate = false;
bool oldFile = false;
- QString installedFile = mod->getInstallationFile();
+ QString installedFile = mod->installationFile();
if (!installedFile.isEmpty()) {
QVariantMap foundFile;
for (auto file : files) {
@@ -5672,7 +5672,7 @@ void MainWindow::nxmModInfoAvailable(QString gameName, int modID, QVariant userD
mod->setLastNexusUpdate(QDateTime::currentDateTimeUtc());
}
mod->setNexusDescription(result["description"].toString());
- if ((mod->endorsedState() != ModInfo::ENDORSED_NEVER) && (result.contains("endorsement"))) {
+ if ((mod->endorsedState() != EndorsedState::ENDORSED_NEVER) && (result.contains("endorsement"))) {
QVariantMap endorsement = result["endorsement"].toMap();
QString endorsementStatus = endorsement["endorse_status"].toString();
if (endorsementStatus.compare("Endorsed") == 00)
@@ -5742,15 +5742,15 @@ void MainWindow::nxmTrackedModsAvailable(QVariant userData, QVariant resultData,
for (unsigned int i = 0; i < ModInfo::getNumMods(); i++) {
auto modInfo = ModInfo::getByIndex(i);
- if (modInfo->getNexusID() <= 0)
+ if (modInfo->modId() <= 0)
continue;
bool found = false;
auto resultsList = resultData.toList();
for (auto item : resultsList) {
auto results = item.toMap();
- if ((gameNames[results["domain_name"].toString()].compare(modInfo->getGameName(), Qt::CaseInsensitive) == 0) &&
- (results["mod_id"].toInt() == modInfo->getNexusID())) {
+ if ((gameNames[results["domain_name"].toString()].compare(modInfo->gameName(), Qt::CaseInsensitive) == 0) &&
+ (results["mod_id"].toInt() == modInfo->modId())) {
found = true;
break;
}
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index aef150df..aed17d2a 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -180,11 +180,11 @@ bool ModInfo::removeMod(unsigned int index)
ModInfo::Ptr modInfo = s_Collection[index];
s_ModsByName.erase(s_ModsByName.find(modInfo->name()));
- auto iter = s_ModsByModID.find(std::pair<QString, int>(modInfo->getGameName(), modInfo->getNexusID()));
+ auto iter = s_ModsByModID.find(std::pair<QString, int>(modInfo->gameName(), modInfo->modId()));
if (iter != s_ModsByModID.end()) {
std::vector<unsigned int> indices = iter->second;
indices.erase(std::remove(indices.begin(), indices.end(), index), indices.end());
- s_ModsByModID[std::pair<QString, int>(modInfo->getGameName(), modInfo->getNexusID())] = indices;
+ s_ModsByModID[std::pair<QString, int>(modInfo->gameName(), modInfo->modId())] = indices;
}
// physically remove the mod directory
@@ -281,8 +281,8 @@ void ModInfo::updateIndices()
for (unsigned int i = 0; i < s_Collection.size(); ++i) {
QString modName = s_Collection[i]->internalName();
- QString game = s_Collection[i]->getGameName();
- int modID = s_Collection[i]->getNexusID();
+ QString game = s_Collection[i]->gameName();
+ int modID = s_Collection[i]->modId();
s_ModsByName[modName] = i;
s_ModsByModID[std::pair<QString, int>(game, modID)].push_back(i);
}
@@ -308,7 +308,7 @@ bool ModInfo::checkAllForUpdate(PluginContainer *pluginContainer, QObject *recei
earliest = mod->getLastNexusUpdate();
if (mod->getLastNexusUpdate() > latest)
latest = mod->getLastNexusUpdate();
- games.insert(mod->getGameName().toLower());
+ games.insert(mod->gameName().toLower());
}
}
@@ -334,7 +334,7 @@ bool ModInfo::checkAllForUpdate(PluginContainer *pluginContainer, QObject *recei
std::set<std::pair<QString, int>> organizedGames;
for (auto mod : s_Collection) {
if (mod->canBeUpdated() && mod->getLastNexusUpdate() < QDateTime::currentDateTimeUtc().addMonths(-1)) {
- organizedGames.insert(std::make_pair<QString, int>(mod->getGameName().toLower(), mod->getNexusID()));
+ organizedGames.insert(std::make_pair<QString, int>(mod->gameName().toLower(), mod->modId()));
}
}
@@ -372,7 +372,7 @@ std::set<QSharedPointer<ModInfo>> ModInfo::filteredMods(QString gameName, QVaria
for (QVariant result : updateData) {
QVariantMap update = result.toMap();
std::copy_if(s_Collection.begin(), s_Collection.end(), std::inserter(finalMods, finalMods.end()), [=](QSharedPointer<ModInfo> info) -> bool {
- if (info->getNexusID() == update["mod_id"].toInt() && info->getGameName().compare(gameName, Qt::CaseInsensitive) == 0)
+ if (info->modId() == update["mod_id"].toInt() && info->gameName().compare(gameName, Qt::CaseInsensitive) == 0)
if (info->getLastNexusUpdate().addSecs(-3600) < QDateTime::fromSecsSinceEpoch(update["latest_file_update"].toInt(), Qt::UTC))
return true;
return false;
@@ -381,13 +381,13 @@ std::set<QSharedPointer<ModInfo>> ModInfo::filteredMods(QString gameName, QVaria
if (addOldMods)
for (auto mod : s_Collection)
- if (mod->getLastNexusUpdate() < QDateTime::currentDateTimeUtc().addMonths(-1) && mod->getGameName().compare(gameName, Qt::CaseInsensitive) == 0)
+ if (mod->getLastNexusUpdate() < QDateTime::currentDateTimeUtc().addMonths(-1) && mod->gameName().compare(gameName, Qt::CaseInsensitive) == 0)
finalMods.insert(mod);
if (markUpdated) {
std::set<QSharedPointer<ModInfo>> updates;
std::copy_if(s_Collection.begin(), s_Collection.end(), std::inserter(updates, updates.end()), [=](QSharedPointer<ModInfo> info) -> bool {
- if (info->getGameName().compare(gameName, Qt::CaseInsensitive) == 0 && info->canBeUpdated())
+ if (info->gameName().compare(gameName, Qt::CaseInsensitive) == 0 && info->canBeUpdated())
return true;
return false;
});
@@ -419,7 +419,7 @@ void ModInfo::manualUpdateCheck(PluginContainer *pluginContainer, QObject *recei
}
}
mods.erase(
- std::remove_if(mods.begin(), mods.end(), [](ModInfo::Ptr mod) -> bool { return mod->getNexusID() <= 0; }),
+ std::remove_if(mods.begin(), mods.end(), [](ModInfo::Ptr mod) -> bool { return mod->modId() <= 0; }),
mods.end()
);
for (auto mod : mods) {
@@ -434,7 +434,7 @@ void ModInfo::manualUpdateCheck(PluginContainer *pluginContainer, QObject *recei
log::info("Checking updates for {} mods...", mods.size());
for (auto mod : mods) {
- organizedGames.insert(std::make_pair<QString, int>(mod->getGameName().toLower(), mod->getNexusID()));
+ organizedGames.insert(std::make_pair<QString, int>(mod->gameName().toLower(), mod->modId()));
}
for (auto game : organizedGames) {
@@ -526,14 +526,14 @@ bool ModInfo::categorySet(int categoryID) const
QUrl ModInfo::parseCustomURL() const
{
- if (!hasCustomURL() || getCustomURL().isEmpty()) {
+ if (!hasCustomURL() || url().isEmpty()) {
return {};
}
- const auto url = QUrl::fromUserInput(getCustomURL());
+ const auto url = QUrl::fromUserInput(this->url());
if (!url.isValid()) {
- log::error("mod '{}' has an invalid custom url '{}'", name(), getCustomURL());
+ log::error("mod '{}' has an invalid custom url '{}'", name(), this->url());
return {};
}
diff --git a/src/modinfo.h b/src/modinfo.h
index a6c8ea65..df47ef95 100644
--- a/src/modinfo.h
+++ b/src/modinfo.h
@@ -95,19 +95,6 @@ public:
HIGHLIGHT_PLUGIN = 8
};
- enum EEndorsedState {
- ENDORSED_FALSE,
- ENDORSED_TRUE,
- ENDORSED_UNKNOWN,
- ENDORSED_NEVER
- };
-
- enum ETrackedState {
- TRACKED_FALSE,
- TRACKED_TRUE,
- TRACKED_UNKNOWN,
- };
-
enum EModType {
MOD_DEFAULT,
MOD_DLC,
@@ -371,6 +358,7 @@ public:
virtual void addCategory(const QString &categoryName) override;
virtual bool removeCategory(const QString &categoryName) override;
+
virtual QStringList categories() const override;
/**
@@ -439,28 +427,14 @@ public:
virtual QString absolutePath() const = 0;
/**
- * @brief getter for the installation file
- *
- * @return file used to install this mod from
- */
- virtual QString getInstallationFile() const = 0;
-
- /**
* @return version object for machine based comparisons
**/
- virtual MOBase::VersionInfo getVersion() const { return m_Version; }
-
- /**
- * @brief getter for the newest version number of this mod
- *
- * @return newest version of the mod
- **/
- virtual MOBase::VersionInfo getNewestVersion() const = 0;
+ virtual MOBase::VersionInfo version() const { return m_Version; }
/**
* @return the repository from which the file was downloaded. Only relevant regular mods
*/
- virtual QString repository() const { return ""; }
+ virtual QString repository() const override { return ""; }
/**
* @brief ignore the newest version for updates
@@ -468,20 +442,6 @@ public:
virtual void ignoreUpdate(bool ignore) = 0;
/**
- * @brief getter for the nexus mod id
- *
- * @return the nexus mod id. may be 0 if the mod id isn't known or doesn't exist
- **/
- virtual int getNexusID() const = 0;
-
- /**
- * @brief getter for the source game repository
- *
- * @return the source game repository. should default to the active game.
- **/
- virtual QString getGameName() const = 0;
-
- /**
* @return the fixed priority of mods of this type or INT_MIN if the priority of mods
* needs to be user-modifiable. Can be < 0 to force a priority below user-modifable mods
* or INT_MAX to force priority above all user-modifiables
@@ -574,16 +534,6 @@ public:
virtual void setNexusFileStatus(int status) = 0;
/**
- * @return comments for this mod
- */
- virtual QString comments() const = 0;
-
- /**
- * @return notes for this mod
- */
- virtual QString notes() const = 0;
-
- /**
* @return creation time of this mod
*/
virtual QDateTime creationTime() const = 0;
@@ -633,13 +583,13 @@ public:
*/
virtual QStringList archives(bool checkOnDisk = false) = 0;
- /*
- *@return the color choosen by the user for the mod/separator
+ /**
+ * @return the color choosen by the user for the mod/separator
*/
- virtual QColor getColor() const { return QColor(); }
+ virtual QColor color() const override { return QColor(); }
- /*
- *@return true if the color has been set successfully.
+ /**
+ *
*/
virtual void setColor(QColor) { }
@@ -669,7 +619,7 @@ public:
/**
* @return id of the primary category of this mod
*/
- int getPrimaryCategory() const { return m_PrimaryCategory; }
+ int primaryCategory() const override { return m_PrimaryCategory; }
/**
* @brief sets the new primary category of the mod
@@ -685,12 +635,12 @@ public:
/**
* @return true if the file has been endorsed on nexus
*/
- virtual EEndorsedState endorsedState() const { return ENDORSED_NEVER; }
+ virtual MOBase::EndorsedState endorsedState() const override { return MOBase::EndorsedState::ENDORSED_NEVER; }
/**
* @return true if the file is being tracked on nexus
*/
- virtual ETrackedState trackedState() const { return TRACKED_FALSE; }
+ virtual MOBase::TrackedState trackedState() const override { return MOBase::TrackedState::TRACKED_FALSE; }
/**
* @brief updates the mod to flag it as converted in order to ignore the alternate game warning
@@ -765,7 +715,7 @@ public:
/**
* @brief returns the custom url
**/
- virtual QString getCustomURL() const { return ""; }
+ virtual QString url() const override { return ""; }
/**
* If hasCustomURL() is true and getCustomURL() is not empty, tries to parse
diff --git a/src/modinfodialogcategories.cpp b/src/modinfodialogcategories.cpp
index c61e248e..8bdea6e8 100644
--- a/src/modinfodialogcategories.cpp
+++ b/src/modinfodialogcategories.cpp
@@ -79,7 +79,7 @@ void CategoriesTab::updatePrimary()
{
ui->primaryCategories->clear();
- int primaryCategory = mod().getPrimaryCategory();
+ int primaryCategory = mod().primaryCategory();
addChecked(ui->categories->invisibleRootItem());
diff --git a/src/modinfodialognexus.cpp b/src/modinfodialognexus.cpp
index 8d99d230..bff5c699 100644
--- a/src/modinfodialognexus.cpp
+++ b/src/modinfodialognexus.cpp
@@ -68,9 +68,9 @@ void NexusTab::update()
clear();
- ui->modID->setText(QString("%1").arg(mod().getNexusID()));
+ ui->modID->setText(QString("%1").arg(mod().modId()));
- QString gameName = mod().getGameName();
+ QString gameName = mod().gameName();
ui->sourceGame->addItem(
core().managedGame()->gameName(),
core().managedGame()->gameShortName());
@@ -98,10 +98,10 @@ void NexusTab::update()
[&](const QUrl& url){ shell::Open(url); });
ui->endorse->setEnabled(
- (mod().endorsedState() == ModInfo::ENDORSED_FALSE) ||
- (mod().endorsedState() == ModInfo::ENDORSED_NEVER));
+ (mod().endorsedState() == EndorsedState::ENDORSED_FALSE) ||
+ (mod().endorsedState() == EndorsedState::ENDORSED_NEVER));
- setHasData(mod().getNexusID() >= 0);
+ setHasData(mod().modId() >= 0);
}
void NexusTab::firstActivation()
@@ -126,10 +126,10 @@ bool NexusTab::usesOriginFiles() const
void NexusTab::updateVersionColor()
{
- if (mod().getVersion() != mod().getNewestVersion()) {
+ if (mod().version() != mod().newestVersion()) {
ui->version->setStyleSheet("color: red");
ui->version->setToolTip(tr("Current Version: %1").arg(
- mod().getNewestVersion().canonicalString()));
+ mod().newestVersion().canonicalString()));
} else {
ui->version->setStyleSheet("color: green");
ui->version->setToolTip(tr("No update available"));
@@ -138,11 +138,11 @@ void NexusTab::updateVersionColor()
void NexusTab::updateWebpage()
{
- const int modID = mod().getNexusID();
+ const int modID = mod().modId();
if (isValidModID(modID)) {
const QString nexusLink = NexusInterface::instance(&plugin())
- ->getModURL(modID, mod().getGameName());
+ ->getModURL(modID, mod().gameName());
ui->visitNexus->setToolTip(nexusLink);
refreshData(modID);
@@ -150,9 +150,9 @@ void NexusTab::updateWebpage()
onModChanged();
}
- ui->version->setText(mod().getVersion().displayString());
+ ui->version->setText(mod().version().displayString());
ui->hasCustomURL->setChecked(mod().hasCustomURL());
- ui->customURL->setText(mod().getCustomURL());
+ ui->customURL->setText(mod().url());
ui->customURL->setEnabled(mod().hasCustomURL());
ui->visitCustomURL->setEnabled(mod().hasCustomURL());
ui->visitCustomURL->setToolTip(mod().parseCustomURL().toString());
@@ -162,7 +162,7 @@ void NexusTab::updateWebpage()
void NexusTab::updateTracking()
{
- if (mod().trackedState() == ModInfo::TRACKED_TRUE) {
+ if (mod().trackedState() == TrackedState::TRACKED_TRUE) {
ui->track->setChecked(true);
ui->track->setText(tr("Tracked"));
} else {
@@ -301,7 +301,7 @@ void NexusTab::onModIDChanged()
return;
}
- const int oldID = mod().getNexusID();
+ const int oldID = mod().modId();
const int newID = ui->modID->text().toInt();
if (oldID != newID){
@@ -326,7 +326,7 @@ void NexusTab::onSourceGameChanged()
if (game->gameName() == ui->sourceGame->currentText()) {
mod().setGameName(game->gameShortName());
mod().setLastNexusQuery(QDateTime::fromSecsSinceEpoch(0));
- refreshData(mod().getNexusID());
+ refreshData(mod().modId());
return;
}
}
@@ -345,7 +345,7 @@ void NexusTab::onVersionChanged()
void NexusTab::onRefreshBrowser()
{
- const auto modID = mod().getNexusID();
+ const auto modID = mod().modId();
if (isValidModID(modID)) {
mod().setLastNexusQuery(QDateTime::fromSecsSinceEpoch(0));
@@ -357,11 +357,11 @@ void NexusTab::onRefreshBrowser()
void NexusTab::onVisitNexus()
{
- const int modID = mod().getNexusID();
+ const int modID = mod().modId();
if (isValidModID(modID)) {
const QString nexusLink = NexusInterface::instance(&plugin())
- ->getModURL(modID, mod().getGameName());
+ ->getModURL(modID, mod().gameName());
shell::Open(QUrl(nexusLink));
}
@@ -379,7 +379,7 @@ void NexusTab::onTrack()
// use modPtr() instead of mod() or this because the callback may be
// executed after the dialog is closed
core().loggedInAction(parentWidget(), [m=modPtr()] {
- if (m->trackedState() == ModInfo::TRACKED_TRUE) {
+ if (m->trackedState() == TrackedState::TRACKED_TRUE) {
m->track(false);
} else {
m->track(true);
diff --git a/src/modinfodialogtab.cpp b/src/modinfodialogtab.cpp
index f795cdf9..e5ced4f7 100644
--- a/src/modinfodialogtab.cpp
+++ b/src/modinfodialogtab.cpp
@@ -163,7 +163,7 @@ void NotesTab::updateCommentsColor(bool clear)
QPalette commentPalette = QPalette();
if (!clear) {
- auto modColor = mod().getColor();
+ auto modColor = mod().color();
if (modColor.isValid()) {
commentPalette.setColor(QPalette::Base, modColor);
commentPalette.setColor(QPalette::Text, ColorSettings::idealTextColor(modColor));
@@ -219,7 +219,7 @@ void NotesTab::onSetColor()
QColorDialog dialog(m_parent);
dialog.setOption(QColorDialog::ShowAlphaChannel);
- QColor currentColor = mod().getColor();
+ QColor currentColor = mod().color();
if (currentColor.isValid()) {
dialog.setCurrentColor(currentColor);
@@ -256,5 +256,5 @@ void NotesTab::checkHasData()
setHasData(
!ui->comments->text().isEmpty() ||
!ui->notes->toPlainText().isEmpty() ||
- mod().getColor().isValid());
+ mod().color().isValid());
}
diff --git a/src/modinfoforeign.h b/src/modinfoforeign.h
index ae4241ee..97dd4dcb 100644
--- a/src/modinfoforeign.h
+++ b/src/modinfoforeign.h
@@ -42,10 +42,11 @@ public:
virtual QString notes() const override { return ""; }
virtual QDateTime creationTime() const override;
virtual QString absolutePath() const override;
- virtual MOBase::VersionInfo getNewestVersion() const override { return QString(); }
- virtual QString getInstallationFile() const override { return ""; }
- virtual QString getGameName() const override { return ""; }
- virtual int getNexusID() const override { return -1; }
+ virtual MOBase::VersionInfo newestVersion() const override { return QString(); }
+ virtual MOBase::VersionInfo ignoredVersion() const override { return QString(); }
+ virtual QString installationFile() const override { return ""; }
+ virtual QString gameName() const override { return ""; }
+ virtual int modId() const override { return -1; }
virtual QDateTime getExpires() const override { return QDateTime(); }
virtual std::vector<QString> getIniTweaks() const override { return std::vector<QString>(); }
virtual std::vector<ModInfo::EFlag> getFlags() const override;
@@ -65,6 +66,7 @@ public:
virtual QStringList stealFiles() const override { return m_Archives + QStringList(m_ReferenceFile); }
virtual bool alwaysEnabled() const override { return true; }
virtual void addInstalledFile(int, int) override {}
+ virtual std::set<std::pair<int, int>> installedFiles() const override { return {}; }
ModInfo::EModType modType() const { return m_ModType; }
diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h
index 9770ecbb..346b4903 100644
--- a/src/modinfooverwrite.h
+++ b/src/modinfooverwrite.h
@@ -44,11 +44,12 @@ public:
virtual QString notes() const override { return ""; }
virtual QDateTime creationTime() const override { return QDateTime(); }
virtual QString absolutePath() const override;
- virtual MOBase::VersionInfo getNewestVersion() const override { return QString(); }
- virtual QString getInstallationFile() const override { return ""; }
+ virtual MOBase::VersionInfo newestVersion() const override { return QString(); }
+ virtual MOBase::VersionInfo ignoredVersion() const override { return QString(); }
+ virtual QString installationFile() const override { return ""; }
virtual int getFixedPriority() const override { return std::numeric_limits<int>::max(); }
- virtual QString getGameName() const override { return ""; }
- virtual int getNexusID() const override { return -1; }
+ virtual QString gameName() const override { return ""; }
+ virtual int modId() const override { return -1; }
virtual QDateTime getExpires() const override { return QDateTime(); }
virtual std::vector<QString> getIniTweaks() const override { return std::vector<QString>(); }
virtual std::vector<ModInfo::EFlag> getFlags() const override;
@@ -66,6 +67,7 @@ public:
virtual QString getNexusDescription() const override { return QString(); }
virtual QStringList archives(bool checkOnDisk = false) override;
virtual void addInstalledFile(int, int) override {}
+ virtual std::set<std::pair<int, int>> installedFiles() const override { return {}; }
private:
ModInfoOverwrite(PluginContainer *pluginContainer, const MOBase::IPluginGame* game, MOShared::DirectoryEntry **directoryStructure);
diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp
index 8ef8e007..c5a79a8f 100644
--- a/src/modinforegular.cpp
+++ b/src/modinforegular.cpp
@@ -34,8 +34,8 @@ ModInfoRegular::ModInfoRegular(PluginContainer *pluginContainer, const IPluginGa
, m_Converted(false)
, m_Validated(false)
, m_MetaInfoChanged(false)
- , m_EndorsedState(ENDORSED_UNKNOWN)
- , m_TrackedState(TRACKED_UNKNOWN)
+ , m_EndorsedState(EndorsedState::ENDORSED_UNKNOWN)
+ , m_TrackedState(TrackedState::TRACKED_UNKNOWN)
, m_NexusBridge(pluginContainer)
{
m_CreationTime = QFileInfo(path.absolutePath()).birthTime();
@@ -166,17 +166,18 @@ void ModInfoRegular::readMeta()
m_LastNexusUpdate = QDateTime::fromString(metaFile.value("lastNexusUpdate", "").toString(), Qt::ISODate);
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() ? TRACKED_TRUE : TRACKED_FALSE;
+ 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>;
switch (metaFile.value("endorsed").toInt()) {
- case ENDORSED_FALSE: m_EndorsedState = ENDORSED_FALSE; break;
- case ENDORSED_TRUE: m_EndorsedState = ENDORSED_TRUE; break;
- case ENDORSED_NEVER: m_EndorsedState = ENDORSED_NEVER; break;
- default: m_EndorsedState = ENDORSED_UNKNOWN; break;
+ case static_cast<ut>(EndorsedState::ENDORSED_FALSE): m_EndorsedState = EndorsedState::ENDORSED_FALSE; break;
+ case static_cast<ut>(EndorsedState::ENDORSED_TRUE): m_EndorsedState = EndorsedState::ENDORSED_TRUE; break;
+ case static_cast<ut>(EndorsedState::ENDORSED_NEVER): m_EndorsedState = EndorsedState::ENDORSED_NEVER; break;
+ default: m_EndorsedState = EndorsedState::ENDORSED_UNKNOWN; break;
}
} else {
- m_EndorsedState = metaFile.value("endorsed", false).toBool() ? ENDORSED_TRUE : ENDORSED_FALSE;
+ m_EndorsedState = metaFile.value("endorsed", false).toBool() ? EndorsedState::ENDORSED_TRUE : EndorsedState::ENDORSED_FALSE;
}
}
@@ -236,10 +237,10 @@ void ModInfoRegular::saveMeta()
metaFile.setValue("converted", m_Converted);
metaFile.setValue("validated", m_Validated);
metaFile.setValue("color", m_Color);
- if (m_EndorsedState != ENDORSED_UNKNOWN) {
- metaFile.setValue("endorsed", m_EndorsedState);
+ if (m_EndorsedState != EndorsedState::ENDORSED_UNKNOWN) {
+ metaFile.setValue("endorsed", static_cast<std::underlying_type_t<EndorsedState>>(m_EndorsedState));
}
- metaFile.setValue("tracked", m_TrackedState);
+ metaFile.setValue("tracked", static_cast<std::underlying_type_t<TrackedState>>(m_TrackedState));
metaFile.remove("installedFiles");
metaFile.beginWriteArray("installedFiles");
@@ -295,15 +296,15 @@ void ModInfoRegular::nxmDescriptionAvailable(QString, int, QVariant, QVariant re
QVariantMap result = resultData.toMap();
setNexusDescription(result["description"].toString());
- if ((m_EndorsedState != ENDORSED_NEVER) && (result.contains("endorsement"))) {
+ if ((m_EndorsedState != EndorsedState::ENDORSED_NEVER) && (result.contains("endorsement"))) {
QVariantMap endorsement = result["endorsement"].toMap();
QString endorsementStatus = endorsement["endorse_status"].toString();
if (endorsementStatus.compare("Endorsed", Qt::CaseInsensitive) == 00)
- setEndorsedState(ENDORSED_TRUE);
+ setEndorsedState(EndorsedState::ENDORSED_TRUE);
else if (endorsementStatus.compare("Abstained", Qt::CaseInsensitive) == 00)
- setEndorsedState(ENDORSED_NEVER);
+ setEndorsedState(EndorsedState::ENDORSED_NEVER);
else
- setEndorsedState(ENDORSED_FALSE);
+ setEndorsedState(EndorsedState::ENDORSED_FALSE);
}
m_LastNexusQuery = QDateTime::currentDateTimeUtc();
m_NexusLastModified = QDateTime::fromSecsSinceEpoch(result["updated_timestamp"].toInt(), Qt::UTC);
@@ -318,11 +319,11 @@ void ModInfoRegular::nxmEndorsementToggled(QString, int, QVariant, QVariant resu
{
QMap results = resultData.toMap();
if (results["status"].toString().compare("Endorsed") == 0) {
- m_EndorsedState = ENDORSED_TRUE;
+ m_EndorsedState = EndorsedState::ENDORSED_TRUE;
} else if (results["status"].toString().compare("Abstained") == 0) {
- m_EndorsedState = ENDORSED_NEVER;
+ m_EndorsedState = EndorsedState::ENDORSED_NEVER;
} else {
- m_EndorsedState = ENDORSED_FALSE;
+ m_EndorsedState = EndorsedState::ENDORSED_FALSE;
}
m_MetaInfoChanged = true;
saveMeta();
@@ -333,9 +334,9 @@ void ModInfoRegular::nxmEndorsementToggled(QString, int, QVariant, QVariant resu
void ModInfoRegular::nxmTrackingToggled(QString, int, QVariant, bool tracked)
{
if (tracked)
- m_TrackedState = TRACKED_TRUE;
+ m_TrackedState = TrackedState::TRACKED_TRUE;
else
- m_TrackedState = TRACKED_FALSE;
+ m_TrackedState = TrackedState::TRACKED_FALSE;
m_MetaInfoChanged = true;
saveMeta();
emit modDetailsUpdated(true);
@@ -500,7 +501,7 @@ void ModInfoRegular::setNexusDescription(const QString &description)
}
}
-void ModInfoRegular::setEndorsedState(EEndorsedState endorsedState)
+void ModInfoRegular::setEndorsedState(EndorsedState endorsedState)
{
if (endorsedState != m_EndorsedState) {
m_EndorsedState = endorsedState;
@@ -508,7 +509,7 @@ void ModInfoRegular::setEndorsedState(EEndorsedState endorsedState)
}
}
-void ModInfoRegular::setTrackedState(ETrackedState trackedState)
+void ModInfoRegular::setTrackedState(TrackedState trackedState)
{
if (trackedState != m_TrackedState) {
m_TrackedState = trackedState;
@@ -529,22 +530,22 @@ void ModInfoRegular::addNexusCategory(int categoryID)
void ModInfoRegular::setIsEndorsed(bool endorsed)
{
- if (m_EndorsedState != ENDORSED_NEVER) {
- m_EndorsedState = endorsed ? ENDORSED_TRUE : ENDORSED_FALSE;
+ if (m_EndorsedState != EndorsedState::ENDORSED_NEVER) {
+ m_EndorsedState = endorsed ? EndorsedState::ENDORSED_TRUE : EndorsedState::ENDORSED_FALSE;
m_MetaInfoChanged = true;
}
}
void ModInfoRegular::setNeverEndorse()
{
- m_EndorsedState = ENDORSED_NEVER;
+ m_EndorsedState = EndorsedState::ENDORSED_NEVER;
m_MetaInfoChanged = true;
}
void ModInfoRegular::setIsTracked(bool tracked)
{
- if (tracked != (m_TrackedState == TRACKED_TRUE)) {
- m_TrackedState = tracked ? TRACKED_TRUE : TRACKED_FALSE;
+ if (tracked != (m_TrackedState == TrackedState::TRACKED_TRUE)) {
+ m_TrackedState = tracked ? TrackedState::TRACKED_TRUE : TrackedState::TRACKED_FALSE;
m_MetaInfoChanged = true;
}
}
@@ -555,7 +556,7 @@ void ModInfoRegular::setColor(QColor color)
m_MetaInfoChanged = true;
}
-QColor ModInfoRegular::getColor() const
+QColor ModInfoRegular::color() const
{
return m_Color;
}
@@ -568,15 +569,15 @@ bool ModInfoRegular::remove()
void ModInfoRegular::endorse(bool doEndorse)
{
- if (doEndorse != (m_EndorsedState == ENDORSED_TRUE)) {
- m_NexusBridge.requestToggleEndorsement(m_GameName, getNexusID(), m_Version.canonicalString(), doEndorse, QVariant(1));
+ if (doEndorse != (m_EndorsedState == EndorsedState::ENDORSED_TRUE)) {
+ m_NexusBridge.requestToggleEndorsement(m_GameName, modId(), m_Version.canonicalString(), doEndorse, QVariant(1));
}
}
void ModInfoRegular::track(bool doTrack)
{
- if (doTrack != (m_TrackedState == TRACKED_TRUE)) {
- m_NexusBridge.requestToggleTracking(m_GameName, getNexusID(), doTrack, QVariant(1));
+ if (doTrack != (m_TrackedState == TrackedState::TRACKED_TRUE)) {
+ m_NexusBridge.requestToggleTracking(m_GameName, modId(), doTrack, QVariant(1));
}
}
@@ -629,12 +630,12 @@ std::vector<ModInfo::EFlag> ModInfoRegular::getFlags() const
{
std::vector<ModInfo::EFlag> result = ModInfoWithConflictInfo::getFlags();
if ((m_NexusID > 0) &&
- (endorsedState() == ENDORSED_FALSE) &&
+ (endorsedState() == EndorsedState::ENDORSED_FALSE) &&
Settings::instance().nexus().endorsementIntegration()) {
result.push_back(ModInfo::FLAG_NOTENDORSED);
}
if ((m_NexusID > 0) &&
- (trackedState() == TRACKED_TRUE)) {
+ (trackedState() == TrackedState::TRACKED_TRUE)) {
result.push_back(ModInfo::FLAG_TRACKED);
}
if (!isValid() && !m_Validated) {
@@ -736,12 +737,12 @@ QString ModInfoRegular::repository() const
return m_Repository;
}
-ModInfoRegular::EEndorsedState ModInfoRegular::endorsedState() const
+EndorsedState ModInfoRegular::endorsedState() const
{
return m_EndorsedState;
}
-ModInfoRegular::ETrackedState ModInfoRegular::trackedState() const
+TrackedState ModInfoRegular::trackedState() const
{
return m_TrackedState;
}
@@ -791,7 +792,7 @@ void ModInfoRegular::setCustomURL(QString const &url)
m_MetaInfoChanged = true;
}
-QString ModInfoRegular::getCustomURL() const
+QString ModInfoRegular::url() const
{
return m_CustomURL;
}
diff --git a/src/modinforegular.h b/src/modinforegular.h
index 7e70631e..78387da9 100644
--- a/src/modinforegular.h
+++ b/src/modinforegular.h
@@ -235,33 +235,26 @@ public:
*
* @return newest version of the mod
**/
- MOBase::VersionInfo getNewestVersion() const override { return m_NewestVersion; }
+ MOBase::VersionInfo newestVersion() const override { return m_NewestVersion; }
/**
- * @brief ignore the newest version for updates
- */
- void ignoreUpdate(bool ignore) override;
-
- /**
- * @brief getter for the installation file
+ * @brief getter for the newest version number of this mod
*
- * @return file used to install this mod from
- */
- virtual QString getInstallationFile() const override { return m_InstallationFile; }
+ * @return newest version of the mod
+ **/
+ MOBase::VersionInfo ignoredVersion() const override { return m_IgnoredVersion; }
/**
- * @brief getter for the source game repository
- *
- * @return the source game repository. should default to the active game.
- **/
- QString getGameName() const override { return m_GameName; }
+ * @brief ignore the newest version for updates
+ */
+ void ignoreUpdate(bool ignore) override;
/**
* @brief getter for the nexus mod id
*
* @return the nexus mod id. may be 0 if the mod id isn't known or doesn't exist
**/
- int getNexusID() const override { return m_NexusID; }
+ int modId() const override { return m_NexusID; }
/**
* @return the fixed priority of mods of this type or INT_MIN if the priority of mods
@@ -345,12 +338,12 @@ public:
/**
* @return true if the file has been endorsed on nexus
*/
- virtual EEndorsedState endorsedState() const override;
+ virtual MOBase::EndorsedState endorsedState() const override;
/**
* @return true if the file is being tracked on nexus
*/
- virtual ETrackedState trackedState() const override;
+ virtual MOBase::TrackedState trackedState() const override;
/**
* @brief get the last time nexus was checked for file updates on this mod
@@ -386,7 +379,7 @@ public:
virtual void setColor(QColor color) override;
- virtual QColor getColor() const override;
+ virtual QColor color() const override;
virtual void addInstalledFile(int modId, int fileId) override;
@@ -400,12 +393,16 @@ public:
virtual void setHasCustomURL(bool b) override;
virtual bool hasCustomURL() const override;
virtual void setCustomURL(QString const &) override;
- virtual QString getCustomURL() const override;
+ virtual QString url() const override;
+
+ virtual QString gameName() const override { return m_GameName; }
+ virtual QString installationFile() const override { return m_InstallationFile; }
+ virtual std::set<std::pair<int, int>> installedFiles() const override { return m_InstalledFileIDs; }
private:
- void setEndorsedState(EEndorsedState endorsedState);
- void setTrackedState(ETrackedState trackedState);
+ void setEndorsedState(MOBase::EndorsedState endorsedState);
+ void setTrackedState(MOBase::TrackedState trackedState);
private slots:
@@ -457,8 +454,8 @@ private:
MOBase::VersionInfo m_NewestVersion;
MOBase::VersionInfo m_IgnoredVersion;
- EEndorsedState m_EndorsedState;
- ETrackedState m_TrackedState;
+ MOBase::EndorsedState m_EndorsedState;
+ MOBase::TrackedState m_TrackedState;
NexusBridge m_NexusBridge;
diff --git a/src/modinfoseparator.h b/src/modinfoseparator.h
index a7a6cb5f..724aa51f 100644
--- a/src/modinfoseparator.h
+++ b/src/modinfoseparator.h
@@ -20,7 +20,7 @@ public:
//TODO: Fix renaming method to avoid priority reset
virtual bool setName(const QString& name);
- virtual int getNexusID() const override { return -1; }
+ virtual int modId() const override { return -1; }
virtual void setGameName(const QString& gameName) override {}
virtual void setNexusID(int /*modID*/) override {}
virtual void endorse(bool /*doEndorse*/) override {}
@@ -33,8 +33,8 @@ public:
virtual int getHighlight() const override;
virtual QString getDescription() const override;
virtual QString name() const override;
- virtual QString getGameName() const override { return ""; }
- virtual QString getInstallationFile() const override { return ""; }
+ virtual QString gameName() const override { return ""; }
+ virtual QString installationFile() const override { return ""; }
virtual QString repository() const override { return ""; }
virtual int getNexusFileStatus() const override { return 0; }
virtual void setNexusFileStatus(int) override {}
diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp
index 5c76a0cf..70f9b3f1 100644
--- a/src/modinfowithconflictinfo.cpp
+++ b/src/modinfowithconflictinfo.cpp
@@ -5,6 +5,7 @@
#include "shared/fileentry.h"
#include <filesystem>
+#include "iplugingame.h"
#include "moddatachecker.h"
#include "qdirfiletree.h"
diff --git a/src/modlist.cpp b/src/modlist.cpp
index cbd9f30c..63621368 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -224,7 +224,7 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
else
return modInfo->name();
} else if (column == COL_VERSION) {
- VersionInfo verInfo = modInfo->getVersion();
+ VersionInfo verInfo = modInfo->version();
QString version = verInfo.displayString();
if (role != Qt::EditRole) {
if (version.isEmpty() && modInfo->canBeUpdated()) {
@@ -240,7 +240,7 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
return m_Profile->getModPriority(modIndex);
}
} else if (column == COL_MODID) {
- int modID = modInfo->getNexusID();
+ int modID = modInfo->modId();
if (modID > 0) {
return modID;
}
@@ -250,16 +250,16 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
} else if (column == COL_GAME) {
if (m_PluginContainer != nullptr) {
for (auto game : m_PluginContainer->plugins<IPluginGame>()) {
- if (game->gameShortName().compare(modInfo->getGameName(), Qt::CaseInsensitive) == 0)
+ if (game->gameShortName().compare(modInfo->gameName(), Qt::CaseInsensitive) == 0)
return game->gameName();
}
}
- return modInfo->getGameName();
+ return modInfo->gameName();
} else if (column == COL_CATEGORY) {
if (modInfo->hasFlag(ModInfo::FLAG_FOREIGN)) {
return tr("Non-MO");
} else {
- int category = modInfo->getPrimaryCategory();
+ int category = modInfo->primaryCategory();
if (category != -1) {
CategoryFactory &categoryFactory = CategoryFactory::instance();
if (categoryFactory.categoryExists(category)) {
@@ -333,7 +333,7 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
return m_Profile->getModPriority(modIndex);
}
} else {
- return modInfo->getNexusID();
+ return modInfo->modId();
}
} else if (role == Qt::UserRole + 1) {
return modIndex;
@@ -348,7 +348,7 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
} else if (role == Qt::UserRole + 3) {
return contentsToIcons(modInfo->getContents());
} else if (role == Qt::UserRole + 4) {
- return modInfo->getGameName();
+ return modInfo->gameName();
} else if (role == Qt::FontRole) {
QFont result;
auto flags = modInfo->getFlags();
@@ -379,14 +379,14 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
return QIcon(":/MO/gui/update_available");
} else if (modInfo->downgradeAvailable()) {
return QIcon(":/MO/gui/warning");
- } else if (modInfo->getVersion().scheme() == VersionInfo::SCHEME_DATE) {
+ } else if (modInfo->version().scheme() == VersionInfo::SCHEME_DATE) {
return QIcon(":/MO/gui/version_date");
}
}
return QVariant();
} else if (role == Qt::ForegroundRole) {
- if ((modInfo->hasFlag(ModInfo::FLAG_SEPARATOR) || (column == COL_NOTES)) && modInfo->getColor().isValid()) {
- return ColorSettings::idealTextColor(modInfo->getColor());
+ if ((modInfo->hasFlag(ModInfo::FLAG_SEPARATOR) || (column == COL_NOTES)) && modInfo->color().isValid()) {
+ return ColorSettings::idealTextColor(modInfo->color());
} else if (column == COL_NAME) {
int highlight = modInfo->getHighlight();
if (highlight & ModInfo::HIGHLIGHT_IMPORTANT)
@@ -394,7 +394,7 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
else if (highlight & ModInfo::HIGHLIGHT_INVALID)
return QBrush(Qt::darkGray);
} else if (column == COL_VERSION) {
- if (!modInfo->getNewestVersion().isValid()) {
+ if (!modInfo->newestVersion().isValid()) {
return QVariant();
} else if (modInfo->updateAvailable() || modInfo->downgradeAvailable()) {
return QBrush(Qt::red);
@@ -411,8 +411,8 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
bool overwritten = m_Overwritten.find(modIndex) != m_Overwritten.end();
bool archiveOverwritten = m_ArchiveOverwritten.find(modIndex) != m_ArchiveOverwritten.end();
bool archiveLooseOverwritten = m_ArchiveLooseOverwritten.find(modIndex) != m_ArchiveLooseOverwritten.end();
- if (column == COL_NOTES && modInfo->getColor().isValid()) {
- return modInfo->getColor();
+ if (column == COL_NOTES && modInfo->color().isValid()) {
+ return modInfo->color();
} else if (modInfo->getHighlight() & ModInfo::HIGHLIGHT_PLUGIN) {
return Settings::instance().colors().modlistContainsPlugin();
} else if (overwritten || archiveLooseOverwritten) {
@@ -424,10 +424,10 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
} else if (archiveOverwrite) {
return Settings::instance().colors().modlistOverwrittenArchive();
} else if (modInfo->hasFlag(ModInfo::FLAG_SEPARATOR)
- && modInfo->getColor().isValid()
+ && modInfo->color().isValid()
&& ((role != ViewMarkingScrollBar::DEFAULT_ROLE)
|| Settings::instance().colors().colorSeparatorScrollbar())) {
- return modInfo->getColor();
+ return modInfo->color();
} else {
return QVariant();
}
@@ -460,7 +460,7 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
return QString();
}
} else if (column == COL_VERSION) {
- QString text = tr("installed version: \"%1\", newest version: \"%2\"").arg(modInfo->getVersion().displayString(3)).arg(modInfo->getNewestVersion().displayString(3));
+ QString text = tr("installed version: \"%1\", newest version: \"%2\"").arg(modInfo->version().displayString(3)).arg(modInfo->newestVersion().displayString(3));
if (modInfo->downgradeAvailable()) {
text += "<br>" + tr("The newest version on Nexus seems to be older than the one you have installed. This could either mean the version you have has been withdrawn "
"(i.e. due to a bug) or the author uses a non-standard versioning scheme and that newest version is actually newer. "
@@ -471,7 +471,7 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
} else if (modInfo->getNexusFileStatus() == 6) {
text += "<br>" + tr("This file has been marked as \"Deleted\"! You may want to check for an update or remove the nexus ID from this mod!");
}
- if (modInfo->getNexusID() > 0) {
+ if (modInfo->modId() > 0) {
if (!modInfo->canBeUpdated()) {
qint64 remains = QDateTime::currentDateTimeUtc().secsTo(modInfo->getExpires());
qint64 minutes = remains / 60;
@@ -611,7 +611,7 @@ bool ModList::setData(const QModelIndex &index, const QVariant &value, int role)
}
} break;
case COL_VERSION: {
- VersionInfo::VersionScheme scheme = info->getVersion().scheme();
+ VersionInfo::VersionScheme scheme = info->version().scheme();
VersionInfo version(value.toString(), scheme, true);
if (version.isValid()) {
info->setVersion(version);
@@ -885,7 +885,7 @@ IModList::ModStates ModList::state(unsigned int modIndex) const
if (modInfo->isEmpty()) {
result |= IModList::STATE_EMPTY;
}
- if (modInfo->endorsedState() == ModInfo::ENDORSED_TRUE) {
+ if (modInfo->endorsedState() == EndorsedState::ENDORSED_TRUE) {
result |= IModList::STATE_ENDORSED;
}
if (modInfo->isValid()) {
@@ -1181,7 +1181,7 @@ void ModList::removeRowForce(int row, const QModelIndex &parent)
}
auto flags = modInfo->getFlags();
if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_BACKUP) == flags.end()) {
- emit modUninstalled(modInfo->getInstallationFile());
+ emit modUninstalled(modInfo->installationFile());
}
}
diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp
index ab6dd852..f1bc6c13 100644
--- a/src/modlistsortproxy.cpp
+++ b/src/modlistsortproxy.cpp
@@ -198,14 +198,14 @@ bool ModListSortProxy::lessThan(const QModelIndex &left,
lt = comp < 0;
} break;
case ModList::COL_CATEGORY: {
- if (leftMod->getPrimaryCategory() != rightMod->getPrimaryCategory()) {
- if (leftMod->getPrimaryCategory() < 0) lt = false;
- else if (rightMod->getPrimaryCategory() < 0) lt = true;
+ if (leftMod->primaryCategory() != rightMod->primaryCategory()) {
+ if (leftMod->primaryCategory() < 0) lt = false;
+ else if (rightMod->primaryCategory() < 0) lt = true;
else {
try {
CategoryFactory &categories = CategoryFactory::instance();
- QString leftCatName = categories.getCategoryName(categories.getCategoryIndex(leftMod->getPrimaryCategory()));
- QString rightCatName = categories.getCategoryName(categories.getCategoryIndex(rightMod->getPrimaryCategory()));
+ QString leftCatName = categories.getCategoryName(categories.getCategoryIndex(leftMod->primaryCategory()));
+ QString rightCatName = categories.getCategoryName(categories.getCategoryIndex(rightMod->primaryCategory()));
lt = leftCatName < rightCatName;
} catch (const std::exception &e) {
log::error("failed to compare categories: {}", e.what());
@@ -214,12 +214,12 @@ bool ModListSortProxy::lessThan(const QModelIndex &left,
}
} break;
case ModList::COL_MODID: {
- if (leftMod->getNexusID() != rightMod->getNexusID())
- lt = leftMod->getNexusID() < rightMod->getNexusID();
+ if (leftMod->modId() != rightMod->modId())
+ lt = leftMod->modId() < rightMod->modId();
} break;
case ModList::COL_VERSION: {
- if (leftMod->getVersion() != rightMod->getVersion())
- lt = leftMod->getVersion() < rightMod->getVersion();
+ if (leftMod->version() != rightMod->version())
+ lt = leftMod->version() < rightMod->version();
} break;
case ModList::COL_INSTALLTIME: {
QDateTime leftTime = left.data().toDateTime();
@@ -228,8 +228,8 @@ bool ModListSortProxy::lessThan(const QModelIndex &left,
return leftTime < rightTime;
} break;
case ModList::COL_GAME: {
- if (leftMod->getGameName() != rightMod->getGameName()) {
- lt = leftMod->getGameName() < rightMod->getGameName();
+ if (leftMod->gameName() != rightMod->gameName()) {
+ lt = leftMod->gameName() < rightMod->gameName();
}
else {
int comp = QString::compare(leftMod->name(), rightMod->name(), Qt::CaseInsensitive);
@@ -392,7 +392,7 @@ bool ModListSortProxy::categoryMatchesMod(
case CategoryFactory::Endorsed:
{
- b = (info->endorsedState() == ModInfo::ENDORSED_TRUE);
+ b = (info->endorsedState() == EndorsedState::ENDORSED_TRUE);
break;
}
@@ -425,13 +425,13 @@ bool ModListSortProxy::categoryMatchesMod(
return false;
}
- b = (info->getNexusID() > 0);
+ b = (info->modId() > 0);
break;
}
case CategoryFactory::Tracked:
{
- b = (info->trackedState() == ModInfo::TRACKED_TRUE);
+ b = (info->trackedState() == TrackedState::TRACKED_TRUE);
break;
}
@@ -531,7 +531,7 @@ bool ModListSortProxy::filterMatchesMod(ModInfo::Ptr info, bool enabled) const
bool ok;
int filterID = currentKeyword.toInt(&ok);
if (ok) {
- int modID = info->getNexusID();
+ int modID = info->modId();
while (modID > 0) {
if (modID == filterID) {
foundKeyword = true;