ImagingTools Core SDK
CInfo.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QJsonObject>
7#include <QtCore/QJsonArray>
8#include <QtCore/QJsonValue>
9#include <QtCore/QString>
10
11// ImtCore includes
12#include <imtoas/CContactInfo.h>
13#include <imtoas/CLicense.h>
14
15
16namespace imtoas
17{
18
19
20class CInfo
21{
22public:
23 [[nodiscard]] QString GetTitle() const;
24 void SetTitle(const QString& title);
25
26 [[nodiscard]] QString GetSummary() const;
27 void SetSummary(const QString& summary);
28
29 [[nodiscard]] QString GetDescription() const;
30 void SetDescription(const QString& description);
31
32 [[nodiscard]] QString GetTermsOfService() const;
33 void SetTermsOfService(const QString& termsOfService);
34
35 [[nodiscard]] CContactInfo GetContact() const;
36 void SetContact(const CContactInfo& contact);
37
38 [[nodiscard]] CLicense GetLicense() const;
39 void SetLicense(const CLicense& license);
40
41 [[nodiscard]] QString GetVersion() const;
42 void SetVersion(const QString& version);
43
44 static bool ReadFromJsonObject(CInfo& object, const QJsonObject& jsonObject, const QJsonObject& globalObject);
45
46 bool operator==(const CInfo& other) const;
47 bool operator!=(const CInfo& other) const { return !(operator==(other)); }
48
49private:
50 QString m_title;
51 QString m_summary;
52 QString m_description;
53 QString m_termsOfService;
54 CContactInfo m_contact;
55 CLicense m_license;
56 QString m_version;
57};
58
59
60} // namespace imtoas
61
62
63Q_DECLARE_METATYPE(imtoas::CInfo);
64
65