summaryrefslogtreecommitdiffstats
path: root/api/logic/meta/Version.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2017-03-24 02:26:06 +0100
committerPetr Mrázek <peterix@gmail.com>2017-04-07 00:20:02 +0200
commitda4ae1bc1ec74cdb4e75f4ebac30886ba4a1909c (patch)
treec6db08bd02bd991c2370ca62f43249afaf3fe156 /api/logic/meta/Version.h
parent77f27a628f33a591f7562ca05c206ac604212443 (diff)
downloadMultiMC-da4ae1bc1ec74cdb4e75f4ebac30886ba4a1909c.tar
MultiMC-da4ae1bc1ec74cdb4e75f4ebac30886ba4a1909c.tar.gz
MultiMC-da4ae1bc1ec74cdb4e75f4ebac30886ba4a1909c.tar.lz
MultiMC-da4ae1bc1ec74cdb4e75f4ebac30886ba4a1909c.tar.xz
MultiMC-da4ae1bc1ec74cdb4e75f4ebac30886ba4a1909c.zip
NOISSUE reimplement package dependencies
It is now stored as a hashmap There is also a parentUid to limit depsolving by encapsulating by version
Diffstat (limited to 'api/logic/meta/Version.h')
-rw-r--r--api/logic/meta/Version.h48
1 files changed, 36 insertions, 12 deletions
diff --git a/api/logic/meta/Version.h b/api/logic/meta/Version.h
index b3943f47..1d921035 100644
--- a/api/logic/meta/Version.h
+++ b/api/logic/meta/Version.h
@@ -17,15 +17,14 @@
#include "BaseVersion.h"
-#include <QVector>
-#include <QStringList>
#include <QJsonObject>
+#include <QStringList>
+#include <QVector>
#include <memory>
#include "minecraft/VersionFile.h"
#include "BaseEntity.h"
-#include "Reference.h"
#include "multimc_logic_export.h"
@@ -37,10 +36,11 @@ class MULTIMC_LOGIC_EXPORT Version : public QObject, public BaseVersion, public
{
Q_OBJECT
Q_PROPERTY(QString uid READ uid CONSTANT)
+ Q_PROPERTY(QString parentUid READ parentUid)
Q_PROPERTY(QString version READ version CONSTANT)
Q_PROPERTY(QString type READ type NOTIFY typeChanged)
Q_PROPERTY(QDateTime time READ time NOTIFY timeChanged)
- Q_PROPERTY(QVector<Reference> requires READ requires NOTIFY requiresChanged)
+ Q_PROPERTY(QHash<QString, QString> requires READ requires NOTIFY requiresChanged)
public: /* con/des */
explicit Version(const QString &uid, const QString &version);
@@ -49,13 +49,35 @@ public: /* con/des */
QString name() override;
QString typeString() const override;
- QString uid() const { return m_uid; }
- QString version() const { return m_version; }
- QString type() const { return m_type; }
+ QString uid() const
+ {
+ return m_uid;
+ }
+ QString parentUid() const
+ {
+ return m_parentUid;
+ }
+ QString version() const
+ {
+ return m_version;
+ }
+ QString type() const
+ {
+ return m_type;
+ }
QDateTime time() const;
- qint64 rawTime() const { return m_time; }
- QVector<Reference> requires() const { return m_requires; }
- VersionFilePtr data() const { return m_data; }
+ qint64 rawTime() const
+ {
+ return m_time;
+ }
+ const QHash<QString, QString> &requires() const
+ {
+ return m_requires;
+ }
+ VersionFilePtr data() const
+ {
+ return m_data;
+ }
void merge(const std::shared_ptr<BaseEntity> &other) override;
void parse(const QJsonObject &obj) override;
@@ -63,9 +85,10 @@ public: /* con/des */
QString localFilename() const override;
public: // for usage by format parsers only
+ void setParentUid(const QString &parentUid);
void setType(const QString &type);
void setTime(const qint64 time);
- void setRequires(const QVector<Reference> &requires);
+ void setRequires(const QHash<QString, QString> &requires);
void setData(const VersionFilePtr &data);
signals:
@@ -76,10 +99,11 @@ signals:
private:
QString m_name;
QString m_uid;
+ QString m_parentUid;
QString m_version;
QString m_type;
qint64 m_time;
- QVector<Reference> m_requires;
+ QHash<QString, QString> m_requires;
VersionFilePtr m_data;
};
}