From 5fabb4f2546fa6b79a4e2c29679f506e587a0070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 27 Mar 2017 03:34:39 +0200 Subject: NOISSUE Rough refactor of ProfilePatch and VersionFile internals. They are now distinct classes with distinct responsibilities. * ProfilePatch is an entry in MinecraftProfile and can hold VersionFile or Meta::Version. * VersionFile is the basic element that holds version information loaded from JSON. * Meta::Version is the loader class for VersionFile(s) from a server. --- api/logic/ProblemProvider.h | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 api/logic/ProblemProvider.h (limited to 'api/logic/ProblemProvider.h') diff --git a/api/logic/ProblemProvider.h b/api/logic/ProblemProvider.h new file mode 100644 index 00000000..64a31c59 --- /dev/null +++ b/api/logic/ProblemProvider.h @@ -0,0 +1,54 @@ +#pragma once + +enum class ProblemSeverity +{ + None, + Warning, + Error +}; + +class PatchProblem +{ +public: + PatchProblem(ProblemSeverity severity, const QString & description) + { + m_severity = severity; + m_description = description; + } + const QString & getDescription() const + { + return m_description; + } + const ProblemSeverity getSeverity() const + { + return m_severity; + } +private: + ProblemSeverity m_severity; + QString m_description; +}; + +class ProblemProvider +{ +public: + virtual const QList& getProblems() + { + return m_problems; + } + virtual void addProblem(ProblemSeverity severity, const QString &description) + { + if(severity > m_problemSeverity) + { + m_problemSeverity = severity; + } + m_problems.append(PatchProblem(severity, description)); + } + virtual ProblemSeverity getProblemSeverity() + { + return m_problemSeverity; + } + +private: + QList m_problems; + ProblemSeverity m_problemSeverity = ProblemSeverity::None; +}; -- cgit v1.2.3 From 2ac0edbbdb27e12bae00c4779da135582bde89f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Thu, 30 Mar 2017 01:05:58 +0200 Subject: NOISSUE preview of LWJGL version changing It still needs work - some LWJGL versions are exclusive to macOS. This has to be encoded in the json. --- api/logic/ProblemProvider.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'api/logic/ProblemProvider.h') diff --git a/api/logic/ProblemProvider.h b/api/logic/ProblemProvider.h index 64a31c59..b30e1776 100644 --- a/api/logic/ProblemProvider.h +++ b/api/logic/ProblemProvider.h @@ -31,10 +31,21 @@ private: class ProblemProvider { public: - virtual const QList& getProblems() + virtual const QList getProblems() = 0; + virtual ProblemSeverity getProblemSeverity() = 0; +}; + +class ProblemContainer : public ProblemProvider +{ +public: + const QList getProblems() override { return m_problems; } + ProblemSeverity getProblemSeverity() override + { + return m_problemSeverity; + } virtual void addProblem(ProblemSeverity severity, const QString &description) { if(severity > m_problemSeverity) @@ -43,10 +54,6 @@ public: } m_problems.append(PatchProblem(severity, description)); } - virtual ProblemSeverity getProblemSeverity() - { - return m_problemSeverity; - } private: QList m_problems; -- cgit v1.2.3