From 20cb97a35af5097e9d3b2062c0dfcb5f2e5fff5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 6 Sep 2014 18:16:56 +0200 Subject: Sync from quickmods --- logic/BaseInstance.cpp | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) (limited to 'logic/BaseInstance.cpp') diff --git a/logic/BaseInstance.cpp b/logic/BaseInstance.cpp index 9a811577..be6ea184 100644 --- a/logic/BaseInstance.cpp +++ b/logic/BaseInstance.cpp @@ -29,6 +29,7 @@ #include #include "logic/minecraft/MinecraftVersionList.h" #include "logic/icons/IconList.h" +#include "logic/InstanceList.h" BaseInstance::BaseInstance(BaseInstancePrivate *d_in, const QString &rootDir, SettingsObject *settings_obj, QObject *parent) @@ -143,10 +144,12 @@ QString BaseInstance::minecraftRoot() const InstanceList *BaseInstance::instList() const { - if (parent()->inherits("InstanceList")) - return (InstanceList *)parent(); - else - return NULL; + return qobject_cast(parent()); +} + +InstancePtr BaseInstance::getSharedPtr() +{ + return instList()->getInstanceById(id()); } std::shared_ptr BaseInstance::versionList() const @@ -160,13 +163,12 @@ SettingsObject &BaseInstance::settings() const return *d->m_settings; } -QSet BaseInstance::flags() const +BaseInstance::InstanceFlags BaseInstance::flags() const { I_D(const BaseInstance); - return QSet(d->m_flags); + return d->m_flags; } - -void BaseInstance::setFlags(const QSet &flags) +void BaseInstance::setFlags(const InstanceFlags &flags) { I_D(BaseInstance); if (flags != d->m_flags) @@ -176,10 +178,24 @@ void BaseInstance::setFlags(const QSet &flags) emit propertiesChanged(this); } } +void BaseInstance::setFlag(const BaseInstance::InstanceFlag flag) +{ + I_D(BaseInstance); + d->m_flags |= flag; + emit flagsChanged(); + emit propertiesChanged(this); +} +void BaseInstance::unsetFlag(const BaseInstance::InstanceFlag flag) +{ + I_D(BaseInstance); + d->m_flags &= ~flag; + emit flagsChanged(); + emit propertiesChanged(this); +} bool BaseInstance::canLaunch() const { - return !flags().contains(VersionBrokenFlag); + return !(flags() & VersionBrokenFlag); } bool BaseInstance::reload() -- cgit v1.2.3