aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/ModIndex.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/modplatform/ModIndex.cpp')
-rw-r--r--launcher/modplatform/ModIndex.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/launcher/modplatform/ModIndex.cpp b/launcher/modplatform/ModIndex.cpp
index 6a507caf..3e1f473e 100644
--- a/launcher/modplatform/ModIndex.cpp
+++ b/launcher/modplatform/ModIndex.cpp
@@ -24,6 +24,74 @@
namespace ModPlatform {
+static const QMap<QString, IndexedVersionType::Enum> s_indexed_version_type_names = {
+ {"release", IndexedVersionType::Enum::Release},
+ {"beta", IndexedVersionType::Enum::Beta},
+ {"alpha", IndexedVersionType::Enum::Alpha}
+};
+
+IndexedVersionType::IndexedVersionType(const QString& type): IndexedVersionType(enumFromString(type))
+{}
+
+IndexedVersionType::IndexedVersionType(int type)
+{
+ switch (type) {
+ case 1:
+ m_type = IndexedVersionType::Enum::Release;
+ break;
+ case 2:
+ m_type = IndexedVersionType::Enum::Beta;
+ break;
+ case 3:
+ m_type = IndexedVersionType::Enum::Alpha;
+ break;
+ default:
+ m_type = IndexedVersionType::Enum::UNKNOWN;
+ }
+}
+
+IndexedVersionType::IndexedVersionType(const IndexedVersionType::Enum& type)
+{
+ m_type = type;
+}
+
+IndexedVersionType::IndexedVersionType(const IndexedVersionType& other)
+{
+ m_type = other.m_type;
+}
+
+IndexedVersionType& IndexedVersionType::operator=(const IndexedVersionType& other)
+{
+ m_type = other.m_type;
+ return *this;
+}
+
+const QString IndexedVersionType::toString (const IndexedVersionType::Enum& type)
+{
+ switch (type) {
+ case IndexedVersionType::Enum::Release:
+ return "release";
+ case IndexedVersionType::Enum::Beta:
+ return "beta";
+ case IndexedVersionType::Enum::Alpha:
+ return "alpha";
+ case IndexedVersionType::Enum::UNKNOWN:
+ default:
+ return "unknown";
+
+ }
+}
+
+IndexedVersionType::Enum IndexedVersionType::enumFromString(const QString& type)
+{
+ auto found = s_indexed_version_type_names.constFind(type);
+ if (found != s_indexed_version_type_names.constEnd()) {
+ return *found;
+ } else {
+ return IndexedVersionType::Enum::UNKNOWN;
+ }
+}
+
auto ProviderCapabilities::name(ResourceProvider p) -> const char*
{
switch (p) {