diff --git a/qt/chelpers.h b/qt/chelpers.h index cbf42b55..0c90486f 100644 --- a/qt/chelpers.h +++ b/qt/chelpers.h @@ -41,6 +41,17 @@ inline QStringList valueWrap(gchar **strv) return res; } +inline QStringList valueWrap(const gchar **strv) +{ + QStringList res; + if (strv == NULL) + return res; + for (uint i = 0; strv[i] != NULL; i++) { + res.append (QString::fromUtf8(strv[i])); + } + return res; +} + inline QStringList valueWrap(GPtrArray *array) { QStringList res; diff --git a/qt/contentrating.cpp b/qt/contentrating.cpp index 746a6fa9..ae241fad 100644 --- a/qt/contentrating.cpp +++ b/qt/contentrating.cpp @@ -121,9 +121,18 @@ void AppStream::ContentRating::setValue(const QString& id, AppStream::ContentRat as_content_rating_set_value(d->m_contentRating, qPrintable(id), (AsContentRatingValue) ratingValue); } +QString AppStream::ContentRating::description(const QString& id) const +{ + return QString::fromUtf8(as_content_rating_attribute_get_description(qPrintable(id), as_content_rating_get_value(d->m_contentRating, qPrintable(id)))); +} + +QStringList AppStream::ContentRating::ratingIds() const +{ + return AppStream::valueWrap(as_content_rating_get_rating_ids(d->m_contentRating)); +} + QDebug operator<<(QDebug s, const AppStream::ContentRating& contentRating) { s.nospace() << "AppStream::ContentRating(" << contentRating.kind() << contentRating.minimumAge() << ")"; return s.space(); } - diff --git a/qt/contentrating.h b/qt/contentrating.h index 7e0a6f7a..5f323933 100644 --- a/qt/contentrating.h +++ b/qt/contentrating.h @@ -70,6 +70,9 @@ class APPSTREAMQT_EXPORT ContentRating { RatingValue value(const QString& id) const; void setValue(const QString& id, RatingValue ratingValue); + QStringList ratingIds() const; + QString description(const QString& id) const; + private: QSharedDataPointer d; };