summaryrefslogtreecommitdiffstats
path: root/plugins/stdinstance/stdinstversion.cpp
diff options
context:
space:
mode:
authorAndrew <forkk@forkk.net>2013-03-08 13:56:26 -0600
committerAndrew <forkk@forkk.net>2013-03-08 13:56:26 -0600
commit2d6e785e4ee8a8b837fe84f83972ec23a09564af (patch)
tree6afdac6e06f1ba8ae5c29f62b5a4a9bc1b696b12 /plugins/stdinstance/stdinstversion.cpp
parent69040f923b0344de214d6f1fc4553d223df7d2d6 (diff)
downloadMultiMC-2d6e785e4ee8a8b837fe84f83972ec23a09564af.tar
MultiMC-2d6e785e4ee8a8b837fe84f83972ec23a09564af.tar.gz
MultiMC-2d6e785e4ee8a8b837fe84f83972ec23a09564af.tar.lz
MultiMC-2d6e785e4ee8a8b837fe84f83972ec23a09564af.tar.xz
MultiMC-2d6e785e4ee8a8b837fe84f83972ec23a09564af.zip
Implemented version lists.
Diffstat (limited to 'plugins/stdinstance/stdinstversion.cpp')
-rw-r--r--plugins/stdinstance/stdinstversion.cpp147
1 files changed, 147 insertions, 0 deletions
diff --git a/plugins/stdinstance/stdinstversion.cpp b/plugins/stdinstance/stdinstversion.cpp
new file mode 100644
index 00000000..0e582ffc
--- /dev/null
+++ b/plugins/stdinstance/stdinstversion.cpp
@@ -0,0 +1,147 @@
+/* Copyright 2013 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "stdinstversion.h"
+
+StdInstVersion::StdInstVersion(QString descriptor,
+ QString name,
+ qint64 timestamp,
+ QString dlUrl,
+ bool hasLWJGL,
+ QString etag,
+ InstVersionList *parent) :
+ InstVersion(parent), m_descriptor(descriptor), m_name(name), m_timestamp(timestamp),
+ m_dlUrl(dlUrl), m_hasLWJGL(hasLWJGL), m_etag(etag)
+{
+ m_linkedVersion = NULL;
+}
+
+StdInstVersion::StdInstVersion(StdInstVersion *linkedVersion)
+{
+ m_linkedVersion = linkedVersion;
+}
+
+StdInstVersion::StdInstVersion()
+{
+ m_timestamp = 0;
+ m_hasLWJGL = false;
+ m_linkedVersion = NULL;
+}
+
+StdInstVersion *StdInstVersion::mcnVersion(QString rawName, QString niceName)
+{
+ StdInstVersion *version = new StdInstVersion;
+ version->m_descriptor = rawName;
+ version->m_name = niceName;
+ version->setVersionType(MCNostalgia);
+ return version;
+}
+
+QString StdInstVersion::descriptor() const
+{
+ if (m_linkedVersion)
+ return m_linkedVersion->descriptor();
+ return m_descriptor;
+}
+
+QString StdInstVersion::name() const
+{
+ if (m_linkedVersion)
+ return m_linkedVersion->name();
+ return m_name;
+}
+
+QString StdInstVersion::type() const
+{
+ if (m_linkedVersion)
+ return m_linkedVersion->type();
+
+ switch (versionType())
+ {
+ case OldSnapshot:
+ return "Old Snapshot";
+
+ case Stable:
+ return "Stable";
+
+ case CurrentStable:
+ return "Current Stable";
+
+ case Snapshot:
+ return "Snapshot";
+
+ case MCNostalgia:
+ return "MCNostalgia";
+
+ case MetaCustom:
+ // Not really sure what this does, but it was in the code for v4,
+ // so it must be important... Right?
+ return "Custom Meta Version";
+
+ case MetaLatestSnapshot:
+ return "Latest Snapshot";
+
+ case MetaLatestStable:
+ return "Latest Stable";
+
+ default:
+ return QString("Unknown Type %1").arg(versionType());
+ }
+}
+
+qint64 StdInstVersion::timestamp() const
+{
+ if (m_linkedVersion)
+ return m_linkedVersion->timestamp();
+ return m_timestamp;
+}
+
+QString StdInstVersion::downloadURL() const
+{
+ if (m_linkedVersion)
+ return m_linkedVersion->downloadURL();
+ return m_dlUrl;
+}
+
+bool StdInstVersion::hasLWJGL() const
+{
+ if (m_linkedVersion)
+ return m_linkedVersion->hasLWJGL();
+ return m_hasLWJGL;
+}
+
+QString StdInstVersion::etag() const
+{
+ if (m_linkedVersion)
+ return m_linkedVersion->etag();
+ return m_etag;
+}
+
+StdInstVersion::VersionType StdInstVersion::versionType() const
+{
+ return m_type;
+}
+
+void StdInstVersion::setVersionType(StdInstVersion::VersionType type)
+{
+ m_type = type;
+}
+
+bool StdInstVersion::isMeta() const
+{
+ return versionType() == MetaCustom ||
+ versionType() == MetaLatestSnapshot ||
+ versionType() == MetaLatestStable;
+}