/* 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; }