From 40c433580f69006a42dc27a6444ebd9a6cccc440 Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Fri, 1 May 2020 18:00:31 +0200 Subject: Update ModInfo classes to handle plugin game and clean some declarations. --- src/modinforegular.h | 143 ++++++++++++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 65 deletions(-) (limited to 'src/modinforegular.h') diff --git a/src/modinforegular.h b/src/modinforegular.h index 705e66a8..1cef24fb 100644 --- a/src/modinforegular.h +++ b/src/modinforegular.h @@ -1,6 +1,8 @@ #ifndef MODINFOREGULAR_H #define MODINFOREGULAR_H +#include + #include "modinfowithconflictinfo.h" #include "nexusinterface.h" @@ -22,9 +24,9 @@ public: ~ModInfoRegular(); - virtual bool isRegular() const { return true; } + virtual bool isRegular() const override { return true; } - virtual bool isEmpty() const; + virtual bool isEmpty() const override; bool isAlternate() { return m_IsAlternate; } bool isConverted() { return m_Converted; } @@ -39,12 +41,12 @@ public: * * @return true if there is a newer version **/ - bool updateAvailable() const; + bool updateAvailable() const override; /** * @return true if the current update is being ignored */ - virtual bool updateIgnored() const { return m_IgnoredVersion.isValid() && m_IgnoredVersion == m_NewestVersion; } + virtual bool updateIgnored() const override { return m_IgnoredVersion.isValid() && m_IgnoredVersion == m_NewestVersion; } /** * @brief test if there is a newer version of the mod @@ -55,7 +57,7 @@ public: * * @return true if there is a newer version **/ - bool downgradeAvailable() const; + bool downgradeAvailable() const override; /** * @brief request an update of nexus description for this mod. @@ -65,7 +67,7 @@ public: * * @return returns true if information for this mod will be updated, false if there is no nexus mod id to use **/ - bool updateNXMInfo(); + bool updateNXMInfo() override; /** * @brief assign or unassign the specified category @@ -76,7 +78,7 @@ public: * @param active determines wheter the category is assigned or unassigned * @note this function does not test whether categoryID actually identifies a valid category **/ - void setCategory(int categoryID, bool active); + void setCategory(int categoryID, bool active) override; /** * @brief set the name of this mod @@ -88,33 +90,33 @@ public: * @return true on success, false if the new name can't be used (i.e. because the new * directory name wouldn't be valid) **/ - bool setName(const QString &name); + bool setName(const QString &name) override; /** * @brief changes the comments (manually set information displayed in the mod list) for this mod * @param comments new comments */ - void setComments(const QString &comments); + void setComments(const QString &comments) override; /** * @brief change the notes (manually set information) for this mod * @param notes new notes */ - void setNotes(const QString ¬es); + void setNotes(const QString ¬es) override; /** - * @brief set/change the source game of this mod - * - * @param gameName the source game shortName - */ - void setGameName(const QString &gameName); + * @brief set/change the game plgin for this mod + * + * @param gamePlugin the game plugin + */ + virtual void setGamePlugin(const MOBase::IPluginGame* gamePlugin) override; /** * @brief set/change the nexus mod id of this mod * * @param modID the nexus mod id **/ - void setNexusID(int modID); + void setNexusID(int modID) override; /** * @brief set the version of this mod @@ -124,7 +126,7 @@ public: * * @param version the new version to use **/ - void setVersion(const MOBase::VersionInfo &version); + void setVersion(const MOBase::VersionInfo &version) override; /** * @brief set the newest version of this mod on the nexus @@ -136,73 +138,73 @@ public: * @todo this function should be made obsolete. All queries for mod information should go through * this class so no public function for this change is required **/ - void setNewestVersion(const MOBase::VersionInfo &version); + void setNewestVersion(const MOBase::VersionInfo &version) override; /** * @brief changes/updates the nexus description text * @param description the current description text */ - virtual void setNexusDescription(const QString &description); + virtual void setNexusDescription(const QString &description) override; - virtual void setInstallationFile(const QString &fileName); + virtual void setInstallationFile(const QString &fileName) override; /** * @brief sets the category id from a nexus category id. Conversion to MO id happens internally * @param categoryID the nexus category id * @note if a mapping is not possible, the category is set to the default value */ - virtual void addNexusCategory(int categoryID); + virtual void addNexusCategory(int categoryID) override; /** * @brief sets the new primary category of the mod * @param categoryID the category to set */ - virtual void setPrimaryCategory(int categoryID) { m_PrimaryCategory = categoryID; m_MetaInfoChanged = true; } + virtual void setPrimaryCategory(int categoryID) override { m_PrimaryCategory = categoryID; m_MetaInfoChanged = true; } /** * @brief sets the download repository * @param repository */ - virtual void setRepository(const QString &repository) { m_Repository = repository; } + virtual void setRepository(const QString &repository) override { m_Repository = repository; } /** * update the endorsement state for the mod. This only changes the * buffered state, it does not sync with Nexus * @param endorsed the new endorsement state */ - virtual void setIsEndorsed(bool endorsed); + virtual void setIsEndorsed(bool endorsed) override; /** * set the mod to "i don't intend to endorse". The mod will not show as unendorsed but can still be endorsed */ - virtual void setNeverEndorse(); + virtual void setNeverEndorse() override; /** * update the tracked state for the mod. This only changes the * buffered state. It does not sync with Nexus * @param tracked the new tracked state */ - virtual void setIsTracked(bool tracked); + virtual void setIsTracked(bool tracked) override; /** * @brief delete the mod from the disc. This does not update the global ModInfo structure or indices * @return true if the mod was successfully removed **/ - bool remove(); + bool remove() override; /** * @brief endorse or un-endorse the mod * @param doEndorse if true, the mod is endorsed, if false, it's un-endorsed. * @note if doEndorse doesn't differ from the current value, nothing happens. */ - virtual void endorse(bool doEndorse); + virtual void endorse(bool doEndorse) override; /** * @brief track or untrack the mod. This will sync with nexus! * @param doTrack if true, the mod is tracked, if false, it's untracked. * @note if doTrack doesn't differ from the current value, nothing happens. */ - virtual void track(bool doTrack); + virtual void track(bool doTrack) override; /** * @brief updates the mod to flag it as converted in order to ignore the alternate game warning @@ -219,183 +221,183 @@ public: * * @return the mod name **/ - QString name() const { return m_Name; } + QString name() const override { return m_Name; } /** * @brief getter for the mod path * * @return the (absolute) path to the mod **/ - QString absolutePath() const; + QString absolutePath() const override; /** * @brief getter for the newest version number of this mod * * @return newest version of the mod **/ - MOBase::VersionInfo getNewestVersion() const { return m_NewestVersion; } + MOBase::VersionInfo getNewestVersion() const override { return m_NewestVersion; } /** * @brief ignore the newest version for updates */ - void ignoreUpdate(bool ignore); + void ignoreUpdate(bool ignore) override; /** * @brief getter for the installation file * * @return file used to install this mod from */ - virtual QString getInstallationFile() const { return m_InstallationFile; } + virtual QString getInstallationFile() const override { return m_InstallationFile; } /** * @brief getter for the source game repository * * @return the source game repository. should default to the active game. **/ - QString getGameName() const { return m_GameName; } + QString getGameName() const override { return m_GameName; } /** * @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 { return m_NexusID; } + int getNexusID() const override { return m_NexusID; } /** * @return the fixed priority of mods of this type or INT_MIN if the priority of mods * needs to be user-modifiable */ - virtual int getFixedPriority() const { return INT_MIN; } + virtual int getFixedPriority() const override { return std::numeric_limits::min(); } /** * @return true if the mod can be updated */ - virtual bool canBeUpdated() const; + virtual bool canBeUpdated() const override; /** * @return the update expiration date based on the last updated date from Nexus */ - virtual QDateTime getExpires() const; + virtual QDateTime getExpires() const override; /** * @return true if the mod can be enabled/disabled */ - virtual bool canBeEnabled() const { return true; } + virtual bool canBeEnabled() const override { return true; } /** * @return a list of flags for this mod */ - virtual std::vector getFlags() const; + virtual std::vector getFlags() const override; - virtual std::vector getContents() const; + virtual std::vector getContents() const override; /** * @return an indicator if and how this mod should be highlighted by the UI */ - virtual int getHighlight() const; + virtual int getHighlight() const override; /** * @return list of names of ini tweaks **/ - std::vector getIniTweaks() const; + std::vector getIniTweaks() const override; /** * @return a description about the mod, to be displayed in the ui */ - virtual QString getDescription() const; + virtual QString getDescription() const override; /** * @return the nexus file status (aka category ID) */ - virtual int getNexusFileStatus() const; + virtual int getNexusFileStatus() const override; /** * @brief sets the file status (category ID) from Nexus * @param status the status id of the installed file */ - virtual void setNexusFileStatus(int status); + virtual void setNexusFileStatus(int status) override; /** * @return comments for this mod */ - virtual QString comments() const; + virtual QString comments() const override; /** * @return manually set notes for this mod */ - virtual QString notes() const; + virtual QString notes() const override; /** * @return time this mod was created (file time of the directory) */ - virtual QDateTime creationTime() const; + virtual QDateTime creationTime() const override; /** * @return nexus description of the mod (html) */ - QString getNexusDescription() const; + QString getNexusDescription() const override; /** * @return repository from which the file was downloaded */ - virtual QString repository() const; + virtual QString repository() const override; /** * @return true if the file has been endorsed on nexus */ - virtual EEndorsedState endorsedState() const; + virtual EEndorsedState endorsedState() const override; /** * @return true if the file is being tracked on nexus */ - virtual ETrackedState trackedState() const; + virtual ETrackedState trackedState() const override; /** * @brief get the last time nexus was checked for file updates on this mod */ - virtual QDateTime getLastNexusUpdate() const; + virtual QDateTime getLastNexusUpdate() const override; /** * @brief set the last time nexus was checked for file updates on this mod */ - virtual void setLastNexusUpdate(QDateTime time); + virtual void setLastNexusUpdate(QDateTime time) override; /** * @return last time nexus was queried for infos on this mod */ - virtual QDateTime getLastNexusQuery() const; + virtual QDateTime getLastNexusQuery() const override; /** * @brief set the last time nexus was queried for info on this mod */ - virtual void setLastNexusQuery(QDateTime time); + virtual void setLastNexusQuery(QDateTime time) override; /** * @return last time the mod was updated on Nexus */ - virtual QDateTime getNexusLastModified() const; + virtual QDateTime getNexusLastModified() const override; /** * @brief set the last time the mod was updated on Nexus */ - virtual void setNexusLastModified(QDateTime time); + virtual void setNexusLastModified(QDateTime time) override; - virtual QStringList archives(bool checkOnDisk = false); + virtual QStringList archives(bool checkOnDisk = false) override; - virtual void setColor(QColor color); + virtual void setColor(QColor color) override; virtual QColor getColor(); - virtual void addInstalledFile(int modId, int fileId); + virtual void addInstalledFile(int modId, int fileId) override; /** * @brief stores meta information back to disk */ - virtual void saveMeta(); + virtual void saveMeta() override; - void readMeta(); + void readMeta() override; virtual void setHasCustomURL(bool b) override; virtual bool hasCustomURL() const override; @@ -418,6 +420,13 @@ protected: ModInfoRegular(PluginContainer *pluginContainer, const MOBase::IPluginGame *game, const QDir &path, MOShared::DirectoryEntry **directoryStructure); + /** + * @brief check if the content of this mod is valid. + * + * @return true if the content is valid, false otherwize. + **/ + virtual bool doTestValid() const; + private: QString m_Name; @@ -429,6 +438,10 @@ private: QString m_Repository; QString m_CustomURL; bool m_HasCustomURL; + + // Storing both the game name and game plugin since we can have a game + // name that is not one of the primary names of the game plugin: + const MOBase::IPluginGame* m_GamePlugin; QString m_GameName; mutable QStringList m_Archives; -- cgit v1.3.1 From 5a90eecc21412fa705837eb724250ef1b758c993 Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Thu, 7 May 2020 02:07:15 +0200 Subject: Fix issue with mods not being checked properly and overwrite not having the right priority. --- src/modinfoforeign.h | 1 - src/modinfooverwrite.h | 5 +---- src/modinforegular.cpp | 29 ----------------------------- src/modinforegular.h | 7 ------- src/modinfowithconflictinfo.cpp | 31 +++++++++++++++++++++++++++++++ src/modinfowithconflictinfo.h | 9 +++++++++ 6 files changed, 41 insertions(+), 41 deletions(-) (limited to 'src/modinforegular.h') diff --git a/src/modinfoforeign.h b/src/modinfoforeign.h index 7725c793..0c15c7a4 100644 --- a/src/modinfoforeign.h +++ b/src/modinfoforeign.h @@ -73,7 +73,6 @@ protected: const QStringList &archives, ModInfo::EModType modType, MOShared::DirectoryEntry **directoryStructure, PluginContainer *pluginContainer); - virtual bool doTestValid() const { return true; } private: QString m_Name; diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h index 070ba6ef..10d405bd 100644 --- a/src/modinfooverwrite.h +++ b/src/modinfooverwrite.h @@ -46,7 +46,7 @@ public: virtual QString absolutePath() const override; virtual MOBase::VersionInfo getNewestVersion() const override { return QString(); } virtual QString getInstallationFile() const override { return ""; } - virtual int getFixedPriority() const override { return std::numeric_limits::min(); } + virtual int getFixedPriority() const override { return std::numeric_limits::max(); } virtual QString getGameName() const override { return ""; } virtual int getNexusID() const override { return -1; } virtual QDateTime getExpires() const override { return QDateTime(); } @@ -67,9 +67,6 @@ public: virtual QStringList archives(bool checkOnDisk = false) override; virtual void addInstalledFile(int, int) override {} -protected: - virtual bool doTestValid() const { return true; } - private: ModInfoOverwrite(PluginContainer *pluginContainer, MOShared::DirectoryEntry **directoryStructure ); diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index 6a0a1b7d..e74c5070 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -1,5 +1,4 @@ #include "modinforegular.h" -#include "installationtester.h" #include "categories.h" #include "messagedialog.h" @@ -271,34 +270,6 @@ void ModInfoRegular::saveMeta() } } -bool ModInfoRegular::doTestValid() const { - - bool valid = false; - QDirIterator dirIter(absolutePath()); - while (dirIter.hasNext()) { - dirIter.next(); - if (dirIter.fileInfo().isDir()) { - if (InstallationTester::isTopLevelDirectory(dirIter.fileName())) { - valid = true; - break; - } - } - else { - if (InstallationTester::isTopLevelSuffix(dirIter.fileName())) { - valid = true; - break; - } - } - } - - // NOTE: in Qt 4.7 it seems that QDirIterator leaves a file handle open if it is not iterated to the - // end - while (dirIter.hasNext()) { - dirIter.next(); - } - - return valid; -} bool ModInfoRegular::updateAvailable() const { diff --git a/src/modinforegular.h b/src/modinforegular.h index 1cef24fb..11a78765 100644 --- a/src/modinforegular.h +++ b/src/modinforegular.h @@ -420,13 +420,6 @@ protected: ModInfoRegular(PluginContainer *pluginContainer, const MOBase::IPluginGame *game, const QDir &path, MOShared::DirectoryEntry **directoryStructure); - /** - * @brief check if the content of this mod is valid. - * - * @return true if the content is valid, false otherwize. - **/ - virtual bool doTestValid() const; - private: QString m_Name; diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp index 2b4fa11c..d0516d06 100644 --- a/src/modinfowithconflictinfo.cpp +++ b/src/modinfowithconflictinfo.cpp @@ -1,4 +1,5 @@ #include "modinfowithconflictinfo.h" +#include "installationtester.h" #include "utility.h" #include "shared/directoryentry.h" #include "shared/filesorigin.h" @@ -291,3 +292,33 @@ bool ModInfoWithConflictInfo::hasHiddenFiles() const return m_HasHiddenFiles; } + + +bool ModInfoWithConflictInfo::doTestValid() const { + + bool valid = false; + QDirIterator dirIter(absolutePath()); + while (dirIter.hasNext()) { + dirIter.next(); + if (dirIter.fileInfo().isDir()) { + if (InstallationTester::isTopLevelDirectory(dirIter.fileName())) { + valid = true; + break; + } + } + else { + if (InstallationTester::isTopLevelSuffix(dirIter.fileName())) { + valid = true; + break; + } + } + } + + // NOTE: in Qt 4.7 it seems that QDirIterator leaves a file handle open if it is not iterated to the + // end + while (dirIter.hasNext()) { + dirIter.next(); + } + + return valid; +} diff --git a/src/modinfowithconflictinfo.h b/src/modinfowithconflictinfo.h index c2a49afb..0bb7c422 100644 --- a/src/modinfowithconflictinfo.h +++ b/src/modinfowithconflictinfo.h @@ -34,6 +34,15 @@ public: virtual void doConflictCheck() const override; +protected: + + /** + * @brief check if the content of this mod is valid. + * + * @return true if the content is valid, false otherwize. + **/ + virtual bool doTestValid() const; + private: enum EConflictType { -- cgit v1.3.1 From ff990c77434a33dd1b500e7704511fed73ea1ea4 Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Thu, 7 May 2020 12:17:27 +0200 Subject: Fix issue with getColor() not being overriden properly. --- src/modinforegular.cpp | 2 +- src/modinforegular.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/modinforegular.h') diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index e74c5070..d248f530 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -559,7 +559,7 @@ void ModInfoRegular::setColor(QColor color) m_MetaInfoChanged = true; } -QColor ModInfoRegular::getColor() +QColor ModInfoRegular::getColor() const { return m_Color; } diff --git a/src/modinforegular.h b/src/modinforegular.h index 11a78765..b4a7bfd2 100644 --- a/src/modinforegular.h +++ b/src/modinforegular.h @@ -388,7 +388,7 @@ public: virtual void setColor(QColor color) override; - virtual QColor getColor(); + virtual QColor getColor() const override; virtual void addInstalledFile(int modId, int fileId) override; -- cgit v1.3.1 From c391c2b584a309f64f87dd5e00b0083279e6211c Mon Sep 17 00:00:00 2001 From: Mikaël Capelle Date: Tue, 19 May 2020 18:00:12 +0200 Subject: Rollback to setGameName instead of setGamePlugin for mod interface. --- src/modinfo.h | 10 +++++----- src/modinfobackup.h | 2 +- src/modinfodialognexus.cpp | 2 +- src/modinfoforeign.h | 2 +- src/modinfooverwrite.h | 2 +- src/modinforegular.cpp | 6 ++---- src/modinforegular.h | 18 ++++++++++-------- src/modinfoseparator.h | 2 +- 8 files changed, 22 insertions(+), 22 deletions(-) (limited to 'src/modinforegular.h') diff --git a/src/modinfo.h b/src/modinfo.h index d611fa87..2c108378 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -319,11 +319,11 @@ public: virtual void setNotes(const QString ¬es) = 0; /** - * @brief set/change the game plgin for this mod - * - * @param gamePlugin the game plugin - */ - virtual void setGamePlugin(const MOBase::IPluginGame* gamePlugin) = 0; + * @brief set/change the source game of this mod + * + * @param gameName the source game shortName + */ + virtual void setGameName(const QString& gameName) = 0; /** * @brief set the name of this mod diff --git a/src/modinfobackup.h b/src/modinfobackup.h index bc340b3e..9eba545c 100644 --- a/src/modinfobackup.h +++ b/src/modinfobackup.h @@ -16,7 +16,7 @@ public: virtual bool updateIgnored() const override { return false; } virtual bool downgradeAvailable() const override { return false; } virtual bool updateNXMInfo() override { return false; } - virtual void setGamePlugin(const MOBase::IPluginGame*) override {} + virtual void setGameName(const QString& gameName) override {} virtual void setNexusID(int) override {} virtual void endorse(bool) override {} virtual int getFixedPriority() const override { return -1; } diff --git a/src/modinfodialognexus.cpp b/src/modinfodialognexus.cpp index 447beea6..8d99d230 100644 --- a/src/modinfodialognexus.cpp +++ b/src/modinfodialognexus.cpp @@ -324,7 +324,7 @@ void NexusTab::onSourceGameChanged() for (auto game : plugin().plugins()) { if (game->gameName() == ui->sourceGame->currentText()) { - mod().setGamePlugin(game); + mod().setGameName(game->gameShortName()); mod().setLastNexusQuery(QDateTime::fromSecsSinceEpoch(0)); refreshData(mod().getNexusID()); return; diff --git a/src/modinfoforeign.h b/src/modinfoforeign.h index 0c15c7a4..da2c865b 100644 --- a/src/modinfoforeign.h +++ b/src/modinfoforeign.h @@ -22,7 +22,7 @@ public: virtual bool setName(const QString&) override { return false; } virtual void setComments(const QString&) override {} virtual void setNotes(const QString&) override {} - virtual void setGamePlugin(const MOBase::IPluginGame*) override {} + virtual void setGameName(const QString& gameName) override {} virtual void setNexusID(int) override {} virtual void setNewestVersion(const MOBase::VersionInfo&) override {} virtual void ignoreUpdate(bool) override {} diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h index 10d405bd..0bcf6f27 100644 --- a/src/modinfooverwrite.h +++ b/src/modinfooverwrite.h @@ -24,7 +24,7 @@ public: virtual bool setName(const QString&) override { return false; } virtual void setComments(const QString&) override {} virtual void setNotes(const QString&) override {} - virtual void setGamePlugin(const MOBase::IPluginGame*) override {} + virtual void setGameName(const QString& gameName) override {} virtual void setNexusID(int) override {} virtual void setNewestVersion(const MOBase::VersionInfo&) override {} virtual void ignoreUpdate(bool) override {} diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index d248f530..a1ef5701 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -468,12 +468,10 @@ void ModInfoRegular::setNotes(const QString ¬es) m_MetaInfoChanged = true; } -void ModInfoRegular::setGamePlugin(const MOBase::IPluginGame* gamePlugin) +void ModInfoRegular::setGameName(const QString& gameName) { - m_GamePlugin = gamePlugin; - m_GameName = gamePlugin->gameShortName(); + m_GameName = gameName; m_MetaInfoChanged = true; - testValid(); } void ModInfoRegular::setNexusID(int modID) diff --git a/src/modinforegular.h b/src/modinforegular.h index b4a7bfd2..75b24a6b 100644 --- a/src/modinforegular.h +++ b/src/modinforegular.h @@ -105,11 +105,11 @@ public: void setNotes(const QString ¬es) override; /** - * @brief set/change the game plgin for this mod - * - * @param gamePlugin the game plugin - */ - virtual void setGamePlugin(const MOBase::IPluginGame* gamePlugin) override; + * @brief set/change the source game of this mod + * + * @param gameName the source game shortName + */ + virtual void setGameName(const QString& gameName) override; /** * @brief set/change the nexus mod id of this mod @@ -432,9 +432,11 @@ private: QString m_CustomURL; bool m_HasCustomURL; - // Storing both the game name and game plugin since we can have a game - // name that is not one of the primary names of the game plugin: - const MOBase::IPluginGame* m_GamePlugin; + // Current game plugin running in MO2: + MOBase::IPluginGame const* m_GamePlugin; + + // Game name for the mod, can be different from the actual game running in MO2 + // e.g., for Skyrim / Skyrim SE. QString m_GameName; mutable QStringList m_Archives; diff --git a/src/modinfoseparator.h b/src/modinfoseparator.h index d715d548..80734bcf 100644 --- a/src/modinfoseparator.h +++ b/src/modinfoseparator.h @@ -21,7 +21,7 @@ public: virtual bool setName(const QString& name); virtual int getNexusID() const override { return -1; } - virtual void setGamePlugin(const MOBase::IPluginGame* /*gamePlugin*/) override {} + virtual void setGameName(const QString& gameName) override {} virtual void setNexusID(int /*modID*/) override {} virtual void endorse(bool /*doEndorse*/) override {} virtual void ignoreUpdate(bool /*ignore*/) override {} -- cgit v1.3.1