summaryrefslogtreecommitdiffstats
path: root/logic/BaseInstance.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2013-10-10 01:47:48 +0200
committerPetr Mrázek <peterix@gmail.com>2013-10-10 01:47:48 +0200
commit73f8bc5c92cb4a9b7ce507309001c6b206b5c8eb (patch)
treeda0b7c09fcd105a4144387e4261ad3aabc910862 /logic/BaseInstance.h
parenteaf0cbeafc5ff70bd2bb0d66b5f5980a71f824c5 (diff)
downloadMultiMC-73f8bc5c92cb4a9b7ce507309001c6b206b5c8eb.tar
MultiMC-73f8bc5c92cb4a9b7ce507309001c6b206b5c8eb.tar.gz
MultiMC-73f8bc5c92cb4a9b7ce507309001c6b206b5c8eb.tar.lz
MultiMC-73f8bc5c92cb4a9b7ce507309001c6b206b5c8eb.tar.xz
MultiMC-73f8bc5c92cb4a9b7ce507309001c6b206b5c8eb.zip
Version changing removes any existing version json.
Diffstat (limited to 'logic/BaseInstance.h')
-rw-r--r--logic/BaseInstance.h98
1 files changed, 52 insertions, 46 deletions
diff --git a/logic/BaseInstance.h b/logic/BaseInstance.h
index e360d3ae..b083c24a 100644
--- a/logic/BaseInstance.h
+++ b/logic/BaseInstance.h
@@ -3,7 +3,7 @@
* 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
@@ -33,9 +33,9 @@ class BaseInstancePrivate;
/*!
* \brief Base class for instances.
- * This class implements many functions that are common between instances and
+ * This class implements many functions that are common between instances and
* provides a standard interface for all instances.
- *
+ *
* To create a new instance type, create a new class inheriting from this class
* and implement the pure virtual functions.
*/
@@ -44,66 +44,72 @@ class BaseInstance : public QObject
Q_OBJECT
protected:
/// no-touchy!
- BaseInstance(BaseInstancePrivate * d, const QString &rootDir, SettingsObject * settings, QObject *parent = 0);
+ BaseInstance(BaseInstancePrivate *d, const QString &rootDir, SettingsObject *settings,
+ QObject *parent = 0);
+
public:
/// virtual destructor to make sure the destruction is COMPLETE
virtual ~BaseInstance() {};
-
- /// nuke thoroughly - deletes the instance contents, notifies the list/model which is responsible of cleaning up the husk
+
+ /// nuke thoroughly - deletes the instance contents, notifies the list/model which is
+ /// responsible of cleaning up the husk
void nuke();
-
- /// The instance's ID. The ID SHALL be determined by MMC internally. The ID IS guaranteed to be unique.
+
+ /// The instance's ID. The ID SHALL be determined by MMC internally. The ID IS guaranteed to
+ /// be unique.
QString id() const;
-
+
/// get the type of this instance
QString instanceType() const;
-
+
/// Path to the instance's root directory.
QString instanceRoot() const;
-
+
/// Path to the instance's minecraft directory.
QString minecraftRoot() const;
-
+
QString name() const;
void setName(QString val);
-
+
QString iconKey() const;
void setIconKey(QString val);
-
+
QString notes() const;
void setNotes(QString val);
-
+
QString group() const;
void setGroupInitial(QString val);
void setGroupPost(QString val);
-
-
+
virtual QString intendedVersionId() const = 0;
virtual bool setIntendedVersionId(QString version) = 0;
-
+
+ virtual bool versionIsCustom() = 0;
+
/*!
* The instance's current version.
- * This value represents the instance's current version. If this value is
+ * This value represents the instance's current version. If this value is
* different from the intendedVersion, the instance should be updated.
* \warning Don't change this value unless you know what you're doing.
*/
virtual QString currentVersionId() const = 0;
- //virtual void setCurrentVersionId(QString val) = 0;
-
+ // virtual void setCurrentVersionId(QString val) = 0;
+
/*!
* Whether or not Minecraft should be downloaded when the instance is launched.
*/
virtual bool shouldUpdate() const = 0;
virtual void setShouldUpdate(bool val) = 0;
- /// Get the curent base jar of this instance. By default, it's the versions/$version/$version.jar
+ /// Get the curent base jar of this instance. By default, it's the
+ /// versions/$version/$version.jar
QString baseJar() const;
/// the default base jar of this instance
virtual QString defaultBaseJar() const = 0;
/// the default custom base jar of this instance
virtual QString defaultCustomBaseJar() const = 0;
-
+
/*!
* Whether or not custom base jar is used
*/
@@ -114,7 +120,7 @@ public:
*/
QString customBaseJar() const;
void setCustomBaseJar(QString val);
-
+
/**
* Gets the time that the instance was last launched.
* Stored in milliseconds since epoch.
@@ -122,53 +128,54 @@ public:
qint64 lastLaunch() const;
/// Sets the last launched time to 'val' milliseconds since epoch
void setLastLaunch(qint64 val = QDateTime::currentMSecsSinceEpoch());
-
+
/*!
- * \brief Gets the instance list that this instance is a part of.
- * Returns NULL if this instance is not in a list
+ * \brief Gets the instance list that this instance is a part of.
+ * Returns NULL if this instance is not in a list
* (the parent is not an InstanceList).
- * \return A pointer to the InstanceList containing this instance.
+ * \return A pointer to the InstanceList containing this instance.
*/
InstanceList *instList() const;
-
+
/*!
* \brief Gets a pointer to this instance's version list.
* \return A pointer to the available version list for this instance.
*/
virtual std::shared_ptr<BaseVersionList> versionList() const;
-
+
/*!
* \brief Gets this instance's settings object.
* This settings object stores instance-specific settings.
* \return A pointer to this instance's settings object.
*/
virtual SettingsObject &settings() const;
-
+
/// returns a valid update task if update is needed, NULL otherwise
- virtual BaseUpdate* doUpdate() = 0;
-
+ virtual BaseUpdate *doUpdate() = 0;
+
/// returns a valid minecraft process, ready for launch
- virtual MinecraftProcess* prepareForLaunch(LoginResponse response) = 0;
-
- /// do any necessary cleanups after the instance finishes. also runs before 'prepareForLaunch'
+ virtual MinecraftProcess *prepareForLaunch(LoginResponse response) = 0;
+
+ /// do any necessary cleanups after the instance finishes. also runs before
+ /// 'prepareForLaunch'
virtual void cleanupAfterRun() = 0;
-
+
/// create a mod edit dialog for the instance
- virtual QDialog * createModEditDialog ( QWidget* parent ) = 0;
-
+ virtual QDialog *createModEditDialog(QWidget *parent) = 0;
+
/// is a particular action enabled with this instance selected?
virtual bool menuActionEnabled(QString action_name) const = 0;
-
+
virtual QString getStatusbarDescription() = 0;
-
+
/// FIXME: this really should be elsewhere...
virtual QString instanceConfigFolder() const = 0;
-
+
signals:
/*!
* \brief Signal emitted when properties relevant to the instance view change
*/
- void propertiesChanged(BaseInstance * inst);
+ void propertiesChanged(BaseInstance *inst);
/*!
* \brief Signal emitted when groups are affected in any way
*/
@@ -176,12 +183,11 @@ signals:
/*!
* \brief The instance just got nuked. Hurray!
*/
- void nuked(BaseInstance * inst);
-
+ void nuked(BaseInstance *inst);
+
protected:
std::shared_ptr<BaseInstancePrivate> inst_d;
};
// pointer for lazy people
typedef std::shared_ptr<BaseInstance> InstancePtr;
-