From 4ed297750f29ba61802e902a5269fa56a7107643 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Sun, 20 Sep 2020 12:29:56 +0200 Subject: Add getters for most meta-information in mod. --- src/installationmanager.cpp | 2 +- src/mainwindow.cpp | 72 +++++++++++++++++++-------------------- src/modinfo.cpp | 28 +++++++-------- src/modinfo.h | 74 +++++++--------------------------------- src/modinfodialogcategories.cpp | 2 +- src/modinfodialognexus.cpp | 36 ++++++++++---------- src/modinfodialogtab.cpp | 6 ++-- src/modinfoforeign.h | 10 +++--- src/modinfooverwrite.h | 10 +++--- src/modinforegular.cpp | 75 +++++++++++++++++++++-------------------- src/modinforegular.h | 45 ++++++++++++------------- src/modinfoseparator.h | 6 ++-- src/modinfowithconflictinfo.cpp | 1 + src/modlist.cpp | 40 +++++++++++----------- src/modlistsortproxy.cpp | 30 ++++++++--------- 15 files changed, 195 insertions(+), 242 deletions(-) (limited to 'src') 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 IDs; ModInfo::Ptr info = ModInfo::getByIndex(ModInfo::getIndex(modName)); - IDs.insert(std::make_pair(info->getGameName(), info->getNexusID())); + IDs.insert(std::make_pair(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(info->getGameName(), info->getNexusID())); + IDs.insert(std::make_pair(info->gameName(), info->modId())); } } else { ModInfo::Ptr info = ModInfo::getByIndex(m_ContextRow); - IDs.insert(std::make_pair(info->getGameName(), info->getNexusID())); + IDs.insert(std::make_pair(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> organizedGames; for (auto mod : finalMods) { if (mod->canBeUpdated()) { - organizedGames.insert(std::make_pair(mod->getGameName().toLower(), mod->getNexusID())); + organizedGames.insert(std::make_pair(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(modInfo->getGameName(), modInfo->getNexusID())); + auto iter = s_ModsByModID.find(std::pair(modInfo->gameName(), modInfo->modId())); if (iter != s_ModsByModID.end()) { std::vector indices = iter->second; indices.erase(std::remove(indices.begin(), indices.end(), index), indices.end()); - s_ModsByModID[std::pair(modInfo->getGameName(), modInfo->getNexusID())] = indices; + s_ModsByModID[std::pair(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(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> organizedGames; for (auto mod : s_Collection) { if (mod->canBeUpdated() && mod->getLastNexusUpdate() < QDateTime::currentDateTimeUtc().addMonths(-1)) { - organizedGames.insert(std::make_pair(mod->getGameName().toLower(), mod->getNexusID())); + organizedGames.insert(std::make_pair(mod->gameName().toLower(), mod->modId())); } } @@ -372,7 +372,7 @@ std::set> 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 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> 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> updates; std::copy_if(s_Collection.begin(), s_Collection.end(), std::inserter(updates, updates.end()), [=](QSharedPointer 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(mod->getGameName().toLower(), mod->getNexusID())); + organizedGames.insert(std::make_pair(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; /** @@ -438,49 +426,21 @@ 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 */ 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 @@ -573,16 +533,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 */ @@ -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 getIniTweaks() const override { return std::vector(); } virtual std::vector 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> 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::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 getIniTweaks() const override { return std::vector(); } virtual std::vector 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> 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(); - 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()) { + using ut = std::underlying_type_t; 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(EndorsedState::ENDORSED_FALSE): m_EndorsedState = EndorsedState::ENDORSED_FALSE; break; + case static_cast(EndorsedState::ENDORSED_TRUE): m_EndorsedState = EndorsedState::ENDORSED_TRUE; break; + case static_cast(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>(m_EndorsedState)); } - metaFile.setValue("tracked", m_TrackedState); + metaFile.setValue("tracked", static_cast>(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 ModInfoRegular::getFlags() const { std::vector 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> 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 +#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()) { - 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 += "
" + 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 += "
" + 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; -- cgit v1.3.1