fede712a26
It is realistically a list of components. The fact that it also holds the final launch parameters is a design bug.
71 lines
1.7 KiB
C++
71 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <QList>
|
|
#include <QJsonDocument>
|
|
#include <QDateTime>
|
|
#include "ProblemProvider.h"
|
|
|
|
class ComponentList;
|
|
namespace Meta
|
|
{
|
|
class Version;
|
|
class VersionList;
|
|
}
|
|
class VersionFile;
|
|
|
|
class ProfilePatch : public ProblemProvider
|
|
{
|
|
public:
|
|
ProfilePatch(std::shared_ptr<Meta::Version> version);
|
|
ProfilePatch(std::shared_ptr<VersionFile> file, const QString &filename = QString());
|
|
|
|
virtual ~ProfilePatch(){};
|
|
virtual void applyTo(ComponentList *profile);
|
|
|
|
virtual bool isMoveable();
|
|
virtual bool isCustomizable();
|
|
virtual bool isRevertible();
|
|
virtual bool isRemovable();
|
|
virtual bool isCustom();
|
|
virtual bool isVersionChangeable();
|
|
|
|
virtual void setOrder(int order);
|
|
virtual int getOrder();
|
|
|
|
virtual QString getID();
|
|
virtual QString getName();
|
|
virtual QString getVersion();
|
|
virtual std::shared_ptr<Meta::Version> getMeta();
|
|
virtual QDateTime getReleaseDateTime();
|
|
|
|
virtual QString getFilename();
|
|
|
|
virtual std::shared_ptr<class VersionFile> getVersionFile();
|
|
virtual std::shared_ptr<class Meta::VersionList> getVersionList();
|
|
|
|
void setVanilla (bool state);
|
|
void setRemovable (bool state);
|
|
void setRevertible (bool state);
|
|
void setMovable (bool state);
|
|
|
|
const QList<PatchProblem> getProblems() override;
|
|
ProblemSeverity getProblemSeverity() override;
|
|
|
|
protected:
|
|
// Properties for UI and version manipulation from UI in general
|
|
bool m_isMovable = false;
|
|
bool m_isRevertible = false;
|
|
bool m_isRemovable = false;
|
|
bool m_isVanilla = false;
|
|
|
|
bool m_orderOverride = false;
|
|
int m_order = 0;
|
|
|
|
std::shared_ptr<Meta::Version> m_metaVersion;
|
|
std::shared_ptr<VersionFile> m_file;
|
|
QString m_filename;
|
|
};
|
|
|
|
typedef std::shared_ptr<ProfilePatch> ProfilePatchPtr;
|