From f1156e169b68d9bb303cb8d8a171e053d7d38f82 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Sat, 26 Dec 2020 16:53:07 +0100 Subject: Add method to get the type of IModInterface. --- src/modinfo.h | 20 ++++++++++++++++++++ src/modinfobackup.h | 1 + src/modinfoforeign.h | 1 + src/modinfooverwrite.h | 1 + src/modinfoseparator.h | 1 + 5 files changed, 24 insertions(+) (limited to 'src') diff --git a/src/modinfo.h b/src/modinfo.h index e5e65c82..42abe51e 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -378,6 +378,26 @@ public: // IModInterface implementations / Re-declaration */ virtual std::shared_ptr fileTree() const = 0; + /** + * @return true if this object represents the overwrite mod. + */ + virtual bool isOverwrite() const { return false; } + + /** + * @return true if this object represents a backup. + */ + virtual bool isBackup() const { return false; } + + /** + * @return true if this object represents a separator. + */ + virtual bool isSeparator() const { return false; } + + /** + * @return true if this object represents a foreign mod. + */ + virtual bool isForeign() const { return false; } + public: // Mutable operations: /** diff --git a/src/modinfobackup.h b/src/modinfobackup.h index 9eba545c..bf5dc5e6 100644 --- a/src/modinfobackup.h +++ b/src/modinfobackup.h @@ -36,6 +36,7 @@ public: virtual QDateTime getNexusLastModified() const override { return QDateTime(); } virtual void setNexusLastModified(QDateTime) override {} virtual QString getNexusDescription() const override { return QString(); } + virtual bool isBackup() const override { return true; } virtual void addInstalledFile(int, int) override {} diff --git a/src/modinfoforeign.h b/src/modinfoforeign.h index 4f830799..0a4ec42a 100644 --- a/src/modinfoforeign.h +++ b/src/modinfoforeign.h @@ -49,6 +49,7 @@ public: virtual bool validated() const override { return false; } virtual QString gameName() const override { return ""; } virtual int nexusId() const override { return -1; } + virtual bool isForeign() const override { return true; } virtual QDateTime getExpires() const override { return QDateTime(); } virtual std::vector getIniTweaks() const override { return std::vector(); } virtual std::vector getFlags() const override; diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h index 502581ce..7236d3bf 100644 --- a/src/modinfooverwrite.h +++ b/src/modinfooverwrite.h @@ -52,6 +52,7 @@ public: virtual int getFixedPriority() const override { return std::numeric_limits::max(); } virtual QString gameName() const override { return ""; } virtual int nexusId() const override { return -1; } + virtual bool isOverwrite() const override { return true; } virtual QDateTime getExpires() const override { return QDateTime(); } virtual std::vector getIniTweaks() const override { return std::vector(); } virtual std::vector getFlags() const override; diff --git a/src/modinfoseparator.h b/src/modinfoseparator.h index 26c03e27..88262f37 100644 --- a/src/modinfoseparator.h +++ b/src/modinfoseparator.h @@ -47,6 +47,7 @@ public: virtual QDateTime creationTime() const override { return QDateTime(); } virtual QString getNexusDescription() const override { return QString(); } virtual void addInstalledFile(int /*modId*/, int /*fileId*/) override { } + virtual bool isSeparator() const override { return true; } protected: virtual bool doIsValid() const override { return true; } -- cgit v1.3.1