6 #ifndef SWIFT_MISC_DB_ARTIFACT_H
7 #define SWIFT_MISC_DB_ARTIFACT_H
19 namespace swift::misc::db
28 IndexName = CPropertyIndexRef::GlobalIndexCArtifact,
35 IndexSizeHumanReadable,
52 CArtifact(
const QString &name,
const QString &version,
const QString &md5, ArtifactType type,
int size,
53 bool existing,
const CPlatform &platform);
56 bool hasName()
const {
return !m_name.isEmpty(); }
59 const QString &
getName()
const {
return m_name; }
62 void setName(
const QString &name) { m_name = name.trimmed(); }
65 bool matchesName(
const QString &name, Qt::CaseSensitivity cs = Qt::CaseSensitive)
const;
71 bool isUnknown()
const {
return this->getType() == UnknownArtifact; }
80 QString getFileSizeHumanReadable()
const;
86 const QString &
getMd5()
const {
return m_md5; }
92 bool matchesAnyPlatform(
const CPlatform &platform)
const;
110 bool hasUnrestrictedDistribution()
const;
113 bool isWithDistribution(
const CDistribution &distribution,
bool acceptMoreStableDistributions)
const;
120 bool isNewerThanCurrentBuild()
const;
123 QString convertToQString(
bool i18n =
false)
const;
126 QString convertToQString(
const QString &separator,
bool i18n =
false)
const;
135 static CArtifact fromDatabaseJson(
const QJsonObject &json,
const QString &prefix = {});
138 static const QString &typeToString(ArtifactType type);
141 static CPlatform artifactNameToPlatform(
const QString &name);
146 int m_type =
static_cast<int>(UnknownArtifact);
148 bool m_existing =
false;
150 CDistributionList m_distributions;
153 static QString versionNumberFromFilename(
const QString &filename);
156 static ArtifactType stringToType(
const QString &str);
159 static QString trimVersionString(
const QString &version);
162 static QString trim4thSegment(
const QString &seg);
Non-owning reference to a CPropertyIndex with a subset of its features.
Mix of the most commonly used mixin classes.
Artifacts ("our software" products)
ColumnIndex
Properties by index.
bool hasDistributions() const
Has distributions?
void setType(ArtifactType type)
Set type.
void setName(const QString &name)
Set the name.
const QString & getMd5() const
MD5.
bool isUnknown() const
Unknown.
int getFileSize() const
File size.
const CPlatform & getPlatform() const
OS.
void setPlatform(const CPlatform &platform)
Set the OS.
void setFileSize(int size)
Set file size.
void setDistributions(const CDistributionList &distributions)
Related distributions.
bool hasName() const
Having name?
CDistribution getMostStableDistribution() const
Most stable distribution if any.
const CDistributionList & getDistributions() const
Related distributions.
const QString & getName() const
Name (i.e. installer name, symbol name)
ArtifactType getType() const
Get type.
Distributions for channel.
Multiple distributions for different channels:
Class from which a derived class can inherit datastore-related functions.
Plugin loaded by X-Plane which publishes a DBus service.
#define SWIFT_MISC_EXPORT
Export a class or function from the library.
#define SWIFT_DECLARE_VALUEOBJECT_MIXINS(Namespace, Class)
Explicit template declaration of mixins for a CValueObject subclass to be placed near the top of the ...