mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2025-12-05 01:10:12 +00:00
Make BaseVersion const-correct in order to remove const-cast from Meta::Version
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
@@ -30,21 +30,21 @@ class BaseVersion {
|
||||
* A string used to identify this version in config files.
|
||||
* This should be unique within the version list or shenanigans will occur.
|
||||
*/
|
||||
virtual QString descriptor() = 0;
|
||||
virtual QString descriptor() const = 0;
|
||||
|
||||
/*!
|
||||
* The name of this version as it is displayed to the user.
|
||||
* For example: "1.5.1"
|
||||
*/
|
||||
virtual QString name() = 0;
|
||||
virtual QString name() const = 0;
|
||||
|
||||
/*!
|
||||
* This should return a string that describes
|
||||
* the kind of version this is (Stable, Beta, Snapshot, whatever)
|
||||
*/
|
||||
virtual QString typeString() const = 0;
|
||||
virtual bool operator<(BaseVersion& a) { return name() < a.name(); }
|
||||
virtual bool operator>(BaseVersion& a) { return name() > a.name(); }
|
||||
virtual bool operator<(BaseVersion& a) const { return name() < a.name(); }
|
||||
virtual bool operator>(BaseVersion& a) const { return name() > a.name(); }
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(BaseVersion::Ptr)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "BaseVersion.h"
|
||||
#include "StringUtils.h"
|
||||
|
||||
bool JavaInstall::operator<(const JavaInstall& rhs)
|
||||
bool JavaInstall::operator<(const JavaInstall& rhs) const
|
||||
{
|
||||
auto archCompare = StringUtils::naturalCompare(arch, rhs.arch, Qt::CaseInsensitive);
|
||||
if (archCompare != 0)
|
||||
@@ -35,17 +35,17 @@ bool JavaInstall::operator<(const JavaInstall& rhs)
|
||||
return StringUtils::naturalCompare(path, rhs.path, Qt::CaseInsensitive) < 0;
|
||||
}
|
||||
|
||||
bool JavaInstall::operator==(const JavaInstall& rhs)
|
||||
bool JavaInstall::operator==(const JavaInstall& rhs) const
|
||||
{
|
||||
return arch == rhs.arch && id == rhs.id && path == rhs.path;
|
||||
}
|
||||
|
||||
bool JavaInstall::operator>(const JavaInstall& rhs)
|
||||
bool JavaInstall::operator>(const JavaInstall& rhs) const
|
||||
{
|
||||
return (!operator<(rhs)) && (!operator==(rhs));
|
||||
}
|
||||
|
||||
bool JavaInstall::operator<(BaseVersion& a)
|
||||
bool JavaInstall::operator<(BaseVersion& a) const
|
||||
{
|
||||
try {
|
||||
return operator<(dynamic_cast<JavaInstall&>(a));
|
||||
@@ -54,7 +54,7 @@ bool JavaInstall::operator<(BaseVersion& a)
|
||||
}
|
||||
}
|
||||
|
||||
bool JavaInstall::operator>(BaseVersion& a)
|
||||
bool JavaInstall::operator>(BaseVersion& a) const
|
||||
{
|
||||
try {
|
||||
return operator>(dynamic_cast<JavaInstall&>(a));
|
||||
|
||||
@@ -24,17 +24,17 @@
|
||||
struct JavaInstall : public BaseVersion {
|
||||
JavaInstall() {}
|
||||
JavaInstall(QString id, QString arch, QString path) : id(id), arch(arch), path(path) {}
|
||||
virtual QString descriptor() override { return id.toString(); }
|
||||
virtual QString descriptor() const override { return id.toString(); }
|
||||
|
||||
virtual QString name() override { return id.toString(); }
|
||||
virtual QString name() const override { return id.toString(); }
|
||||
|
||||
virtual QString typeString() const override { return arch; }
|
||||
|
||||
virtual bool operator<(BaseVersion& a) override;
|
||||
virtual bool operator>(BaseVersion& a) override;
|
||||
bool operator<(const JavaInstall& rhs);
|
||||
bool operator==(const JavaInstall& rhs);
|
||||
bool operator>(const JavaInstall& rhs);
|
||||
virtual bool operator<(BaseVersion& a) const override;
|
||||
virtual bool operator>(BaseVersion& a) const override;
|
||||
bool operator<(const JavaInstall& rhs) const;
|
||||
bool operator==(const JavaInstall& rhs) const;
|
||||
bool operator>(const JavaInstall& rhs) const;
|
||||
|
||||
JavaVersion id;
|
||||
QString arch;
|
||||
|
||||
@@ -78,7 +78,7 @@ MetadataPtr parseJavaMeta(const QJsonObject& in)
|
||||
return meta;
|
||||
}
|
||||
|
||||
bool Metadata::operator<(const Metadata& rhs)
|
||||
bool Metadata::operator<(const Metadata& rhs) const
|
||||
{
|
||||
auto id = version;
|
||||
if (id < rhs.version) {
|
||||
@@ -97,17 +97,17 @@ bool Metadata::operator<(const Metadata& rhs)
|
||||
return StringUtils::naturalCompare(m_name, rhs.m_name, Qt::CaseInsensitive) < 0;
|
||||
}
|
||||
|
||||
bool Metadata::operator==(const Metadata& rhs)
|
||||
bool Metadata::operator==(const Metadata& rhs) const
|
||||
{
|
||||
return version == rhs.version && m_name == rhs.m_name;
|
||||
}
|
||||
|
||||
bool Metadata::operator>(const Metadata& rhs)
|
||||
bool Metadata::operator>(const Metadata& rhs) const
|
||||
{
|
||||
return (!operator<(rhs)) && (!operator==(rhs));
|
||||
}
|
||||
|
||||
bool Metadata::operator<(BaseVersion& a)
|
||||
bool Metadata::operator<(BaseVersion& a) const
|
||||
{
|
||||
try {
|
||||
return operator<(dynamic_cast<Metadata&>(a));
|
||||
@@ -116,7 +116,7 @@ bool Metadata::operator<(BaseVersion& a)
|
||||
}
|
||||
}
|
||||
|
||||
bool Metadata::operator>(BaseVersion& a)
|
||||
bool Metadata::operator>(BaseVersion& a) const
|
||||
{
|
||||
try {
|
||||
return operator>(dynamic_cast<Metadata&>(a));
|
||||
|
||||
@@ -32,17 +32,17 @@ enum class DownloadType { Manifest, Archive, Unknown };
|
||||
|
||||
class Metadata : public BaseVersion {
|
||||
public:
|
||||
virtual QString descriptor() override { return version.toString(); }
|
||||
virtual QString descriptor() const override { return version.toString(); }
|
||||
|
||||
virtual QString name() override { return m_name; }
|
||||
virtual QString name() const override { return m_name; }
|
||||
|
||||
virtual QString typeString() const override { return vendor; }
|
||||
|
||||
virtual bool operator<(BaseVersion& a) override;
|
||||
virtual bool operator>(BaseVersion& a) override;
|
||||
bool operator<(const Metadata& rhs);
|
||||
bool operator==(const Metadata& rhs);
|
||||
bool operator>(const Metadata& rhs);
|
||||
virtual bool operator<(BaseVersion& a) const override;
|
||||
virtual bool operator>(BaseVersion& a) const override;
|
||||
bool operator<(const Metadata& rhs) const;
|
||||
bool operator==(const Metadata& rhs) const;
|
||||
bool operator>(const Metadata& rhs) const;
|
||||
|
||||
QString m_name;
|
||||
QString vendor;
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
|
||||
Meta::Version::Version(const QString& uid, const QString& version) : BaseVersion(), m_uid(uid), m_version(version) {}
|
||||
|
||||
QString Meta::Version::descriptor()
|
||||
QString Meta::Version::descriptor() const
|
||||
{
|
||||
return m_version;
|
||||
}
|
||||
QString Meta::Version::name()
|
||||
QString Meta::Version::name() const
|
||||
{
|
||||
if (m_data)
|
||||
return m_data->name;
|
||||
@@ -88,7 +88,7 @@ QString Meta::Version::localFilename() const
|
||||
|
||||
::Version Meta::Version::toComparableVersion() const
|
||||
{
|
||||
return { const_cast<Meta::Version*>(this)->descriptor() };
|
||||
return { descriptor() };
|
||||
}
|
||||
|
||||
void Meta::Version::setType(const QString& type)
|
||||
|
||||
@@ -40,8 +40,8 @@ class Version : public QObject, public BaseVersion, public BaseEntity {
|
||||
explicit Version(const QString& uid, const QString& version);
|
||||
virtual ~Version() = default;
|
||||
|
||||
QString descriptor() override;
|
||||
QString name() override;
|
||||
QString descriptor() const override;
|
||||
QString name() const override;
|
||||
QString typeString() const override;
|
||||
|
||||
QString uid() const { return m_uid; }
|
||||
|
||||
Reference in New Issue
Block a user